3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

今回やること

  1. DockerにZabbixサーバーをたてる
  2. ラズパイにZabbixエージェントを入れる
  3. Zabbixサーバにエージェント(ラズパイ)を登録する

前提

  • Windowsでやる
  • WindowsにはDocker Desktopがインストールされている
  • Windowsとラズパイが同一ネットワークに存在する
    • 今回は192.168.10.0/24ネットワーク

検証環境

Zabbixサーバー

  • Windows 11 Home 22H2
    • Docker version 20.10.21, build baeda1f
    • IP: 192.168.10.101
zabbix_server -V

zabbix_server (Zabbix) 6.2.5
Revision c6d01ae 28 November 2022, compilation time: Nov 28 2022 18:35:47

Zabbixエージェント

  • Raspberry Pi 3 Model B+
    • IP: 192.168.10.107
zabbix_agentd -V

zabbix_agentd (daemon) (Zabbix) 6.0.11
Revision 17788cd2098 28 November 2022, compilation time: Nov 28 2022 09:19:03

DockerにZabbixサーバーをたてる

Zabbixの使用例を参考に、例2 PostgreSQL データベースを使ってインストールする

PostgreSQLデータベース版のZabbixサーバ
docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

docker run --name postgres-server -t -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix_pwd" -e POSTGRES_DB="zabbix" --network=zabbix-net --restart unless-stopped -d postgres:latest

docker run --name zabbix-snmptraps -t -v /zbx_instance/snmptraps:/var/lib/zabbix/snmptraps:rw -v /var/lib/zabbix/mibs:/usr/share/snmp/mibs:ro --network=zabbix-net -p 162:1162/udp --restart unless-stopped -d zabbix/zabbix-snmptraps:alpine-6.0-latest

docker run --name zabbix-server-pgsql -t -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix_pwd" -e POSTGRES_DB="zabbix" -e ZBX_ENABLE_SNMP_TRAPS="true" --network=zabbix-net -p 10051:10051 --volumes-from zabbix-snmptraps --restart unless-stopped -d zabbix/zabbix-server-pgsql:alpine-6.0-latest

docker run --name zabbix-web-nginx-pgsql -t -e ZBX_SERVER_HOST="zabbix-server-pgsql" -e DB_SERVER_HOST="postgres-server" -e POSTGRES_USER="zabbix" -e POSTGRES_PASSWORD="zabbix_pwd" -e POSTGRES_DB="zabbix" --network=zabbix-net -p 443:8443 -p 80:8080 -v /etc/ssl/nginx:/etc/ssl/nginx:ro --restart unless-stopped -d zabbix/zabbix-web-nginx-pgsql:alpine-6.0-latest

http://192.168.10.101:80にアクセスして、ログイン画面が出たら成功

80番ポートを他のサービスが使用していると、Dockerの起動に失敗する

docker ps コマンドの結果
CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS      PORTS                                         NAMES
7e664e4f5023   zabbix/zabbix-web-nginx-pgsql:alpine-6.2-latest   "docker-entrypoint.sh"   5 days ago   Up 2 days   0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp   zabbix-web-nginx-pgsql
7251684fec13   zabbix/zabbix-server-pgsql:alpine-6.2-latest      "/sbin/tini -- /usr/…"   5 days ago   Up 2 days   0.0.0.0:10051->10051/tcp                      zabbix-server-pgsql
74a3b475aa9f   zabbix/zabbix-snmptraps:alpine-6.2-latest         "/usr/sbin/snmptrapd…"   5 days ago   Up 2 days   0.0.0.0:162->1162/udp                         zabbix-snmptraps
ff29d26e827c   postgres:latest                                   "docker-entrypoint.s…"   5 days ago   Up 2 days   5432/tcp                                      postgres-server

ラズパイにZabbixエージェントをインストールする

インストールするパッケージを選択する

Zabbixのダウンロードサイトへ。
Linuxのいろいろなディストリビューションが選択できるようになっているので
間違えないように、自身のラズパイにあった設定を選択する。

項目
zabbix 6.0
os_distribution raspberry_pi_os
os_version 9
components agent
db (空)
ws (空)

今回はLTSのバージョン6.0を入れた。
os_versionは下記コマンドから調べる。
db(データベース)とws(ウェブサーバー)は、エージェントだから不要っぽい。

ラズベリーパイのバージョンを調べる
lsb_release -a

No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 9.13 (stretch)
Release:        9.13
Codename:       stretch

Zabbixをインストールするコマンド一覧

設定を選択し終えると、コマンドの一覧が表示されるので
上から順にコピペして入れていく

wget https://repo.zabbix.com/zabbix/6.0/raspbian/pool/main/z/zabbix-release/zabbix-release_6.0-5%2Bdebian9_all.deb
dpkg -i zabbix-release_6.0-5+debian9_all.deb
apt update
apt install zabbix-agent
systemctl restart zabbix-agent

# サービスの自動機能を有効にする
systemctl enable zabbix-agent

# 不要なファイルを削除
rm zabbix-release_6.0-5+debian9_all.deb

インストール後の確認

systemctl status zabbix-agentでステータスが**active(runnning)**になっていればOK

また、自動起動は下記コマンドで確認する

systemctl list-unit-files | grep zabbix

zabbix-agent.service                   enabled

enabledになっていればOK

設定ファイル(zabbix_agentd.conf)を変更する

vi /etc/zabbix/zabbix_agentd.confで設定ファイルを変更する
変更するのはたった2か所。サーバーのIPアドレスと、自身のホスト名だけ変更する。

zabbix_agentd.confの変更箇所
Server=192.168.10.101
Hostname=pianget

読み取り専用になってしまう場合は、sudo vi (以下略)として特権モードになって作業する

最後に、設定ファイルの変更を反映するために、systemctl restart zabbix-agentを再度実行する

疎通確認

サーバー(Win11/Docker)からエージェント(ラズパイ)へ疎通確認する

Dockerのzabbix-server-pgsqlのターミナルからzabbix_getでラズパイのIPを指定して
ホスト名を取得してみる

zabbix_get -s 192.168.10.107 -p 10050 -k agent.hostname

# 成功時:エージェントのホスト名が返ってくる
pianget

# 失敗例
zabbix_get [234]: Check access restrictions in Zabbix agent configuration

失敗する場合はIPが正しくないか、設定が反映されていない可能性があるので
先のzabbix_agentd.confServer=右辺を確認・変更し、サービス再起動systemctl restart zabbix-agentをする

疎通トラブルシューティング

疎通がうまくいかない場合の確認事項

  • ping {サーバIP}で応答が返ってくるか?
  • systemctl rebootでラズパイ再起動

Zabbixホストにラズパイを登録する

ホストの追加

http://192.168.10.101:80にアクセスし、左側ペインの設定→ホスト→ホストの作成

下記設定の通り設定を入れる

image.png

エージェントの状態が緑になれば成功

image.png

糸冬了!!

参考

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?