#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の構成
2.今回の環境構成
なんとなく頭に入れておくと、いいと思います。
##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/
)
に繋なぐと、以下の画面が出ます!
やったね!
初期ユーザ admin
/ zabbix
でログインできます。
##4.日本語化
右上の①をクリックし、
言語を②Japaneseに選択します。
##5.簡単なZabbixの設定
Zabbix Server自身にはAgentがいないので、
以下のようにAgentのNICをDNSで zabbix_agent を見るように変更します。
後は有効化して使います。
##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