Help us understand the problem. What is going on with this article?

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

要点

  • 同一ホストにおいて、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"
330k
40人ちょっとの会社の一人情シス。広く浅く。 一人情シスだと独学ばかりなので、ツッコミ歓迎です。
https://330k.biz/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした