75
93

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Zabbix 5.0 を Docker Compose で起動する手順

Posted at

これは何?

Zabbix はオープンソースで自由に使える監視ツールです。 Zabbix 公式 Docker イメージ を使い、Docker Compose で MySQL 等のデータベースを一括セットアップする手順をまとめました。

慣れれば Zabbix 5.0 の環境を 5 分程度でセットアップできるでしょう。

公式に Docker Compose 用 YAML ファイルが配布されているため、そちらを利用します。

image.png

背景は、Zabbix 5.0 を簡単に試す環境を作りたかったからです。Zabbix 4.0 までは zabbix/zabbix-appliance という環境が1つにまとまった Docker イメージが公式から配布されていました。Zabbix 5.0 は、現時点では RHEL 対応のものしか公開されていないため、Docker Compose を使う手順で検証をしました。

手順

Docker と Docker Compose をセットアップ

(既に設定済みの環境では次へ)

参考:CentOS 7.x の場合

curl -fsSL https://get.docker.com -o get-docker.sh
sh ./get-docker.sh
systemctl enable dockern
systemctl start docker
yum -y install docker-compose

GitHub のリポジトリを clone して移動

git clone https://github.com/zabbix/zabbix-docker.git
cd zabbix-docker

設定ファイルの準備

今回は CentOS + Nginx + MySQL の組み合わせの Docker Compose ファイル を使用します。同ファイルには latestlocal がありますが、ここでは前者(latest)の手順です。後者(local)はイメージをローカルでビルドします。 なお、他にも Alpine や Ubuntu をベースイメージのものや、バックエンドが PostgreSQL も配布されています。

cp docker-compose_v3_centos_mysql_latest.yaml docker-compose.yaml

以後、YAML 設定ファイルを明示しない場合は docker-compose.yaml を指します。

YAML ファイル中、MySQL のユーザやパスワードの設定ファイルは .MYSQL_USER.MYSQL_PASSWORD.MYSQL_ROOT_PASSWORD です。必要に応じて各ファイルを編集します。

Docker イメージのダウンロード

docker-compose pull

イメージ一覧の確認は、 dokcer images :

$ docker images
REPOSITORY                       TAG                 IMAGE ID            CREATED             SIZE
mysql                            8.0                 a0d4d95e478f        4 hours ago         541MB
busybox                          latest              78096d0a5478        11 hours ago        1.22MB
zabbix/zabbix-web-apache-mysql   centos-5.0-latest   5c3418ac3645        31 hours ago        505MB
zabbix/zabbix-agent              centos-5.0-latest   6bd73926b75f        31 hours ago        256MB
zabbix/zabbix-proxy-sqlite3      centos-5.0-latest   4a01689b6f57        32 hours ago        267MB
zabbix/zabbix-server-mysql       centos-5.0-latest   465a30a32216        41 hours ago        360MB
zabbix/zabbix-web-nginx-mysql    centos-5.0-latest   f3a0f8c7659f        46 hours ago        487MB
zabbix/zabbix-java-gateway       centos-5.0-latest   1c3c611d4bb8        46 hours ago        395MB
zabbix/zabbix-proxy-mysql        centos-5.0-latest   91fd7fd05aec        46 hours ago        358MB
zabbix/zabbix-snmptraps          centos-5.0-latest   06c106b449cc        46 hours ago        283MB

起動

YAML ファイルが存在するディレクトリ上で、デタッチドモード( -d オプション)を付けて起動します。

docker-compose up -d

状態の確認:

# docker-compose  ps
WARNING: Some services (zabbix-agent, zabbix-java-gateway, zabbix-proxy-mysql, zabbix-proxy-sqlite3, zabbix-server, zabbix-snmptraps, zabbix-web-apache-mysql, zabbix-web-nginx-mysql) use the 'deploy' key, which will be ignored. Compose does not support 'deploy' configuration - use `docker stack deploy` to deploy to a swarm.
            Name                          Command              State               Ports
----------------------------------------------------------------------------------------------------
zabbixdocker_db_data_mysql_1    sh                             Exit 0
zabbixdocker_mysql-server_1     docker-entrypoint.sh mysql     Up
                                ...
zabbixdocker_zabbix-agent_1     /sbin/tini -- /usr/bin/doc     Up
                                ...
zabbixdocker_zabbix-java-       docker-entrypoint.sh /usr/     Up
gateway_1                       ...
zabbixdocker_zabbix-proxy-      /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10071->10051/tcp
mysql_1                         ...
zabbixdocker_zabbix-proxy-      /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10061->10051/tcp
sqlite3_1                       ...
zabbixdocker_zabbix-server_1    /sbin/tini -- /usr/bin/doc     Up       0.0.0.0:10051->10051/tcp
                                ...
zabbixdocker_zabbix-            /usr/bin/supervisord -c /e     Up       0.0.0.0:162->1162/udp
snmptraps_1                     ...
zabbixdocker_zabbix-web-        docker-entrypoint.sh           Up       0.0.0.0:80->8080/tcp,
apache-mysql_1                                                          0.0.0.0:443->8443/tcp
zabbixdocker_zabbix-web-        docker-entrypoint.sh           Up       0.0.0.0:8081->8080/tcp,
nginx-mysql_1                                                           0.0.0.0:8443->8443/tcp

zabbixdocker_db_data_mysql_1Exit 0 の状態ですが、これは正常です。その他は Up です。

処理状況を見るには docker-compose logs -f です。次のような Zabbix Server が起動するログが出るまで待ちます。

zabbix-server_1            | Starting Zabbix Server. Zabbix 5.0.0 (revision 9665d62).
zabbix-server_1            | Press Ctrl+C to exit.
zabbix-server_1            |
zabbix-server_1            |      6:20200514:164942.480 Starting Zabbix Server. Zabbix 5.0.0 (revision 9665d62).
zabbix-server_1            |      6:20200514:164942.480 ****** Enabled features ******
zabbix-server_1            |      6:20200514:164942.480 SNMP monitoring:           YES
zabbix-server_1            |      6:20200514:164942.480 IPMI monitoring:           YES
zabbix-server_1            |      6:20200514:164942.480 Web monitoring:            YES
zabbix-server_1            |      6:20200514:164942.480 VMware monitoring:         YES
zabbix-server_1            |      6:20200514:164942.480 SMTP authentication:       YES
zabbix-server_1            |      6:20200514:164942.480 ODBC:                      YES
zabbix-server_1            |      6:20200514:164942.480 SSH support:               YES
zabbix-server_1            |      6:20200514:164942.480 IPv6 support:              YES
zabbix-server_1            |      6:20200514:164942.480 TLS support:               YES
zabbix-server_1            |      6:20200514:164942.480 ******************************
zabbix-server_1            |      6:20200514:164942.480 using configuration file: /etc/zabbix/zabbix_server.conf
zabbix-server_1            |      6:20200514:164942.493 current database version (mandatory/optional): 05000000/05000000
zabbix-server_1            |      6:20200514:164942.493 required mandatory version: 05000000
zabbix-server_1            |      6:20200514:164942.555 server #0 started [main process]
zabbix-server_1            |    200:20200514:164942.556 server #1 started [configuration syncer #1]

管理画面に接続

ウェブブラウザで http://<IPアドレスまたはホスト名> を開きます。

image.png

デフォルトのユーザ情報 は、Username が Admin 、 Password が zabbix です。入力後、 Sign in をクリックします。

ログイン後、パスワードを変更します。

画面左下の User Settings をクリック → Change password をクリック → PasswordPassword (once again) に入力後、 Update をクリックします。あわせて言語を日本語に変更したい場合は、 Language English (en_GB)Japanese (ja_JP) に変更しておきます(ただし、デフォルトでは画像中の日本語が文字化けします)。

Zabbix Server の 利用不可 を解消する

ログイン直後から、Zabbix Server が「利用不可」の障害となっています。デフォルトのままでは、Zabbix Server の状態を Zabbix agent経由で取得できません(理由は、デフォルトで Zabbix Server が 127.0.0.1 のエージェントに対し接続する設定だからです)。

これを回避するには、以下の手順で設定を変更します。監視先を 127.0.0.1 から zabbix-agent に変更します(Docker の bridge ネットワーク内では、サービス名で名前解決できるため、 zabbix-agent のサービス名を指定すると、自動的に zabbix-agent コンテナの IP アドレスに名前解決します)。

左メニューの「設定」→「ホスト」をクリックし、「Zabbix server」の名前をクリックします。
それから「インターフェース」の「IPアドレス」が 「127.0.0.1」になっていますが、これを消します。そして、 「DNS名」に zabbix-agent を入力し、接続方法の DNS をクリックし 、 更新 をクリックします。

image.png

動作確認は左メニューの「監視データ」→「最新データ」をクリックします。Zabbix server から、各アイテムの値が取れています。グラフをクリックすると、リアルタイムに値が変わるのを確認できるでしょう。

image.png

そのあと、ダッシュボードに戻ると「障害」になっていますが、3分後に解消されます(デフォルトでは3分間)。

image.png

あとは色々触ってみましょう。リソース一覧グラフを見るには、「監視データ」→「ホスト」→「Zabbix server」をクリック→「グラフ」を選択が手っ取り早いです。

image.png

Enjoy!

参考

75
93
4

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
75
93

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?