はじめに
インターネットに接続できないLinux系サーバーに対して、どのように「Zabbix Agent 7.0 LTS」を導入するのか不明だったので「ソースコードからのインストール」を検証してみた。(Windows系サーバーならパッケージからインストールできるが、Linux系はまだできないようだ。)
参考ページ:ZABBIX7.0 - docs 4. Installation from sources
対応方法(結論)
さっさと対応方法が知りたい!という方のために、結論から先に書いときますね。
① ZABBIX公式よりソースファイル(zabbix-7.0.5.tar.gz)を取得し、対象サーバー持込む。
② ソースファイルを展開する。
→ tar -zxf /xxx/zabbix-7.0.5.tar.gz
③ ZABBIXユーザーを作成する。
→ groupadd --system zabbix
→ useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
④ C言語の規格設定をする。
→ export CFLAGS="-std=gnu99"
⑤「gcc、libpcre、libpcre-devel、make」パッケージを持込みインストールする。
⑥ 初期設定スクリプトを実行する。
→ /xxx/zabbix-7.0.5/configure --enable-agent
⑦ makeコマンドでビルド/インストール
→ make install
⑧ Zabbix Agent設定ファイルの設定
→ vi /usr/local/etc/zabbix_agentd.conf
⑨ Zabbix Agent Service の作成
→ vi /etc/systemd/system/zabbix-agent.service
⑩ サービス起動
→ systemctl enable zabbix-agent
→ systemctl start zabbix-agent
→ systemctl status zabbix-agent
検証環境
OS:
・Oracle Linux 8.10
リソース:
・CPU(2コア)
・メモリ(3GB)
・ディスク(20GB)
セキュリティ:
・パーソナルFW(OFF)
・SELINUX(OFF)
IPアドレス:
192.168.10.137(監視対象サーバー)
192.168.10.131(ZABBIXサーバー)
ソースファイルをダウンロード
まずは、ZABBIX公式ページより、ソースアーカイブファイルをダウンロードする。
URL:Download and install Zabbix
ソースファイルを持込む
インストールしたアーカイブファイルを対象サーバーに持ち込む。
私は、TeraTermのSCPで持込みました。
[root@localhost /]# ls -l /root
合計 47660
-rw-r--r-- 1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#
持込んだ後は、アーカイブファイルを展開する。
[root@localhost /]# tar -zxf /root/zabbix-7.0.5.tar.gz
[root@localhost /]# ls -l /root
合計 47664
drwxr-xr-x 13 1000 1000 4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r-- 1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#
[root@localhost /]# ls -l /root/zabbix-7.0.5
合計 2728
-rw-r--r-- 1 1000 1000 98 10月 21 17:40 AUTHORS
-rw-r--r-- 1 1000 1000 34523 10月 21 17:40 COPYING
-rw-r--r-- 1 1000 1000 1793716 10月 21 21:45 ChangeLog
-rw-r--r-- 1 1000 1000 83 10月 21 17:40 INSTALL
-rw-r--r-- 1 1000 1000 7825 10月 21 21:45 Makefile.am
-rw-r--r-- 1 1000 1000 38342 10月 21 21:45 Makefile.in
-rw-r--r-- 1 1000 1000 53 10月 21 17:40 NEWS
-rw-r--r-- 1 1000 1000 26 10月 21 17:40 README
-rw-r--r-- 1 1000 1000 2435 10月 21 17:40 README.md
-rw-r--r-- 1 1000 1000 55753 10月 21 21:45 aclocal.m4
drwxr-xr-x 4 1000 1000 32 10月 21 17:40 bin
drwxr-xr-x 5 1000 1000 45 10月 21 17:40 build
-rwxr-xr-x 1 1000 1000 7400 3月 18 2022 compile
drwxr-xr-x 3 1000 1000 134 10月 21 21:45 conf
-rwxr-xr-x 1 1000 1000 49482 1月 31 2022 config.guess
-rwxr-xr-x 1 1000 1000 35406 1月 31 2022 config.sub
-rwxr-xr-x 1 1000 1000 588241 10月 21 21:45 configure
-rw-r--r-- 1 1000 1000 72874 10月 21 21:45 configure.ac
drwxr-xr-x 7 1000 1000 125 10月 21 21:46 database
-rwxr-xr-x 1 1000 1000 23568 3月 18 2022 depcomp
drwxr-xr-x 4 1000 1000 4096 10月 21 21:46 include
-rwxr-xr-x 1 1000 1000 15358 3月 18 2022 install-sh
drwxr-xr-x 2 1000 1000 4096 10月 21 21:45 m4
drwxr-xr-x 2 1000 1000 4096 10月 21 21:46 man
drwxr-xr-x 5 1000 1000 88 10月 21 21:46 misc
-rwxr-xr-x 1 1000 1000 6878 3月 18 2022 missing
drwxr-xr-x 5 1000 1000 4096 10月 21 17:40 sass
drwxr-xr-x 12 1000 1000 4096 10月 21 21:46 src
drwxr-xr-x 14 1000 1000 4096 10月 21 21:46 ui
[root@localhost /]#
ZABBIXユーザーの作成
次は、ZABBIX Agent 起動用のユーザーを作成する。
# ZABBIXユーザー用のグループを作成
[root@localhost /]# groupadd --system zabbix
[root@localhost /]# grep "zabbix" /etc/group
zabbix:x:992:
[root@localhost /]#
# ZABBIXユーザーを作成
[root@localhost /]# useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix
[root@localhost /]# grep "zabbix" /etc/passwd
zabbix:x:995:992:Zabbix Monitoring System:/usr/lib/zabbix:/sbin/nologin
[root@localhost /]#
C言語の規格指定
ZABBIXはC言語で構成されている。なのでC言語で記述されているZABBIXソースコードを指定の規格でコンパイルするために、以下を設定する。
[root@localhost /]# export CFLAGS="-std=gnu99"
[root@localhost /]# echo $CFLAGS
-std=gnu99
[root@localhost /]#
※ ChatGPTより
【CFLAGS】
Cコンパイラ(例: gcc)に渡されるオプションを設定するための環境変数です。
この変数に設定されたフラグは、C言語のコードをコンパイルするときに使用されます。
【-std=gnu99】
C言語の標準を「GNU99」に指定するフラグです。
「GNU99」は、C99(1999年に策定されたC言語の標準規格)に、GNU拡張を加えたバージョンです。C99の文法や機能を使用しつつ、GNUの特定の拡張機能も使うことができます。
初期設定スクリプトの実行 ①
Zabbix Agent をソースコードから導入するには、ビルド環境が整っている必要がある。そこでアーカイブファイルに含まれている「configure」スクリプトを実行し、ビルド環境を整えていく。このスクリプトでは、基本的に以下の処理が行われている。
【configure --enable-agent 実行内容】
1. 環境チェック
Zabbix Agent をビルドするために必要なコンパイラやライブラリがシステムに存在するかを確認する。存在しない場合は、エラーを出して処理が終了する。
2. コンパイルオプションの設定
Cコンパイラに渡すフラグやオプションを設定する。(CFLAGSに-std=gnu99などを指定)
「--enable-agent」オプションで、Zabbix Agent用のモジュールを有効にし、Agent だけをビルド対象にする。
3. 設定ファイルの生成
ビルドを実施するために必要な設定ファイル(Makefile)を生成する。
この設定ファイルには、ビルドで必要なビルド手順やコンパイルオプションが含まれている。
# zabbix-7.0.5 ディレクトリまで移動 ※ 移動しないで行っていくと、後々大変な目に合う・・・・。
[root@localhost /]# cd /root/zabbix-7.0.5
[root@localhost zabbix-7.0.5]#
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for cc... no ← ★★★ ここ注目 ★★★
checking for c99... no ← ★★★ ここ注目 ★★★
checking for gcc... no ← ★★★ ここ注目 ★★★
checking for clang... no ← ★★★ ここ注目 ★★★
configure: error: in `/':
configure: error: no acceptable C compiler found in $PATH ← ★★★ ここ注目 ★★★
See `config.log' for more details
[root@localhost zabbix-7.0.5]#
実行結果から、$PATHにCコンパイラ(gccやclangなど)が存在しないため、エラーが出たことがわかる。なので Cコンパイラである「gcc」パッケージをインストールする必要がある。今回、直接インターネットからインストールできない定で行うため、以下の方法で「gcc」パッケージを取得する。
# 同様の検証環境を用意し、インターネットにアクセスし「gcc」パッケージを取得する。
# 以下コマンドで依存関係を解決してダウンロードする。
[root@localhost ~]# dnf download --resolve gcc
メタデータの期限切れの最終確認: 1:42:42 前の 2024年10月29日 22時27分14秒 に実施 しました。
(1/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm 75 kB/s | 25 kB 00:00
(2/15): libmpc-1.1.0-9.1.el8.x86_64.rpm 168 kB/s | 61 kB 00:00
(3/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm 1.1 MB/s | 89 kB 00:00
(4/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm 476 kB/s | 218 kB 00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm 747 kB/s | 38 kB 00:00
(6/15): glibc-headers-2.28-251.0.2.el8.x86_64.r 2.1 MB/s | 494 kB 00:00
(7/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm 286 kB/s | 17 kB 00:00
(8/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.r 354 kB/s | 15 kB 00:00
(9/15): binutils-2.30-123.0.2.el8.x86_64.rpm 4.1 MB/s | 5.9 MB 00:01
(10/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm 1.4 MB/s | 93 kB 00:00
(11/15): isl-0.16.1-6.el8.x86_64.rpm 3.0 MB/s | 841 kB 00:00
(12/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm 3.7 MB/s | 10 MB 00:02
(13/15): libpkgconf-1.4.2-1.el8.x86_64.rpm 765 kB/s | 35 kB 00:00
(14/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm 6.6 MB/s | 23 MB 00:03
(15/15): kernel-headers-4.18.0-553.22.1.el8_10. 4.7 MB/s | 12 MB 00:02
[root@localhost ~]#
# コマンドを実行した際のカレントディレクトリに出力される。
[root@localhost ~]# ls /root
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
[root@localhost ~]# yum install --downloadonly --downloaddir=/root gcc
メタデータの期限切れの最終確認: 1:50:24 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
gcc x86_64 8.5.0-22.0.1.el8_10 ol8_appstream 23 M
アップグレード:
libgcc x86_64 8.5.0-22.0.1.el8_10 ol8_baseos_latest 93 k
libgomp x86_64 8.5.0-22.0.1.el8_10 ol8_baseos_latest 218 k
依存関係のインストール:
binutils x86_64 2.30-123.0.2.el8 ol8_baseos_latest 5.9 M
cpp x86_64 8.5.0-22.0.1.el8_10 ol8_appstream 10 M
glibc-devel x86_64 2.28-251.0.2.el8 ol8_baseos_latest 89 k
glibc-headers x86_64 2.28-251.0.2.el8 ol8_baseos_latest 494 k
isl x86_64 0.16.1-6.el8 ol8_appstream 841 k
kernel-headers x86_64 4.18.0-553.22.1.el8_10 ol8_baseos_latest 12 M
libmpc x86_64 1.1.0-9.1.el8 ol8_appstream 61 k
libpkgconf x86_64 1.4.2-1.el8 ol8_baseos_latest 35 k
libxcrypt-devel x86_64 4.1.1-6.el8 ol8_baseos_latest 25 k
pkgconf x86_64 1.4.2-1.el8 ol8_baseos_latest 38 k
pkgconf-m4 noarch 1.4.2-1.el8 ol8_baseos_latest 17 k
pkgconf-pkg-config x86_64 1.4.2-1.el8 ol8_baseos_latest 15 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 13 パッケージ
アップグレード 2 パッケージ
ダウンロードサイズの合計: 54 M
YUM はトランザクションでパッケージのダウンロードのみ行います。
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm 285 kB/s | 89 kB 00:00
(2/15): glibc-headers-2.28-251.0.2.el8.x86_64.rpm 869 kB/s | 494 kB 00:00
(3/15): libpkgconf-1.4.2-1.el8.x86_64.rpm 185 kB/s | 35 kB 00:00
(4/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm 370 kB/s | 25 kB 00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm 639 kB/s | 38 kB 00:00
(6/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm 370 kB/s | 17 kB 00:00
(7/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm 248 kB/s | 15 kB 00:00
(8/15): binutils-2.30-123.0.2.el8.x86_64.rpm 5.1 MB/s | 5.9 MB 00:01
(9/15): kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm 10 MB/s | 12 MB 00:01
(10/15): isl-0.16.1-6.el8.x86_64.rpm 3.6 MB/s | 841 kB 00:00
(11/15): libmpc-1.1.0-9.1.el8.x86_64.rpm 1.3 MB/s | 61 kB 00:00
(12/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm 996 kB/s | 93 kB 00:00
(13/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm 1.2 MB/s | 218 kB 00:00
(14/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm 6.9 MB/s | 10 MB 00:01
(15/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm 14 MB/s | 23 MB 00:01
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 19 MB/s | 54 MB 00:02
完了しました!
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'yum clean packages' を実行することでキャッシュパッケージを削除できます。
[root@localhost ~]#
[root@localhost ~]# ls /root
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
[root@localhost ~]# yum install yum-utils
メタデータの期限切れの最終確認: 1:54:38 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
yum-utils noarch 4.0.21-25.0.1.el8 ol8_baseos_latest 75 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 1 パッケージ
ダウンロードサイズの合計: 75 k
インストール後のサイズ: 23 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
yum-utils-4.0.21-25.0.1.el8.noarch.rpm 254 kB/s | 75 kB 00:00
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 248 kB/s | 75 kB 00:00
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : yum-utils-4.0.21-25.0.1.el8.noarch 1/1
scriptletの実行中: yum-utils-4.0.21-25.0.1.el8.noarch 1/1
検証中 : yum-utils-4.0.21-25.0.1.el8.noarch 1/1
インストール済み:
yum-utils-4.0.21-25.0.1.el8.noarch
完了しました!
[root@localhost ~]#
[root@localhost ~]# yum install --downloadonly --downloaddir=/root gcc
メタデータの期限切れの最終確認: 1:55:47 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
gcc x86_64 8.5.0-22.0.1.el8_10 ol8_appstream 23 M
アップグレード:
libgcc x86_64 8.5.0-22.0.1.el8_10 ol8_baseos_latest 93 k
libgomp x86_64 8.5.0-22.0.1.el8_10 ol8_baseos_latest 218 k
依存関係のインストール:
binutils x86_64 2.30-123.0.2.el8 ol8_baseos_latest 5.9 M
cpp x86_64 8.5.0-22.0.1.el8_10 ol8_appstream 10 M
glibc-devel x86_64 2.28-251.0.2.el8 ol8_baseos_latest 89 k
glibc-headers x86_64 2.28-251.0.2.el8 ol8_baseos_latest 494 k
isl x86_64 0.16.1-6.el8 ol8_appstream 841 k
kernel-headers x86_64 4.18.0-553.22.1.el8_10 ol8_baseos_latest 12 M
libmpc x86_64 1.1.0-9.1.el8 ol8_appstream 61 k
libpkgconf x86_64 1.4.2-1.el8 ol8_baseos_latest 35 k
libxcrypt-devel x86_64 4.1.1-6.el8 ol8_baseos_latest 25 k
pkgconf x86_64 1.4.2-1.el8 ol8_baseos_latest 38 k
pkgconf-m4 noarch 1.4.2-1.el8 ol8_baseos_latest 17 k
pkgconf-pkg-config x86_64 1.4.2-1.el8 ol8_baseos_latest 15 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 13 パッケージ
アップグレード 2 パッケージ
ダウンロードサイズの合計: 54 M
YUM はトランザクションでパッケージのダウンロードのみ行います。
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/15): glibc-devel-2.28-251.0.2.el8.x86_64.rpm 299 kB/s | 89 kB 00:00
(2/15): glibc-headers-2.28-251.0.2.el8.x86_64.rpm 1.0 MB/s | 494 kB 00:00
(3/15): libpkgconf-1.4.2-1.el8.x86_64.rpm 504 kB/s | 35 kB 00:00
(4/15): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm 291 kB/s | 25 kB 00:00
(5/15): pkgconf-1.4.2-1.el8.x86_64.rpm 631 kB/s | 38 kB 00:00
(6/15): pkgconf-m4-1.4.2-1.el8.noarch.rpm 253 kB/s | 17 kB 00:00
(7/15): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm 54 kB/s | 15 kB 00:00
(8/15): binutils-2.30-123.0.2.el8.x86_64.rpm 4.3 MB/s | 5.9 MB 00:01
(9/15): kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm 9.8 MB/s | 12 MB 00:01
(10/15): isl-0.16.1-6.el8.x86_64.rpm 5.1 MB/s | 841 kB 00:00
(11/15): libmpc-1.1.0-9.1.el8.x86_64.rpm 1.2 MB/s | 61 kB 00:00
(12/15): libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm 1.8 MB/s | 93 kB 00:00
(13/15): libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm 1.6 MB/s | 218 kB 00:00
(14/15): cpp-8.5.0-22.0.1.el8_10.x86_64.rpm 11 MB/s | 10 MB 00:00
(15/15): gcc-8.5.0-22.0.1.el8_10.x86_64.rpm 11 MB/s | 23 MB 00:02
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計 15 MB/s | 54 MB 00:03
完了しました!
ダウンロード済みのパッケージは、次の正常なトランザクションまでキャッシュに保存されました。
'yum clean packages' を実行することでキャッシュパッケージを削除できます。
[root@localhost ~]#
[root@localhost ~]# ls /root
anaconda-ks.cfg
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
gcc インストール( C言語のコンパイラ )
取得したパッケージを対象サーバーに持込んでインストールする。
[root@localhost /]# ls -l /root
合計 93864
drwxr-xr-x 2 root root 4096 10月 30 00:32 gcc-pkg ← ★★★ 解凍!★★★
-rw-r--r-- 1 root root 47303919 10月 30 00:35 gcc-pkg.tgz ← ★★★ 持込み!★★★
drwxr-xr-x 13 1000 1000 4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r-- 1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#
[root@localhost /]# ls /root/gcc-pkg
binutils-2.30-123.0.2.el8.x86_64.rpm
cpp-8.5.0-22.0.1.el8_10.x86_64.rpm
gcc-8.5.0-22.0.1.el8_10.x86_64.rpm
glibc-devel-2.28-251.0.2.el8.x86_64.rpm
glibc-headers-2.28-251.0.2.el8.x86_64.rpm
isl-0.16.1-6.el8.x86_64.rpm
kernel-headers-4.18.0-553.22.1.el8_10.x86_64.rpm
libgcc-8.5.0-22.0.1.el8_10.x86_64.rpm
libgomp-8.5.0-22.0.1.el8_10.x86_64.rpm
libmpc-1.1.0-9.1.el8.x86_64.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libxcrypt-devel-4.1.1-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost /]#
[root@localhost /]# dnf install /root/gcc-pkg/*.rpm
メタデータの期限切れの最終確認: 2:14:30 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
binutils x86_64 2.30-123.0.2.el8 @commandline 5.9 M
cpp x86_64 8.5.0-22.0.1.el8_10 @commandline 10 M
gcc x86_64 8.5.0-22.0.1.el8_10 @commandline 23 M
glibc-devel x86_64 2.28-251.0.2.el8 @commandline 89 k
glibc-headers x86_64 2.28-251.0.2.el8 @commandline 494 k
isl x86_64 0.16.1-6.el8 @commandline 841 k
kernel-headers x86_64 4.18.0-553.22.1.el8_10 @commandline 12 M
libmpc x86_64 1.1.0-9.1.el8 @commandline 61 k
libpkgconf x86_64 1.4.2-1.el8 @commandline 35 k
libxcrypt-devel x86_64 4.1.1-6.el8 @commandline 25 k
pkgconf x86_64 1.4.2-1.el8 @commandline 38 k
pkgconf-m4 noarch 1.4.2-1.el8 @commandline 17 k
pkgconf-pkg-config x86_64 1.4.2-1.el8 @commandline 15 k
アップグレード:
libgcc x86_64 8.5.0-22.0.1.el8_10 @commandline 93 k
libgomp x86_64 8.5.0-22.0.1.el8_10 @commandline 218 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 13 パッケージ
アップグレード 2 パッケージ
合計サイズ: 54 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
~ 省略 ~
アップグレード済み:
libgcc-8.5.0-22.0.1.el8_10.x86_64 libgomp-8.5.0-22.0.1.el8_10.x86_64
インストール済み:
binutils-2.30-123.0.2.el8.x86_64 cpp-8.5.0-22.0.1.el8_10.x86_64 gcc-8.5.0-22.0.1.el8_10.x86_64 glibc-devel-2.28-251.0.2.el8.x86_64 glibc-headers-2.28-251.0.2.el8.x86_64 isl-0.16.1-6.el8.x86_64
kernel-headers-4.18.0-553.22.1.el8_10.x86_64 libmpc-1.1.0-9.1.el8.x86_64 libpkgconf-1.4.2-1.el8.x86_64 libxcrypt-devel-4.1.1-6.el8.x86_64 pkgconf-1.4.2-1.el8.x86_64 pkgconf-m4-1.4.2-1.el8.noarch
pkgconf-pkg-config-1.4.2-1.el8.x86_64
完了しました!
[root@localhost /]#
初期設定スクリプトの実行 ②
「gcc」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
~ 省略 ~
checking for file /proc/cpuinfo... yes
checking for file /proc/0/psinfo... no
checking for file /proc/loadavg... yes
checking for file /proc/net/dev... yes
checking for long long format... no
checking for -rdynamic linking option... yes
checking for libperfstat 5.2.0.40 fileset... no
checking for libperfstat 5.3.0.60 fileset... no
checking for architecture... linux (linux-gnu)
checking for the linux kernel version... unknown family (5.15.0-206.153.7.1.el8uek.x86_64)
checking size of void *... 8
configure: using old pcre library by default
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
configure: error: cannot find pkg-config package for libpcre ← ★★★ ここ注目 ★★★
[root@localhost zabbix-7.0.5]#
実行結果から、libpcre 用の pkg-config パッケージが存在しないため、エラーが出たことがわかる。なので「libpcre」と「libpcre-devel」パッケージをインストールする必要がある。今回、直接インターネットからインストールできない定で行うため、以下の方法で「libpcre」と「libpcre-devel」パッケージを取得する。
※ ChatGPTより
【libpcre(実行時ライブラリ)】
PCRE(Perl互換正規表現)を使用するプログラムが実行される際に必要な共有ライブラリを提供する。
【libpcre-devel(開発用パッケージ)】
PCREを使用するプログラムをソースコードからビルドする際に必要なヘッダファイルや開発ツールを提供する。
[root@localhost ~]# dnf download --resolve pcre pcre-devel
メタデータの期限切れの最終確認: 2:41:02 前の 2024年10月29日 22時27分14秒 に実施しました。
(1/18): pcre-8.42-6.el8.i686.rpm 642 kB/s | 211 kB 00:00
(2/18): pcre-cpp-8.42-6.el8.i686.rpm 928 kB/s | 48 kB 00:00
(3/18): pcre-8.42-6.el8.x86_64.rpm 537 kB/s | 211 kB 00:00
(4/18): libstdc++-8.5.0-21.0.1.el8.i686.rpm 1.2 MB/s | 501 kB 00:00
(5/18): pcre-cpp-8.42-6.el8.x86_64.rpm 1.0 MB/s | 47 kB 00:00
(6/18): pcre-utf16-8.42-6.el8.i686.rpm 2.8 MB/s | 196 kB 00:00
(7/18): pcre-devel-8.42-6.el8.x86_64.rpm 5.1 MB/s | 551 kB 00:00
(8/18): pcre-devel-8.42-6.el8.i686.rpm 4.0 MB/s | 551 kB 00:00
(9/18): libgcc-8.5.0-21.0.1.el8.i686.rpm 1.7 MB/s | 100 kB 00:00
(10/18): pcre-utf16-8.42-6.el8.x86_64.rpm 2.7 MB/s | 195 kB 00:00
(11/18): pcre-utf32-8.42-6.el8.i686.rpm 3.1 MB/s | 187 kB 00:00
(12/18): pcre-utf32-8.42-6.el8.x86_64.rpm 3.1 MB/s | 186 kB 00:00
(13/18): pkgconf-1.4.2-1.el8.x86_64.rpm 721 kB/s | 38 kB 00:00
(14/18): pkgconf-m4-1.4.2-1.el8.noarch.rpm 416 kB/s | 17 kB 00:00
(15/18): glibc-2.28-251.0.2.el8.i686.rpm 8.6 MB/s | 2.0 MB 00:00
(16/18): pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm 358 kB/s | 15 kB 00:00
(17/18): libpkgconf-1.4.2-1.el8.x86_64.rpm 879 kB/s | 35 kB 00:00
(18/18): glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm 7.8 MB/s | 1.6 MB 00:00
[root@localhost ~]#
[root@localhost ~]# ls /root
glibc-2.28-251.0.2.el8.i686.rpm
glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm
libgcc-8.5.0-21.0.1.el8.i686.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libstdc++-8.5.0-21.0.1.el8.i686.rpm
pcre-8.42-6.el8.i686.rpm
pcre-8.42-6.el8.x86_64.rpm
pcre-cpp-8.42-6.el8.i686.rpm
pcre-cpp-8.42-6.el8.x86_64.rpm
pcre-devel-8.42-6.el8.i686.rpm
pcre-devel-8.42-6.el8.x86_64.rpm
pcre-utf16-8.42-6.el8.i686.rpm
pcre-utf16-8.42-6.el8.x86_64.rpm
pcre-utf32-8.42-6.el8.i686.rpm
pcre-utf32-8.42-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost ~]#
libpcre および libpcre-devel インストール
取得したパッケージを対象サーバーに持込んでインストールする。
[root@localhost /]# ls -l /root
合計 100104
drwxr-xr-x 2 root root 4096 10月 30 00:32 gcc-pkg
-rw-r--r-- 1 root root 47303919 10月 30 00:35 gcc-pkg.tgz
drwxr-xr-x 2 root root 4096 10月 30 01:06 libpcre-pkg ← ★★★ 解凍!★★★
-rw-r--r-- 1 root root 6384876 10月 30 01:40 libpcre-pkg.tgz ← ★★★ 持込み!★★★
drwxr-xr-x 13 1000 1000 4096 10月 21 21:46 zabbix-7.0.5
-rw-r--r-- 1 root root 48797102 10月 29 22:05 zabbix-7.0.5.tar.gz
[root@localhost /]#
[root@localhost /]# ls /root/libpcre-pkg
glibc-2.28-251.0.2.el8.i686.rpm
glibc-gconv-extra-2.28-251.0.2.el8.i686.rpm
libgcc-8.5.0-21.0.1.el8.i686.rpm
libpkgconf-1.4.2-1.el8.x86_64.rpm
libstdc++-8.5.0-21.0.1.el8.i686.rpm
pcre-8.42-6.el8.i686.rpm
pcre-8.42-6.el8.x86_64.rpm
pcre-cpp-8.42-6.el8.i686.rpm
pcre-cpp-8.42-6.el8.x86_64.rpm
pcre-devel-8.42-6.el8.i686.rpm
pcre-devel-8.42-6.el8.x86_64.rpm
pcre-utf16-8.42-6.el8.i686.rpm
pcre-utf16-8.42-6.el8.x86_64.rpm
pcre-utf32-8.42-6.el8.i686.rpm
pcre-utf32-8.42-6.el8.x86_64.rpm
pkgconf-1.4.2-1.el8.x86_64.rpm
pkgconf-m4-1.4.2-1.el8.noarch.rpm
pkgconf-pkg-config-1.4.2-1.el8.x86_64.rpm
[root@localhost /]#
[root@localhost /]# dnf install /root/libpcre-pkg/*.rpm
メタデータの期限切れの最終確認: 3:19:09 前の 2024年10月29日 22時27分14秒 に実施しました。
パッケージ libpkgconf-1.4.2-1.el8.x86_64 は既にインストールされています。
パッケージ pcre-8.42-6.el8.x86_64 は既にインストールされています。
パッケージ pkgconf-1.4.2-1.el8.x86_64 は既にインストールされています。
パッケージ pkgconf-m4-1.4.2-1.el8.noarch は既にインストールされています。
パッケージ pkgconf-pkg-config-1.4.2-1.el8.x86_64 は既にインストールされています。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
glibc i686 2.28-251.0.2.el8 @commandline 2.0 M
glibc-gconv-extra i686 2.28-251.0.2.el8 @commandline 1.6 M
libgcc i686 8.5.0-21.0.1.el8 @commandline 100 k
libstdc++ i686 8.5.0-21.0.1.el8 @commandline 501 k
pcre i686 8.42-6.el8 @commandline 211 k
pcre-cpp i686 8.42-6.el8 @commandline 48 k
pcre-cpp x86_64 8.42-6.el8 @commandline 47 k
pcre-devel i686 8.42-6.el8 @commandline 551 k
pcre-devel x86_64 8.42-6.el8 @commandline 551 k
pcre-utf16 i686 8.42-6.el8 @commandline 196 k
pcre-utf16 x86_64 8.42-6.el8 @commandline 195 k
pcre-utf32 i686 8.42-6.el8 @commandline 187 k
pcre-utf32 x86_64 8.42-6.el8 @commandline 186 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 13 パッケージ
合計サイズ: 6.3 M
インストール後のサイズ: 19 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションを確認しています
~ 省略 ~
インストール済み:
glibc-2.28-251.0.2.el8.i686 glibc-gconv-extra-2.28-251.0.2.el8.i686 libgcc-8.5.0-21.0.1.el8.i686 libstdc++-8.5.0-21.0.1.el8.i686 pcre-8.42-6.el8.i686 pcre-cpp-8.42-6.el8.i686 pcre-cpp-8.42-6.el8.x86_64
pcre-devel-8.42-6.el8.i686 pcre-devel-8.42-6.el8.x86_64 pcre-utf16-8.42-6.el8.i686 pcre-utf16-8.42-6.el8.x86_64 pcre-utf32-8.42-6.el8.i686 pcre-utf32-8.42-6.el8.x86_64
完了しました!
[root@localhost /]#
初期設定スクリプトの実行 ③
「libpcre」および「libpcre-devel」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... no
checking whether make supports nested variables... no
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) no
checking build system type... x86_64-pc-linux-gnu
~ 省略 ~
config.status: creating src/zabbix_server/rtc/Makefile
config.status: creating src/zabbix_server/service/Makefile
config.status: creating src/zabbix_server/stats/Makefile
config.status: creating src/zabbix_server/taskmanager/Makefile
config.status: creating src/zabbix_server/timer/Makefile
config.status: creating src/zabbix_server/trapper/Makefile
config.status: creating man/Makefile
config.status: creating include/common/config.h
config.status: include/common/config.h is unchanged
config.status: executing depfiles commands
config.status: error: in `/':
config.status: error: Something went wrong bootstrapping makefile fragments
for automatic dependency tracking. If GNU make was not used, consider ← ★★★ ここ注目 ★★★
re-running the configure script with MAKE="gmake" (or whatever is
necessary). You can also try re-running configure with the
'--disable-dependency-tracking' option to at least be able to build
the package (albeit without support for automatic dependency tracking).
See `config.log' for more details
[root@localhost zabbix-7.0.5]#
実行結果を見てみると、どうやら「make」が使えていないようだ。試しに「make」がインストールされているか確認したところ、案の定インストールされていなかった・・・。なので先ほどと同じ方法で取得し、インストールする。
※ ChatGPTより
【make】
ソースコードからプログラムをビルド(構築)するためのツールである。主に、C言語やC++などのプログラムをコンパイルし、実行可能な形式に変換するために使われる。
【Makefile】
makeは通常、Makefileという設定ファイルを読み取る。Makefileには、どのファイルをコンパイルするか、どの順序でリンクするか、どのオプションを使うかなどのルールが定義されている。これにより、makeはプログラム全体を効率的にビルドできる。
[root@localhost ~]# dnf download --resolve make
メタデータの期限切れの最終確認: 0:42:52 前の 2024年10月30日 01時29分53秒 に実施しました。
make-4.2.1-11.el8.x86_64.rpm 897 kB/s | 498 kB 00:00
[root@localhost ~]#
make インストール
取得したパッケージを対象サーバーに持込んでインストールする。
[root@localhost /]# ls -l /root/make-pkg/
合計 500
-rw-r--r-- 1 root root 509616 10月 30 02:06 make-4.2.1-11.el8.x86_64.rpm
[root@localhost /]#
[root@localhost /]# dnf install /root/make-pkg/*.rpm
メタデータの期限切れの最終確認: 3:47:01 前の 2024年10月29日 22時27分14秒 に実施しました。
依存関係が解決しました。
=============================================================================================================================================================================================================================================
パッケージ アーキテクチャー バージョン リポジトリー サイズ
=============================================================================================================================================================================================================================================
インストール:
make x86_64 1:4.2.1-11.el8 @commandline 498 k
トランザクションの概要
=============================================================================================================================================================================================================================================
インストール 1 パッケージ
合計サイズ: 498 k
インストール後のサイズ: 1.4 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
トランザクションを確認しています
トランザクションの確認に成功しました。
トランザクションをテストしています
トランザクションのテストに成功しました。
トランザクションを実行しています
準備中 : 1/1
インストール中 : make-1:4.2.1-11.el8.x86_64 1/1
scriptletの実行中: make-1:4.2.1-11.el8.x86_64 1/1
検証中 : make-1:4.2.1-11.el8.x86_64 1/1
インストール済み:
make-1:4.2.1-11.el8.x86_64
完了しました!
[root@localhost /]#
初期設定スクリプトの実行 ④
「make」パッケージをインストールしたので、再度初期設定スクリプトを実行してみる。
[root@localhost zabbix-7.0.5]# ./configure --enable-agent
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking how to create a pax tar archive... gnutar
configure: Configuring Zabbix 7.0.5
checking whether make sets $(MAKE)... (cached) yes
checking build system type... x86_64-pc-linux-gnu
~ 省略 ~
config.status: creating src/zabbix_server/proxyconfigread/Makefile
config.status: creating src/zabbix_server/proxypoller/Makefile
config.status: creating src/zabbix_server/reporter/Makefile
config.status: creating src/zabbix_server/rtc/Makefile
config.status: creating src/zabbix_server/service/Makefile
config.status: creating src/zabbix_server/stats/Makefile
config.status: creating src/zabbix_server/taskmanager/Makefile
config.status: creating src/zabbix_server/timer/Makefile
config.status: creating src/zabbix_server/trapper/Makefile
config.status: creating man/Makefile
config.status: creating include/common/config.h
config.status: include/common/config.h is unchanged
config.status: executing depfiles commands
Configuration:
Detected OS: linux-gnu
Install path: /usr/local
Compilation arch: linux
Compiler: cc
Compiler flags: -std=gnu99
Library-specific flags:
Enable server: no
Enable proxy: no
Enable agent: yes ← ★★★ ここ注目 ★★★
Agent details:
TLS: no
Modbus: no
Linker flags: -rdynamic
Libraries: -lpthread -lm -ldl -lresolv -lpcre
Configuration file: /usr/local/etc/zabbix_agentd.conf
Modules: /usr/local/lib/modules
Enable agent 2: no
Enable web service: no
Enable Java gateway: no
LDAP support: no
IPv6 support: no
cmocka support: no
yaml support: no
***********************************************************
* Now run 'make install' *
* *
* Thank you for using Zabbix! *
* <https://www.zabbix.com> *
***********************************************************
[root@localhost zabbix-7.0.5]#
やっと処理が正常終了し、ビルド環境の準備ができた!!! 最終結果を見ると、Zabbix Agent のみが対象になっていることが分かる。そしてビルド時に必要となる「Makefaile」が「./configure --enable-agent」を実行したときのカレントディレクトリに出力されていることが確認できる。
[root@localhost zabbix-7.0.5]# ls -l /root/zabbix-7.0.5/Makefile
-rw-r--r-- 1 root root 36311 10月 30 02:15 /root/zabbix-7.0.5/Makefile
ビルドおよびインストール実施
後は、「make install」を実施し、ビルド/インストールを行う。この時、「Makefile」ファイルが配置されているディレクトリで実施する必要がある。でなければ次のエラーが出る。
[root@localhost /]# make install
make: *** ターゲット 'install' を make するルールがありません. 中止.
では、「Makefile」ファイルが配置されているディレクトリで「make install」を実施する。
[root@localhost zabbix-7.0.5]# make install
Making install in include
make[1]: ディレクトリ '/root/zabbix-7.0.5/include' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5/include' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5/include' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5/include' から出ます
Making install in src
~ 省略 ~
make[1]: ディレクトリ '/root/zabbix-7.0.5/misc' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5/misc' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5/misc' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5/misc' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5' に入ります
make[2]: ディレクトリ '/root/zabbix-7.0.5' に入ります
make[2]: 'install-exec-am' に対して行うべき事はありません.
make[2]: 'install-data-am' に対して行うべき事はありません.
make[2]: ディレクトリ '/root/zabbix-7.0.5' から出ます
make[1]: ディレクトリ '/root/zabbix-7.0.5' から出ます
[root@localhost zabbix-7.0.5]#
エラー出力もなく、問題なくインストールできたようだ。
以下のZABBIX関連のスクリプトや設定ファイルも問題なく配置されている。
# Zabbix Agent のデーモン(バックグラウンドプロセス)
[root@localhost zabbix-7.0.5]# ls -l /usr/local/sbin/zabbix*
-rwxr-xr-x 1 root root 3123512 10月 30 22:33 /usr/local/sbin/zabbix_agentd
[root@localhost zabbix-7.0.5]#
# ZABBIXの運用に役立つコマンドラインツール
[root@localhost zabbix-7.0.5]# ls -l /usr/local/bin/zabbix*
-rwxr-xr-x 1 root root 1162880 10月 30 22:33 /usr/local/bin/zabbix_get
-rwxr-xr-x 1 root root 1341376 10月 30 22:33 /usr/local/bin/zabbix_sender
[root@localhost zabbix-7.0.5]#
# abbix Agent 設定ファイル
[root@localhost zabbix-7.0.5]# ls -l /usr/local/etc/zabbix*
-rw-r--r-- 1 root root 17029 10月 30 22:33 /usr/local/etc/zabbix_agentd.conf
/usr/local/etc/zabbix_agentd.conf.d:
合計 0
[root@localhost zabbix-7.0.5]#
Zabbix Agent 設定ファイル
Zabbix Agent 設定ファイルを設定して問題なく、ZABBIXサーバーと通信できることを確認する。今回は以下の通りに設定する。
[root@localhost zabbix-7.0.5]# vi /usr/local/etc/zabbix_agentd.conf
[root@localhost zabbix-7.0.5]# egrep -v "#|^$" /usr/local/etc/zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid ← PIDファイルの出力場所指定
LogFile=/var/log/zabbix/zabbix_agentd.log ← ログファイルの出力場所指定
Server=192.168.10.131 ← ZABBIXサーバーのIPアドレス指定
ServerActive=192.168.10.131 ← ZABBIXサーバーのIPアドレス指定
HostnameItem=system.hostname ← ホスト名自動取得指定
HostMetadata=Linux ← メタデータ指定
BufferSend=5 ← アクティブチェック時の監視データ送信間隔指定(秒)
BufferSize=30000 ← 監視データを保管するバッファサイズ指定(個)
[root@localhost zabbix-7.0.5]#
「PidFile」の「/run/zabbix/」と「LogFile」の「/var/log/zabbix/」は、手動作成する必要がある。
[root@localhost zabbix-7.0.5]# mkdir -p /run/zabbix/
[root@localhost zabbix-7.0.5]# chown zabbix:zabbix /run/zabbix/
[root@localhost zabbix-7.0.5]# chmod 755 /run/zabbix/
[root@localhost zabbix-7.0.5]# ls -la /run/zabbix/
合計 0
drwxr-xr-x 2 zabbix zabbix 40 10月 30 23:41 .
drwxr-xr-x 27 root root 760 10月 30 23:41 ..
[root@localhost zabbix-7.0.5]#
[root@localhost zabbix-7.0.5]# mkdir -p /var/log/zabbix/
[root@localhost zabbix-7.0.5]# chown zabbix:zabbix /var/log/zabbix/
[root@localhost zabbix-7.0.5]# chmod 755 /var/log/zabbix/
[root@localhost zabbix-7.0.5]# ls -la /var/log/zabbix/
合計 4
drwxr-xr-x 2 zabbix zabbix 6 10月 30 23:43 .
drwxr-xr-x. 8 root root 4096 10月 30 23:43 ..
[root@localhost zabbix-7.0.5]#
Zabbix Agent 起動
いよいよ「Zabbix Agent」を起動し、正常に動作できているか確認する。
[root@localhost zabbix-7.0.5]# zabbix_agentd
[root@localhost zabbix-7.0.5]# ps aux | grep zabbix_agentd
zabbix 50266 0.0 0.0 42908 2672 ? S 23:46 0:00 zabbix_agentd
zabbix 50267 0.0 0.0 42908 2492 ? S 23:46 0:00 zabbix_agentd: collector [idle 1 sec]
zabbix 50268 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #1 [waiting for connection]
zabbix 50269 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #2 [waiting for connection]
zabbix 50270 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #3 [waiting for connection]
zabbix 50271 0.0 0.1 42976 2944 ? S 23:46 0:00 zabbix_agentd: listener #4 [waiting for connection]
zabbix 50272 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #5 [waiting for connection]
zabbix 50273 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #6 [waiting for connection]
zabbix 50274 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #7 [waiting for connection]
zabbix 50275 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #8 [waiting for connection]
zabbix 50276 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #9 [waiting for connection]
zabbix 50277 0.0 0.0 42908 2628 ? S 23:46 0:00 zabbix_agentd: listener #10 [waiting for connection]
zabbix 50278 0.0 0.1 45252 4620 ? S 23:46 0:00 zabbix_agentd: active checks #1 [idle 1 sec]
root 50298 0.0 0.0 10388 1140 pts/1 S+ 23:47 0:00 grep --color=auto zabbix_agentd
[root@localhost zabbix-7.0.5]#
ZABBIXコンソールを確認すると、対象サーバー上でエージェントが起動していることが確認できる。
また、監視ログも正常にZABBIXサーバーに連携できていることが分かる。
Zabbix Agent 用のサービス作成
ソースコードからZabbix Agent をインストールすると、サービスは自動生成されない。なので手動で作成してあげる必要がある。
[root@localhost /]# vi /etc/systemd/system/zabbix-agent.service
[root@localhost /]# cat /etc/systemd/system/zabbix-agent.service
[Unit]
# サービスの説明
Description=Zabbix Agent
# syslogサービスの起動後に起動
After=syslog.target
# ネットワークが利用可能になった後に起動
After=network.target
[Service]
# 環境変数として設定ファイルのパスを指定
Environment="CONFFILE=/usr/local/etc/zabbix_agentd.conf"
# 追加の環境変数を設定するファイル(存在しなくてもエラーにはしない)
EnvironmentFile=-/etc/sysconfig/zabbix-agent
# プロセスがフォーク(分身)してデーモン化するサービス
Type=forking
# 失敗時にサービスを再起動
Restart=on-failure
# プロセスIDファイルの場所を指定
PIDFile=/run/zabbix/zabbix_agentd.pid
# コントロールグループ全体を停止
KillMode=control-group
# Zabbixエージェントを指定の設定ファイルで起動
ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE
# サービスの停止時にSIGTERMシグナルで停止
ExecStop=/bin/kill -SIGTERM $MAINPID
# 再起動するまでの待機時間を10秒に設定
RestartSec=10s
# サービスを実行するユーザーとグループ
User=zabbix
Group=zabbix
[Install]
# マルチユーザー環境で起動するように設定
WantedBy=multi-user.target
[root@localhost /]#
# systemdにユニットファイルの新規作成や変更を認識させ、設定を再読み込みさせるために必要なコマンド
[root@localhost /]# systemctl daemon-reload
作成したZabbix Agent サービスが問題なく起動することを確認する。
# サービス自動起動有効化
[root@localhost /]# systemctl enable zabbix-agent
Created symlink /etc/systemd/system/multi-user.target.wants/zabbix-agent.service → /etc/systemd/system/zabbix-agent.service.
[root@localhost /]#
# サービス起動
[root@localhost /]# systemctl start zabbix-agent
# ステータス確認
[root@localhost /]# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/etc/systemd/system/zabbix-agent.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-10-31 00:43:37 JST; 43s ago
Process: 50894 ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 50896 (zabbix_agentd)
Tasks: 13 (limit: 16914)
Memory: 5.8M
CGroup: /system.slice/zabbix-agent.service
tq50896 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf
tq50897 /usr/local/sbin/zabbix_agentd: collector [idle 1 sec]
tq50898 /usr/local/sbin/zabbix_agentd: listener #1 [waiting for connection]
tq50899 /usr/local/sbin/zabbix_agentd: listener #2 [waiting for connection]
tq50900 /usr/local/sbin/zabbix_agentd: listener #3 [waiting for connection]
tq50901 /usr/local/sbin/zabbix_agentd: listener #4 [waiting for connection]
tq50902 /usr/local/sbin/zabbix_agentd: listener #5 [waiting for connection]
tq50903 /usr/local/sbin/zabbix_agentd: listener #6 [waiting for connection]
tq50904 /usr/local/sbin/zabbix_agentd: listener #7 [waiting for connection]
tq50905 /usr/local/sbin/zabbix_agentd: listener #8 [waiting for connection]
tq50906 /usr/local/sbin/zabbix_agentd: listener #9 [waiting for connection]
tq50907 /usr/local/sbin/zabbix_agentd: listener #10 [waiting for connection]
mq50908 /usr/local/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
10月 31 00:43:37 localhost.localdomain systemd[1]: Starting Zabbix Agent...
10月 31 00:43:37 localhost.localdomain systemd[1]: Started Zabbix Agent.
[root@localhost /]#