Zabbix公式コンテナとdocker-compose使って検証環境を簡単に作成削除

Zabbixの環境を使って色々な検証したかったので、公式のコンテナ使って、docker-composeで気軽に構築削除できるようにしました。

変数ファイル(.env)

.env という名前のファイルを準備して docker-compose.yml と同じディレクトリに置きます。

設定値は適宜変更可能です。 選べるバージョンはこことかを参照。

OS=alpine
VERSION=3.0.15
DB_NAME=zabbix
DB_USER=zabbix
DB_USER_PASSWORD=zabbix
DB_ROOT_PASSWORD=zabbix
HTTP_PORT=8080
TIME_ZONE=Asia/Tokyo


# 0 - basic information about starting and stopping of Zabbix processes;
# 1 - critical information
# 2 - error information
# 3 - warnings
# 4 - for debugging (produces lots of information)
# 5 - extended debugging (produces even more information)
LOG_LEVEL=3

docker-compose.ymlファイル

.env ファイルで定義した変数を利用する形にしています。

version: "3"
services:
  zabbix_db:
    image: mysql:5.7
    environment:
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
  zabbix_server:
    image: zabbix/zabbix-server-mysql:${OS}-${VERSION}
    environment:
      - DB_SERVER_HOST=zabbix_db
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
      - ZBX_DEBUGLEVEL=${LOG_LEVEL}
    ports:
      - "10051:10051"
    links:
      - zabbix_db
  zabbix_web:
    image: zabbix/zabbix-web-apache-mysql:${OS}-${VERSION}
    environment:
      - ZBX_SERVER_HOST=zabbix_server
      - DB_SERVER_HOST=zabbix_db
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USER}
      - MYSQL_PASSWORD=${DB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}
      - PHP_TZ=${TIME_ZONE}
    ports:
      - ${HTTP_PORT}:80
    links:
      - zabbix_server
      - zabbix_db
  zabbix_agent:
    image: zabbix/zabbix-agent:${OS}-${VERSION}
    privileged: true
    environment:
      - ZBX_SERVER_HOST=zabbix_server
    expose:
      - "10050"
    links:
      - zabbix_server

基本的な使い方

docker-composeのインストールや使い方は他に詳しいブログ沢山あるので適当にググってください。

ここでは最低限必要な部分だけ。

初期構築時のコマンド。-dをつけないとフォアグラウンドで実行されてログが流れます。

docker-compose up -d

# ログ確認
docker-compose logs -f

後は上記の設定の場合は HTTP_PORT8080 にしていたので、http://<docker-host>:8080 に繋いで初期ユーザ admin / zabbix でログインできます。

Zabbix Server自身にはAgentがいないので、以下のようにAgentのNICDNSzabbix_agent を見るように変更します。後は有効化して使います。

起動と停止は以下のコマンドです。フォアグラウンドで起動したものをCtrl-Cで落としたり、stopしただけの場合は、DB等のデータが残ります。

docker-compose stop
docker-compose start

バージョンを切り替えたい場合など、データ削除したい場合はdbのコンテナを削除してupし直したり、downで全環境削除してupし直します。

docker-compose rm zabbix_db
docker-compose down

参考URL

https://hub.docker.com/u/zabbix/

[https://qiita.com/BSmile/items/f77f2a1dec3ebeca0161]

https://www.zabbix.com/documentation/3.0/manual/installation/containers