2020年春先は、ソースコードをコンパイルしてインストールしました。今回は、src.rpmファイルから rpm を作成してインストールしたことを記録として残しおきます。
src.rpm から rpm を作成するのに次の記事を参考にさせていただきました。
まずは、src.rpm から rpm を作成するための環境を揃えます。
[root@mame-c12 ~]# yum install rpm-build
[root@mame-c12 ~]# yum groupinstall 'Development tools'
続いて、zabbix の src.rpm をダウンロードします。
今回、CentOS へ 4.4系列 をインストールするので以下のURLから適当なマイナーリビジョンの src.rpm を選択しました。
Zabbix Official Repository | Index of /zabbix/4.4/rhel/7/SRPMS/
[root@mame-c12 ~]# wget https://repo.zabbix.com/zabbix/4.4/rhel/7/SRPMS/zabbix-4.4.10-1.el7.src.rpm
wget コマンドがインストールされていない場合は、以下を参考にyumでインストールおく。
[root@mame-c12 ~]# yum install wget
これでホームディレクトリに、zabbix-4.4.10-1.el7.src.rpm がダウンロードされています。
続いて、src.rpm を展開します。
[root@mame-c12 ~]# rpm -ivh zabbix-4.4.10-1.el7.src.rpm
展開途中に 警告 が出ますが気にしなくても大丈夫でした。
ホームディレクトリに、rpmbuild ディレクトリが作成されています。
[root@mame-c12 ~]# ls -l
合計 18824
-rw-r--r--. 1 root root 134 10月 30 01:29 README
-rw-r--r--. 1 root root 7302 10月 30 01:29 anaconda-ks.cfg
drwxr-xr-x 8 root root 4096 3月 12 07:34 rpmbuild
-rw-r--r-- 1 root root 19256698 6月 29 2020 zabbix-4.4.10-1.el7.src.rpm
[root@mame-c12 ~]#
src.rpm から rpm を作成するには、◯◯◯.spec というファイルを読み込み、そのファイルに記載されている情報をもとに、コンパイル(make)などが実行されます。
spec ファイルのあるディレクトリへ移動します。
[root@mame-c12 ~]# cd rpmbuild/SPECS/
[root@mame-c12 SPECS]# ls
zabbix.spec
[root@mame-c12 SPECS]#
あとは、このspec ファイルを指定して、rpmbuild コマンドを実行するのみ。
と思っていたら、必要なライブラリが入っていなくビルドに失敗しました。
[root@mame-c12 SPECS]# rpmbuild -ba zabbix.spec
mysql-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
postgresql-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
net-snmp-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
openldap-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
gnutls-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
sqlite-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
unixODBC-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
curl-devel >= 7.13.1 は zabbix-4.4.10-1.el7.aarch64 に必要とされています
OpenIPMI-devel >= 2 は zabbix-4.4.10-1.el7.aarch64 に必要とされています
libssh2-devel >= 1.0.0 は zabbix-4.4.10-1.el7.aarch64 に必要とされています
java-devel >= 1.6.0 は zabbix-4.4.10-1.el7.aarch64 に必要とされています
libxml2-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
libevent-devel は zabbix-4.4.10-1.el7.aarch64 に必要とされています
ライブラリを一つ一つ確認しながらyum でインストールしました。
[root@mame-c12 SPECS]# yum install mysql-devel
[root@mame-c12 SPECS]# yum install postgresql-devel
[root@mame-c12 SPECS]# yum install net-snmp-devel
:
:
再度、rpmbuild コマンドで、src.rpm から rpm を作成し、rpm が完成です。結構、時間がかかりました。
[root@mame-c12 SPECS]# rpmbuild -ba zabbix.spec
:
:
実行中(%clean): /bin/sh -e /var/tmp/rpm-tmp.SkQC7v
+ umask 022
+ cd /root/rpmbuild/BUILD
+ cd zabbix-4.4.10
+ rm -rf /root/rpmbuild/BUILDROOT/zabbix-4.4.10-1.el7.aarch64
+ exit 0
[root@mame-c12 SPECS]#
完成した rpm はディレクトリ /root/rpmbuild/RPMS/aarch64 に格納されています。
[root@mame-c12 aarch64]# pwd
/root/rpmbuild/RPMS/aarch64
[root@mame-c12 aarch64]# ls
zabbix-agent-4.4.10-1.el7.aarch64.rpm zabbix-proxy-pgsql-4.4.10-1.el7.aarch64.rpm
zabbix-debuginfo-4.4.10-1.el7.aarch64.rpm zabbix-proxy-sqlite3-4.4.10-1.el7.aarch64.rpm
zabbix-get-4.4.10-1.el7.aarch64.rpm zabbix-sender-4.4.10-1.el7.aarch64.rpm
zabbix-java-gateway-4.4.10-1.el7.aarch64.rpm zabbix-server-mysql-4.4.10-1.el7.aarch64.rpm
zabbix-js-4.4.10-1.el7.aarch64.rpm zabbix-server-pgsql-4.4.10-1.el7.aarch64.rpm
zabbix-proxy-mysql-4.4.10-1.el7.aarch64.rpm
[root@mame-c12 aarch64]#
rpm が作成できたので、agent も server も rpm コマンドでインストールすることができるようになりました。
[root@mame-c12 aarch64]# rpm -ivh zabbix-agent-4.4.10-1.el7.aarch64.rpm
準備しています... ################################# [100%]
更新中 / インストール中...
1:zabbix-agent-4.4.10-1.el7 ################################# [100%]
[root@mame-c12 aarch64]#
zabbix agent が ディレクトリ /etc/zabbix にインストールされます。
zabbix_agentd.conf の Server、Hostname、ServerActive 辺りの値は動かす環境に合わせて編集してください。
[root@mame-c12 zabbix]# pwd
/etc/zabbix
[root@mame-c12 zabbix]# ls -l
合計 20
-rw-r--r-- 1 root root 13936 3月 12 07:49 zabbix_agentd.conf
drwxr-xr-x 2 root root 4096 3月 12 07:49 zabbix_agentd.d
[root@mame-c12 zabbix]#
zabbix agent は、デフォルトでは、TCP 10050 ポートで、zabbix server と通信を行います。
そのため、firewall の設定で、10050 ポートを開けるか、firewall に予め用意されている、zabbix agent 用のサービスを firewall に登録する必要があります。
[root@mame-c12 zabbix]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 22/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
ポート番号指定で開ける場合
[root@mame-c12 zabbix]# firewall-cmd --zone=public --permanent --add-port=10050/tcp
success
[root@mame-c12 zabbix]# firewall-cmd --reload
success
[root@mame-c12 zabbix]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh
ports: 22/tcp 10050/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@mame-c12 zabbix]#
サービス登録する形でポートを開ける場合
[root@mame-c12 zabbix]# firewall-cmd --zone=public --add-service=zabbix-agent --permanent
success
[root@mame-c12 zabbix]# firewall-cmd --reload
success
[root@mame-c12 zabbix]# firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: dhcpv6-client ssh zabbix-agent
ports: 22/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@mame-c12 zabbix]#
最後に、zabbix agent を起動します。
[root@mame-c12 zabbix]# systemctl start zabbix-agent
[root@mame-c12 zabbix]# systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled; vendor preset: disabled)
Active: active (running) since 金 2021-03-12 08:46:46 UTC; 15s ago
Process: 14534 ExecStart=/usr/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS)
Main PID: 14536 (zabbix_agentd)
CGroup: /system.slice/zabbix-agent.service
tq14536 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf
tq14537 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
tq14538 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
tq14539 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
tq14540 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
mq14541 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
3月 12 08:46:46 mame-c12 systemd[1]: Starting Zabbix Agent...
3月 12 08:46:46 mame-c12 systemd[1]: zabbix-agent.service: Supervising process 14536 which is...its.
3月 12 08:46:46 mame-c12 systemd[1]: Started Zabbix Agent.
Hint: Some lines were ellipsized, use -l to show in full.
[root@mame-c12 zabbix]#
自動起動にしたい場合
[root@mame-c12 zabbix]# systemctl enable zabbix-agent
サーバー側のインストールは、またの機会に記載します。