LoginSignup
24
33

More than 3 years have passed since last update.

docker-composeを使ってZabbixの環境を作成する

Last updated at Posted at 2019-07-16

docker-composeを使ってZabbixの環境を作成する

忘備録です。
むずかしいことや詳しいことは苦手なのでシンプルにかきます。

思いついた時に、色々書き加えます。

参考サイト1:Zabbix公式コンテナとdocker-compose使って検証環境を簡単に作成削除
参考サイト2:zabbix/DockerHub
参考サイト3:Zabbixドキュメント3.0

0.簡単に、3つの前提知識

「docker-composeを使ってZabbixの環境を作成する」前に、簡単に、3つの基礎事項をしるします。

1. Dockerとは/Qiita
 -> コンテナ型の仮想環境を、作成・配布・実行するためのプラットフォーム。
2. docker-compose とは/Qiita
 -> 複数のコンテナからなるサービスを構築・実行する手順を自動的にし、管理を容易にする機能。
3. Zabbixとは/Qiita
 -> 無料のオープンソースで、複数のアプリケーションを監視できる統合監視システム。

0.+@ 環境を構成する前に、プラスアルファ

1.Zabbix/Qiitaの構成
IMG_3946.JPG

2.今回の環境構成
IMG_3957.JPG
なんとなく頭に入れておくと、いいと思います。

1.変数ファイル(.env)を作成する

docker-compose.ymlと同じディレクトリに、
.env という名前のファイルを新規作成します。

▼▼.envの中身

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公式サイトを参考にしてください。

2.docker-compose.ymlファイルを作成する

.env ファイルで定義した変数を利用する形、だそう。

▼▼docker-compose.ymlの中身

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

3.いざ初期構築

▼▼コマンドで、以下のコマンドを打ち込みます。
-dをつけないとフォアグラウンドで実行されてログが流れる、とのこと。

docker-compose up -d

# ログ確認
docker-compose logs -f

※ポート番号(ここでは8080)が被っているよ、とエラーが出たので、
 8000なり8001なり、好きなポート番号に変えました。

無事にコマンドが通ると、
http://:8080(私の場合はhttp://localhost:8080/)
に繋なぐと、以下の画面が出ます!
スクリーンショット 2019-07-16 21.22.09.png

やったね!
初期ユーザ admin / zabbix でログインできます。

4.日本語化

右上の①をクリックし、
言語を②Japaneseに選択します。
スクリーンショット 2019-07-16 21.26.37.png

5.簡単なZabbixの設定

Zabbix Server自身にはAgentがいないので、
以下のようにAgentのNICをDNSで zabbix_agent を見るように変更します。
スクリーンショット 2019-07-16 21.24.48.png

後は有効化して使います。

5.主なdocker-composeコマンド

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

▼▼起動と停止のコマンド

docker-compose stop
docker-compose start

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

docker-compose rm zabbix_db
docker-compose down
24
33
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
24
33