zabbix agenet(エージェント)の設定

zabbixのagent設定の覚え書きです。
ソースインストールをします。

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に最新版を、ソースでインストールします。 Zabbixとは ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェア...

↑ Zabbix インストール CentOS7 ソースインストール編

Zabbix インストール CentOS7 yum編
Zabbixのインストール履歴です。CentOS7のyum版です。 Zabbixとは ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。 Zabbixは...

↑ Zabbix インストール CentOS7 yum編

タイトルとURLをコピーしました