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

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

起動する


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

感想


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