Zabbix 5.0 で Template App Docker というテンプレートが増えていると知ったので、 試してみました。 agent 側が zabbix-agent ではダメで zabbix-agent2 が必要というのがポイントでした。

確認環境

  • Zabbix Server 側: Raspbian GNU/Linux 10 (buster)
  • zabbix-server-pgsql など: 5.0.1-1+buster
  • Agent 側 (Docker 側): Debian GNU/Linux 10 (buster), Ubuntu 18.04.4 LTS (bionic)
  • zabbix-agent2: 1:5.0.1-1+buster, 1:5.0.1-1+bionic

経緯

Zabbix 5.0 最新情報のご紹介 をみていて、 追加テンプレートのところに「Template App Docker」というのがあったので、 これはすぐに試せそうと思って試そうとしたら、 意外とハマりどころがありました。

確認

zabbix-agent のままだと 設定のホストのアイテムでキーが docker.ping のものが Unsupported item key. で取得できませんでした。

zabbix_get でも試してみると以下のような感じでした。

$ zabbix_get -s 127.0.0.1 -k docker.ping
ZBX_NOTSUPPORTED: Unsupported item key.

これは zabbix-agent の代わりに zabbix-agent2 を入れることで解決しました。

zabbix-agent が動いていると zabbix-agent2 が port 10050 の listen に失敗するので、 stop して試してうまくいったので、 zabbix-agent の方は purge しました。

グループ追加

zabbix-agent2 を入れただけだと docker に接続する権限がなくて docker.info は取得できないままなので、 adduser zabbix dockergpasswd -a zabbix docker などで docker グループ権限をつける必要があります。

今回は ansible での追加削除がしやすくなるかと思って、 /etc/systemd/system/zabbix-agent2.service.d/docker.conf を以下の内容で作成して権限をつけました。

[Service]
SupplementaryGroups=docker

確認

設定のホストのアイテムでキーが docker.info のものを開いてテストで値が取得できるようになっていれば大丈夫です。

Disqus Comments

Kazuhiro NISHIYAMA

Ruby のコミッターとかやってます。 フルスタックエンジニア(って何?)かもしれません。 About znzに主なアカウントをまとめました。

znz znz


Published