昨日Prometheusを試してみたので今回はZabbixを試してみます。

環境


  • Zabbix 4.0 RC0 (公式Dockerイメージ)
  • MariaDB 10.3.7 (自作Dockerイメージ)
  • nginx(公式Dockerイメージ)

この辺の公式イメージ群を使用して構築ます。本当は4.0のdocker-composeがあるのが好ましかったのですが、公式には3系までのdocker-composeしかないので自作することにします。

docker-compose.yml


とりあえず、いつも通りにdocker-composeを作成。docker-composeを使用しないケースはこちらの記事があるので、この記事と公式の情報を参考にしながらdocker-compose.ymlを書いてみました。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
version: '3'
services:
zabbix-server:
image: zabbix/zabbix-server-mysql:ubuntu-trunk
container_name: zabbix-server
environment:
TZ: "Asia/Tokyo"
DB_SERVER_HOST: mariadb
MYSQL_ROOT_PASSWORD: mypass
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_DATABASE: zabbix
expose:
- "10051"
restart: unless-stopped
zabbix-web:
image: zabbix/zabbix-web-nginx-mysql:ubuntu-trunk
container_name: zabbix-web
environment:
TZ: "Asia/Tokyo"
DB_SERVER_HOST: mariadb
MYSQL_ROOT_PASSWORD: mypass
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_DATABASE: zabbix
ports:
- "80:80"
restart: unless-stopped
zabbix-agent:
image: zabbix/zabbix-agent:ubuntu-trunk
container_name: zabbix-agent
environment:
TZ: "Asia/Tokyo"
restart: unless-stopped
mariadb:
image: yoshinorin/docker-mariadb:10.3.7
container_name: mariadb
environment:
TZ: "Asia/Tokyo"
MYSQL_ROOT_PASSWORD: mypass
MYSQL_USER: zabbix
MYSQL_PASSWORD: zabbix
MYSQL_DATABASE: zabbix
volumes:
- ./volumes/mariadb/data/:/var/lib/mysql
- ./volumes/mariadb/config/:/etc/mysql/
hostname: mariadb
expose:
- "3306"
restart: unless-stopped

各イメージは名前が紛らわしくて、どれを使うのか迷ってしまいますが、公式のドキュメント通りにやればよいです。バージョンを指定したかったのですが、4.0はリリース前であるためかubuntu-trunkのようにベースイメージのOSを指定するような形になりました。データベースは自作のMariaDBイメージを使うことに。これは普通にMySQLにも置き換え可能。

起動する


Admin / zabbix でログインできます。

感想


こちらもここまでは楽だでした。ちょっとWebUIがごちゃごちゃしてるなぁ…。という印象。とりあえずPrometheusもZabbixも収集サーバの構築は容易だったけども、どっちも監視対象にエージェント・Exporterを設定するのはめんどくさそう。できれば次に行く前にどっちを使うか決めてしまいたいところ。