zabbix 2.2 agentのセットアップ手順(systemd対応)

zabbix 2.2 agentのセットアップ手順(systemd対応)

zabbix 2.2 agentのセットアップ手順(systemd対応) はてなブックマーク - zabbix 2.2 agentのセットアップ手順(systemd対応)


Fedora 19 に Zabbix 2.2 対応の zabbix-agent を入れる機会があり、その時の手順です。Fedora 18 相当の Pidora も systemd なので、同様にセットアップできると思います。Zabbix はソースから、エージェントのみをセットアップします。セットアップ後は、Fedora 19 でのデーモン常駐のため、systemd を使った自動起動設定を行います。

いずれ EPEL リポジトリの RPM パッケージが提供されると思いますが、待てない方のために。

◆ 初期セットアップ手順

あらかじめ gcc や glibc-common 等が必要です。

# yum install gcc

依存関係のあるパッケージを、まとめて入れます。

それから、ソースコードを入手、展開します。以下の例ではセットアップ先 ( prefix ) を、 /opt/zabbix 以下に設定していますが、変更可能です。省略すると /usr/local/ 以下に展開されます。

$ wget http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.0/zabbix-2.2.0.tar.gz
$ tar xfz zabbix-2.2.0.tar.gz
$ cd zabbix-2.2.0
$ ./configure --prefix=/opt/zabbix --enable-agent
$ make

make でエラーが出なければ、make install を実行します。

# make install

これで /opt/zabbix/sbin 等にセットアップされます。

次に zabbix グループとユーザを作成します。

# /usr/sbin/groupadd zabbix
# /usr/sbin/adduser -g zabbix -d /opt/zabbix -s /sbin/nologin zabbix

次に、設定ファイルを開きます。

# vi /opt/zabbix/etc/zabbix_agentd.conf

※2014/03/27 修正 ↑のzabbix_server.conf は zabbix_agentd.conf の間違いでした。

Server= で始まる行が、監視元となる Zabbix サーバ(  IP アドレスで指定) です。

次に起動テストをします。

# /opt/zabbix/sbin/zabbix_agentd

ps で確認して、起動していれば通常は問題ありません。

$ ps ax | grep zabbix
27644 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd
27647 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
27648 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
27649 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
27650 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
27651 ?        S      0:00 /opt/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

起動できなければ、ログファイル(デフォルトは /tmp/zabbix_agentd.log)の内容を確認します。

ここで zabbix_agentd の PID を一旦 kill します。

◆ systemd を使った自動起動・デーモンの常駐設定

Fedora 19 は systemd を使って管理しているため、これまでの init スクリプトは使えません。

systemd 用のファイルを作成します(元になったのは、Fedora 向け systemd スクリプトです)。このとき、ExecStart はセットアップした zabbix_agentd のパスを記述します。

# cat <<EOF > /usr/lib/systemd/system/zabbix-agent.service
[Unit]
Description=Zabbix Monitor Agent
After=syslog.target network.target

[Service]
Type=oneshot
ExecStart=/opt/zabbix/sbin/zabbix_agentd
RemainAfterExit=yes
User=zabbix

[Install]
WantedBy=multi-user.target
EOF

systemdの設定を読み込み直し、Zabbix エージェントの起動を試みます。

# systemctl --system daemon-reload
# systemctl start zabbix-agent.service

start の代わりに status を実行すると、正常に稼働しているかどうかや、ログを確認します。

# systemctl status zabbix-agent.service
zabbix-agent.service - Zabbix Monitor Agent
   Loaded: loaded (/usr/lib/systemd/system/zabbix-agent.service; disabled)
   Active: active (exited) since 火 2013-11-19 20:35:01 JST; 5s ago
  Process: 2715 ExecStart=/opt/zabbix/sbin/zabbix_agentd (code=exited, status=0/SUCCESS)
   CGroup: name=systemd:/system/zabbix-agent.service
           tq2717 /opt/zabbix/sbin/zabbix_agentd
           tq2718 /opt/zabbix/sbin/zabbix_agentd: collector [idle 1 sec]
           tq2719 /opt/zabbix/sbin/zabbix_agentd: listener #1 [waiting for connection]
           tq2720 /opt/zabbix/sbin/zabbix_agentd: listener #2 [waiting for connection]
           tq2721 /opt/zabbix/sbin/zabbix_agentd: listener #3 [waiting for connection]
           mq2722 /opt/zabbix/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

11月 19 20:35:01 web1 systemd[1]: Started Zabbix Monitor Agent.

‘active’ となっていれば、問題ありません。

最後に、ブート時にも自動起動されるようにします。

# systemctl enable zabbix-agent.service
ln -s '/usr/lib/systemd/system/zabbix-agent.service' '/etc/systemd/system/multi-user.target.wants/zabbix-agent.service'

このコマンドは、init の ‘/sbin/chkconfig zabbix-agent on’ に相当します。無効にするときは enable のかわりに ‘disable’ を指定します。