LoginSignup
11
15

More than 3 years have passed since last update.

Zabbix 3.4でdocker上のZabbix Serverから監視しやすくなったよ

Last updated at Posted at 2017-08-29

要点

  • 同一ホストにおいて、Zabbix Serverをコンテナで動かし、Agentはホストに直接インストールしている構成
  • Zabbix 3.4からzabbix_agentd.confServerにCIDR形式(192.168.10.0/24など)が指定できるようになった
  • docker上のZabbix ServerのIPアドレスが起動するたびに変わっても大丈夫

背景

Zabbix Agentをコンテナとして起動すると、欲しい情報(ホストのネットワークI/Oなど)が取得できないため、Agentはホストに直接インストールして動かしている。
Zabbix 3.2まではzabbix_agentd.confServerには個別にZabbix ServerのIPアドレスを指定する必要があったため、docker上でZabbix Serverを動かしている場合、コンテナを再起動するたびにIPを調べて再設定する必要があった。

Zabbix Agent 3.4のインストール

Ubuntu Server 16.04 (64bit)の場合。

ウェブサイトからdebパッケージをダウンロード。
私の環境ではlibcurl3が入っていないと怒られたので追加でインストール。

sudo apt-get install libcurl3
wget http://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix/zabbix-agent_3.4.1-1+xenial_amd64.deb
sudo dpkg -i zabbix-agent_3.4.1-1+xenial_amd64.deb

sudo systemctl enable zabbix-agent.service
sudo systemctl start zabbix-agent.service

dockerコンテナが使用するIPの範囲をzabbix_agentd.confに設定。
docker networkの設定次第ではもっと狭い範囲でも可。

/etc/zabbix/zabbix_agentd.conf
Server=172.0.0.0/8

Zabbix Server 3.4 on docker

タイムゾーンを設定する環境変数が、ドキュメント通りTZからPHP_TZになっている。
気づかずに起動して謎の6時間のずれに悩んだ。

docker-compose.yaml
version: '2'
services:
  mysql:
    image: mysql:5.7
    restart: always
    command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    volumes:
      - ./data/mysql:/var/lib/mysql
    expose:
      - "3306"
    environment:
      MYSQL_ROOT_PASSWORD: docker
      MYSQL_DATABASE: zabbix
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix

  zabbix-server:
    image: zabbix/zabbix-server-mysql:alpine-3.4-latest
    restart: always
    volumes:
      - ./data/zabbix:/var/lib/zabbix
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
    ports:
      - "10051:10051"
    depends_on:
      - mysql

  zabbix-web:
    image: zabbix/zabbix-web-nginx-mysql:alpine-3.4-latest
    restart: always
    environment:
      DB_SERVER_HOST: mysql
      MYSQL_USER: zabbix
      MYSQL_PASSWORD: zabbix
      ZBX_SERVER_HOST: zabbix-server
      PHP_TZ: Asia/Tokyo
    ports:
      - "80:80"
    depends_on:
      - mysql
      - zabbix-server

このdocker-compose.yamldockerでzabbixを動かすを参考にした。

docker-compose up -d

3.2からアップデートすると、初回にデータベースの変換作業が入るので少し待とう。

2020.07.07 追記

Zabbix 4.4のどこかのバージョンから、zabbix-web-nginx-mysqlコンテナの待受ポートが変更になっているので、上記のdocker-compose.yamlそのままでは動かなくなってしまった。下記のようにポートを変更する必要がある。

(4.4以降)
  ports:
    - "80:8080"
11
15
0

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
11
15