🎚️

RaspberryPiにZabbix Agentを入れて監視する

2022/03/06に公開

初めに

Zabbixを立てたが、監視対象がないと萎えるのでRaspberryPiにAgentを入れて監視してみる事にした。

対象のRaspberryPiのOSは下記です。

$lsb_release -a
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 11 (bullseye)
Release:	11
Codename:	bullseye

手順

1. install

aptにてインストール出来るので、インストール作業を実施する。

sudo apt update
sudo apt install zabbix-agent

SystemDの管理下で動いていることは分かる。
※しかし、接続先のサーバなどが登録がないため、動作しているだけの状態です。

$ sudo systemctl status zabbix-agent
● zabbix-agent.service - Zabbix Agent
     Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-03-06 02:49:33 GMT; 1min 51s ago
       Docs: man:zabbix_agentd
   Main PID: 25613 (zabbix_agentd)
      Tasks: 6 (limit: 1597)
        CPU: 137ms
     CGroup: /system.slice/zabbix-agent.service
             ├─25613 /usr/sbin/zabbix_agentd --foreground
             ├─25614 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
             ├─25615 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
             ├─25616 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
             ├─25617 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
             └─25619 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]

Mar 06 02:49:33 raspberrypi systemd[1]: Started Zabbix Agent.
Mar 06 02:49:33 raspberrypi zabbix_agentd[25613]: Starting Zabbix Agent [raspberrypi]. Zabbix 5.0.8 (revision d3c78f993a).
Mar 06 02:49:33 raspberrypi zabbix_agentd[25613]: Press Ctrl+C to exit.

2. 設定変更

設定は/etc/zabbix/zabbix_agentd.confに存在するのでこれを変更します。

sudo nano /etc/zabbix/zabbix_agentd.conf

Server,ServerActiveにはZabbixサーバのIPを設定してください。
Hostnameには任意の名前を設定してください。
※ザビックス側で確認しやすい名前がおすすめです。

zabbix_agentd.conf
Server={zabbix server name}
ServerActive={zabbix server name}
Hostname={device name}

設定を有効化するため、再起動をさせてください。

sudo systemctl restart zabbix-agent

3. サーバ側でホストを登録

Configuration>Hostsでホスト一覧を表示

Create hostでホストを追加
ここでは、RaspberryPi側で設定した{device name}をホスト名にする。

これで作成。

4. グラフが表示されない問題

4.1 Agentにサーバから接続できない

グラフが表示されないのは、RaspberryPi側から10051ポートで通信疎通は出来ているが、RaspberryPiがわの10050ポートにサーバがアクセスできない事が原因だと思われる。

3.1.1 正しい場合

監視対象のサーバとZabbixサーバがお互いにアクセスできれば、お互いにやり取りできる。

3.1.2 現状

グローバルIPを持っているのが、自宅ルータ(ONU)になるため、Zabbixサーバはそこまでしかアクセスできない。
※外部への通信はブロックされていないため、アクセス可能

3.1.2 変更後

自宅ルータの設定でPortをフォワーディングする設定を追加しました。
簡単に言えば、「10050に来た通信は内部のxx.xx.xx.xxに転送してください」という設定。
これで、自宅のグローバルIPで10050に来た通信はRaspberryに転送できます。

※メーカごとに異なるので個別に検索をしてみてください。下記のように型名で検索するとすぐに出てきます。
https://www.google.com/search?q=nec+port+フォワリング&oq=nec+port+フォワリング&aqs=chrome..69i57.6926j0j4&sourceid=chrome&ie=UTF-8
※また、設定を有効にすると外部からの侵入を許すことになります。理解をした上で設定してください。

3.2 Zabbixサーバ側ホスト設定を変更

Zabbixサーバ側も、どこにRaspberryPiが存在するか分かりません。
ですので、どこに接続するべきかの設定と、グラフのテンプレート設定を有効にします。

Configuration>Hostsでホスト一覧を表示
対象のホストを選択します。

画面中盤のinterface横のAddをクリックします

Agentを選択してください。

IP addressに自宅のグローバルIPを設定してください。

自宅のIPアドレスは確認くんなどで確認できます。
https://www.ugtop.com/spill.shtml

画面上部のTemplatesをクリックしてください。

ここでは表示するグラフのテンプレートを選択する事ができます。
selectをクリックすると選択画面が表示されます。

この状態で設定を保存してあげてください。

3.3 グラフの表示確認

Monitoring>Hostsをクリックして、作成したホストのGraphsを選択してください。

メモリやCPUのグラフが表示されれば完了です。

Discussion