Tech-Circleのインフラ系はDockerばかりらしい。
ということで、私もDocker + Zabbixの話を書こうと思います。
(流行りだからね。乗らないとね。波にね。かぶりすぎで泣きそう。)
##知ってた?
運用監視ツールにZabbixを使用されている皆さん、公式のドキュメントにあるインストールガイドに5 Installation from containersというのがあるのを知っていましたか?
そうこれ、zabbixが提供しているイメージなんです。
現在提供されているのは3.0と3.2が提供されているようで、導入方法は本当に簡単です。
簡単だよ
先ずはZabbixのDBとして必要なDBコンテナを立ち上げましょうZabbixコンポーネントではMySQLとPostgreSQLがサポートされています。この例はMySQLです。
で、当然の事ながらパスワードは例なので適宜置き換えを。
docker run --name mysql-server -t \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
-d mysql:5.7
続いてZabbixのCoreになる部分です。
ここでは接続先のDB情報を指定してください。
docker run --name zabbix-server-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest
次はwebサーバを指定します。
サポートされているのは Apache2 と Nginx になります。
docker run --name zabbix-web-nginx-mysql -t \
-e DB_SERVER_HOST="mysql-server" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="zabbix" \
-e MYSQL_ROOT_PASSWORD="zabbix" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest
さてさて、最後にエージェントも導入しましょう。
docker run --name zabbix-agent \
--link zabbix-server-mysql:zabbix-server \
-d zabbix/zabbix-agent:latest
あれ・・・出来てしまったぞ・・・
今回の例だとzabbix-web接続を80にしているので、http://dockerIPアドレス/ へ接続すると・・・
たったこれだけでサーバが出来上がってしまいました。
今回はZabbixサーバが簡単にできるよというお話をさせていただいてますが、Zabbixサーバ以外にもZabbixプロキシコンテナが用意されています。
例えばZabbixサーバは既に用意されている環境を使用したり、AWSなどのAmazon Linux + RDSを使用。離れた環境ではdockerやrktを使用しZabbixプロキシを構築し、集約・サーバへの送信という組み立ても可能です。
まーったく伝えきれて居ないですが、今後も個人的にZabbixの面白さを伝えて行けたらと思います。
また、裏方でやっているZabbix Advent Calendar 2016もぜひ見ていってください。
明日は@koudaiii先生ですね。皆さんお楽しみに!