zabbixをdocker-composeで動かす

スポンサーリンク

はじめに

zabbixをこの頃触る機会が多いのでdockerでの建て方を残しておきます。

といってもdocker runが面倒なのでdocker-composeですが。

参考サイト

こちらのサイト様を参考にしました。

envにしてもよかったのですが、見やすいようにenvの内容をdocker-compose.ymlに直書きしています。ある意味退化してますが理解のためなので気にしない。

公式のgitはこちら

実際の監視設定をする際にお世話になったサイト様。

dockerのインストールやdocker-composeのインストール過去投稿を参考にどうぞ。

sudoコマンドなしで動作するようにしています。

alpineの利用について

zabbixのdocker(Dockerhub)には複数のOSがあるのですが、今回はalpineを使っています。ubuntuで作られているDockerhubもあるのですが、最新のものはbionicをベースにしているため、xenialなどで動かすとうまくいかなかったりしたのでalpineで書いてます。

ubuntu使われる方は注意。(って私の設定が甘いだけかも)

docker-compose.yml

network_modeでhost指定しています。そのためコンテナ名で名前解決できないのでIPアドレスを直書きしています。

depend_onもmysqlが起動するまで時間がかかりあんまり意味がないので書いてません。

少しまってれば勝手にzabbix_server、zabbix_webが再接続してくれるので気にしない。

portは以下の通りです。Dockerfileでexportされてます。

mysqlが3306/tcp

zabbix-server-mysqlが10051/tcp

zabbix-web-apache-mysqlが80/tcp

自端末のIPアドレスは192.168.0.18です。

動作確認

まずはdocker-compose.ymlがある階層でdocker-compose up -dを使って起動します。

※停止はdocker-compose down

http://IPアドレスにアクセスすればOKです。

ここではhttp://192.168.0.18でアクセスしています。

初期のユーザー名/パスワードはadmin/zabbixです。

agentをどうするか

zabbix-agentをdockerで用意する方法もあります。こちら参照。

一応dockerで動作確認したときのdocker-compose.ymlを載せておきます。

上のdocker-compose.yml最終行に追記します。

肝はprivileged: trueで特権モード付与するのとシステム全体をmountするところでしょうか。

ただdisk周りの検知がうまくいかないときがあるような気がする。

素直にagentはdockerではなく普通にinstallしたほうが無難です。※これも私の知識が足りないだけかもしれません。。

/dev/sda2:/dev/sda2のvolumes部分は環境により変わります。

df -hなどでみたMounted onが「/」ルートのところにしてます。

最後に

mysqlは外だしして作るなりすると幸せになれるかもしれません。

いちいちdocker-compose downとかするたびにzabbixの設定が飛んじゃうので。

mysqlをRDSにするならDB_SERVER_HOSTをエンドポイントにすればいけたはずです。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする