Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
16
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@330k

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"
16
Help us understand the problem. What is going on with this article?
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
16
Help us understand the problem. What is going on with this article?