13
18

More than 5 years have passed since last update.

Zabbix 4.2 を Docker Compose でサクッと動かす

Posted at

概要

Zabbix 4.2 をサクッと動かすには、公式 docker-compose を使うのが簡単早いんですが、やってみると下記問題があったため、対処方法をまとめておきます。

  • 日本語表示にするとグラフの日本語部分が豆腐に文字化けする
  • GUIで表示される時刻がラトビア時間になっている
  • 起動後、Zabbix Server 内 Zabbix Agent との通信ができずエラーになる
  • proxy 関連部分のエラーが出続ける
  • frontend が apache 版と nginx 版の両方があるが、片方で十分

前提条件

  • docker および docker-compose はインストール済み
  • Zabbix バージョンは 4.2 で確認
  • Zabbix は CentOS + PostgreSQL + NGINX 版を使用

手順

1. git clone 等で公式 docker-compose 一式をローカルに展開

$ git clone https://github.com/zabbix/zabbix-docker.git

各種 docker-compose ファイル、各コンテナ向け環境定義ファイル(.env_*)が必要になります。

2. 日本語表示用 Docker Image 作成のための Docker File を作成

$ cd zabbix-docker
$ vim Dockerfile
Dockerfile
FROM zabbix/zabbix-web-nginx-pgsql:centos-4.2-latest
RUN yum -y install ipa-pgothic-fonts && \
    cd /usr/share/zabbix/assets/fonts && \
    mv DejaVuSans.ttf DejaVuSans.ttf.org && \
    ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf DejaVuSans.ttf

多少乱暴ですが、標準の DejaVuSans.ttf を「IPA Pゴシック」フォントに置き換えてしまいます。

3. Docker-compose ファイルを編集する

不要箇所のコメントアウト、Docker Image 作成など。

docker-compose_v3_centos_pgsql_latest.yaml
version: '3.5'
services:
 zabbix-server:
(略)
# ** Zabbix-proxy関連をコメントアウト **
#  zabbix-proxy-sqlite3:
#   image: zabbix/zabbix-proxy-sqlite3:centos-4.2-latest
(略)
#   labels:
#    com.zabbix.description: "Zabbix proxy with SQLite3 database support"
#    com.zabbix.company: "Zabbix SIA"
#    com.zabbix.component: "zabbix-proxy"
#    com.zabbix.dbtype: "sqlite3"
#    com.zabbix.os: "centos"
#
#  zabbix-proxy-mysql:
#   image: zabbix/zabbix-proxy-mysql:centos-4.2-latest
(略)
#   labels:
#    com.zabbix.description: "Zabbix proxy with MySQL database support"
#    com.zabbix.company: "Zabbix SIA"
#    com.zabbix.component: "zabbix-proxy"
#    com.zabbix.dbtype: "mysql"
#    com.zabbix.os: "centos"

# ** Apache版フロントエンドをコメントアウト **
#  zabbix-web-apache-pgsql:
#   image: zabbix/zabbix-web-apache-pgsql:centos-4.2-latest
(略)
#    com.zabbix.dbtype: "pgsql"
#    com.zabbix.os: "centos"

 zabbix-web-nginx-pgsql:
  #image: zabbix/zabbix-web-nginx-pgsql:centos-4.2-latest  ** コメントアウト **
  build: .   # ** 専用Dockerfileを使用するため追記 **
  ports:
   - "80:80"    # ** export port を 80 に変更 **
   - "443:443"  # ** export port を 443 に変更 **
(略)

4. Zabbix時間を日本時間に変更

Web GUI に表示される時間は、デフォルトでは Zabbix 本社があるラトビア時間が使われるので、日本時間に変更します。WEB用環境設定ファイルである .env_web で設定します。

./env_web
(略)
# PHP_TZ=Europe/Riga
PHP_TZ=Asia/Tokyo
(略)

5. 起動する

上記で事前準備は完了。起動します。

$ docker-compose -f docker-compose_v3_centos_pgsql_latest.yaml up

6. Zabbix Agent との通信エラーを解消する

GUI アクセスすると、Zabbix Agent との通信がエラーになっているはずです。

原因は、デフォルトでは、Zabbix Server のエージェントのインタフェースが 127.0.0.1 となっていて、別コンテナである Zabbix agent と通信できないためです。1

Docker-compose では DNS で名前解決できるので、以下のように、「DNS名」に「zabbix-agent」と入れ、接続方法を「DNS」にすることで解消できます。

スクリーンショット 2019-06-15 21.50.16.png

終わり

以上でエラーなく普通に使えるようになりました。


  1. Zabbix Server から 127.0.0.1:10050 に通信しようとするが、Zabbix Server コンテナでは :10050 を listen していないため、Connection refused になる。Zabbix Agent コンテナでは :10050 を listen してるんだけどね。。 

13
18
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
13
18