zabbixのagent設定の覚え書きです。
ソースインストールをします。
↑ 最新版「Zabbix Agent2」は、上記へ
zabbix agent(エージェント)基本インストール
# groupadd --system zabbix # useradd --system -g zabbix -d /usr/lib/zabbix -s /sbin/nologin -c "Zabbix Monitoring System" zabbix # mkdir -m u=rwx,g=rwx,o= -p /usr/lib/zabbix # chown zabbix:zabbix /usr/lib/zabbix
↑ユーザ / グループを設定します。
# get https://cdn.zabbix.com/zabbix/sources/stable/5.2/zabbix-5.2.5.tar.gz # tar xzvf zabbix-5.2.5.tar.gz # cd zabbix-5.2.5 # ./configure --enable-agent # make # make install
↑インストールをします。
# vi /usr/lib/systemd/system/zabbix-agent.service [Unit] Description=Zabbix Agent 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 PIDFile=/tmp/zabbix_agentd.pid KillMode=control-group ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE ExecStop=/bin/kill -SIGTERM $MAINPID RestartSec=10s User=zabbix Group=zabbix [Install] WantedBy=multi-user.target
↑起動ファイルを設定します。
# vi /usr/local/etc/zabbix_agentd.conf #Server=127.0.0.1 ↓ Server=XXX.XXX.XXX.XXX #ServerActive=127.0.0.1 ↓ ServerActive=XXX.XXX.XXX.XXX Hostname=Zabbix server ↓ #Hostname=Zabbix server # HostnameItem=system.hostname ↓ HostnameItem=system.hostname
↑「Hostname」では設定しないで、「HostnameItem」を指定します。
これにより、OSのホスト名がそのまま、設定に反映されます。
「XXX.XXX.XXX.XXX」は、Zabbix Server側のIPアドレス。
Zabbix用、Firewall設定
Zabbix Agent側設定
# firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="XXX.XXX.XXX.XXX/32" port protocol="tcp" port="10050" accept' success # firewall-cmd --reload success # firewall-cmd --list-all public (active) target: default (略) rich rules: rule family="ipv4" source address="XXX.XXX.XXX.XXX/32" port port="10050" protocol="tcp" accept
↑Zabbix Sever側IPアドレス「XXX.XXX.XXX.XXX」に対して、10050のポートを空ける
Zabbix Server側
# firewall-cmd --permanent --new-zone=zabbixZone success
↑新しく、ゾーンを作成します。「zabbixZone」の名称自体は、何でもかまいません
# firewall-cmd --permanent --zone=zabbixZone --set-target=ACCEPT success
↑ゾーンの基本動作は、「許可」
# firewall-cmd --permanent --zone=zabbixZone --add-port=10051/tcp success
↑ゾーンのポートを設定
サーバー側では、10051となります。
#firewall-cmd --permanent --zone=zabbixZone --add-source=XXX.XXX.XXX.XXX/32 success
↑ゾーンに、Agent側のIPを入れる
#firewall-cmd --reload success #firewall-cmd --get-active-zones (略) zabbixZone sources: XXX.XXX.XXX.XXX/32
↑設定ができました。
# firewall-cmd --permanent --zone=zabbixZone --add-source=XXX.XXX.XXX.XXX/32 success # firewall-cmd --reload success
↑2個目の、Agentでは、上記のコマンドだけで、大丈夫です
Zabbix Agentの起動
# systemctl start zabbix-agent # 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 Sat 2021-XX-XX XX:XX:XX JST; XX ago Process: 4489 ExecStart=/usr/local/sbin/zabbix_agentd -c $CONFFILE (code=exited, status=0/SUCCESS) Main PID: 4491 (zabbix_agentd) CGroup: /system.slice/zabbix-agent.service ├─4491 /usr/local/sbin/zabbix_agentd -c /usr/local/etc/zabbix_agentd.conf ├─4492 /usr/local/sbin/zabbix_agentd: collector [idle 1 sec] ├─4493 /usr/local/sbin/zabbix_agentd: listener #1 [waiting for connection] ├─4494 /usr/local/sbin/zabbix_agentd: listener #2 [waiting for connection] ├─4495 /usr/local/sbin/zabbix_agentd: listener #3 [waiting for connection] └─4496 /usr/local/sbin/zabbix_agentd: active checks #1 [idle 1 sec] XX XX XX:XX:XX xxxx systemd[1]: Starting Zabbix Agent... XX XX XX:XX:XX xxxx systemd[1]: Started Zabbix Agent.
↑ Zabbix Agentが起動されました。
Zabbix Agent <-> Zabbix Server の通信チェック
Zabbix Agent -> Zabbix Server 確認
# nmap XXX.XXX.XXX.XXX -p 10051 Starting Nmap 6.40 ( http://nmap.org ) at 2021-XX-XX XX:XX JST Nmap scan report for XX.XX.XX (XXX.XXX.XXX.XXX) Host is up (0.00049s latency). PORT STATE SERVICE 10051/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.48 seconds
↑Zabbix Agent側でチェック
「XXX.XXX.XXX.XXX」は、Zabbix Server側のIPアドレス
「10051/tcp open unknown」と、「open」となっていれば、OKです。
Zabbix Server -> Zabbix Agent 確認
# nmap YYY.YYY.YYY.YYY -p 10050 Starting Nmap 6.40 ( http://nmap.org ) at 2021-XX-XX XX:XX JST Nmap scan report for XX.XX.XX.XX (YYY.YYY.YYY.YYY) Host is up (0.00052s latency). PORT STATE SERVICE 10050/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
↑Zabbix Server側で、チェック
「YYY.YYY.YYY.YYY」は、Zabbix Agent側のIPアドレス
「10050/tcp open unknown」と、「open」となっていれば、OKです。
Zabbix Server -> Zabbix Agent データが取得できるかチェック
# zabbix_get -s YYY.YYY.YYY.YYY -k system.hostname (FQDN)
↑Zabbix Server側で、チェック
「YYY.YYY.YYY.YYY」は、Zabbix Agent側のIPアドレス
「zabbix_get」コマンドで、Agent側のホスト名が帰ってくれば、OKです。
Zabbix Serverの画面上で、設定
↑右メニュー「設定」の「ホスト」を選び、右上「ホストの作成」を選びます。
↑ホスト名は、「zabbix_agentd.conf」で設定したホスト名を入れます。
グループは、何かを指定します
↑「追加」を押して、「エージェント」を選びます。
↑ Zabbix Agent のIPアドレスを入れます。
↑テンプレートのタブを選びます。
テンプレートのタグを選ばないと、
↑のように「エージェントの状態」の「ZBX」のところが緑になりません。白色のままです。
また
↑ダッシュボードのところでは、「不明」として扱われます。
「利用可能」のところが増えると正常です。
↑ 選択を選択しても、何も出てきません。
↑「Zabbix」と入力れます。
候補が出てきますので、「Linux by Zabbix agent」を選びます。
↑追加を押します。
↑追加されました。
右下の「ZBX」のところは、白のままです(緑ではありません)
↑ダッシュボードをみると、「利用可能」に、一つ追加され「2」となりました。
↑すこし、時間が経過して、「エージェントの状態」の「ZBX」が緑となりました。
これで、完了です。
Zabbix Agent 「Server」と「ServerActive」の違い
「/usr/local/etc/zabbix_agentd.conf」にある「Server」と「ServerActive」の違いは何でしょうか・・・
「Server」とは
「Server」で指定するIPアドレスのマシン(Zabbix Serverマシン)から、Zabbix Agentのサーバーに、「今のCPU負荷は?」というリクエストが来て、「XXですよ」とやりとりするIP(Zabbix Serverマシン)。
「ServerActive」とは
ServerActiveのIP(Zabbix Serverマシン)は、サーバー側(Zabbix Serverマシン)に積極的に、情報を送るサーバーのIP(Zabbix Serverマシン)。
Zabbix Agent側が、積極的に、Zabbix Agent側のデータをサーバー(Zabbix Serverマシン)に送信する。
能動的な(パッシブな)やりとりだけであれば、ServerActiveの設定は不要。
Zabbix Server と、Zabbix Agentのエラーメッセージ
Zabbix Agent側
no active checks on server [XXX.XXX.XXX.XXX:10051]: host [xxxxxxxx] not found
(「XXX.XXX.XXX.XXX」は、Zabbix Server 側のIPアドレス)
↑ と、出ることがありますが、上記は、Zabbix Agent起動時や、Zabbix Server 再起動時などに、
「サーバー側の設定がありません」という意味ですが、正常に稼働していれば、時間の経過とともにメッセージは、無くなるかと思います。
もし、Zabbix Server、Zabbix Agentの起動後、数時間も同じ「no active checks on server」と出てきたら、なにか、設定が間違っている可能性があります。
Zabbix Server側
cannot send list of active checks to "YYY.YYY.YYY.YYY": host [xxxxxxxx] not found
(「XXX.XXX.XXX.XXX」は、Zabbix Agent 側のIPアドレス)
↑Zabbix Agent 側の再起動などで、Zabbix Agent 側のデータが見つからない時に出る事があります。
これも、同じメッセージが出るようであれば、設定を見直した方がいいかと思います。
enabling Zabbix agent checks on host "xxxxxxxx": host became available
↑エラーのあと、数分後、「available」になった(正常になった)とのメッセージ
関連記事
↑ Zabbix インストール CentOS7 ソースインストール編
↑ Zabbix インストール CentOS7 yum編