アウトプットから自分の技術力をスコア化してみませんか?PR

LAPRASでQiitaやX、connpassなど、様々なアウトプットを総合して統計的に技術力を算出!

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

公式リポジトリに習ってZabbix4.4をdocker-composeで建てる

Last updated at Posted at 2020-04-17

はじめに

完成形のcomposeファイルを置いておくと何を変えたかわからなくなったり、アップデートについていけないので筆を執りました。k8sやswarmなど流行ってますが、1ノードでインストールだけで使えるcomposeも便利ですね。

 全体的な流れとしては以下になります。

  1. 公式のzabbix/zabbix-dockerをクローン
  2. composeファイル、envファイル、secretファイルの編集
  3. composeで起動
  4. zabbix-server自体の監視

バージョン

以下の環境で記事を書いています。OSは勿論なんでもかまいませんが、dockerのバージョンが古いと動かない可能性があります。執筆時点でcomposeファイルのv3.5を使用するため、Docker engineは17.12.0以上となります。

  • Ubuntu 18.04
  • Docker version 19.03.6
  • docker-compose version 1.17.1

確認するコマンド

$ docker -v
Docker version 19.03.6, build 369ce74a3c
$ docker-compose -v
docker-compose version 1.17.1, build unknown

composeのバージョンとの対応表

Ubuntuでのdocker-composeインストール

$ sudo apt install docker-compose

1.デプロイの準備

本記事では以下の構成で説明してます。

  • コンテナ: ubuntu

  • データベース: mysql

  • WEBサーバ: nginx

公式をクローンします。

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

使用するファイルを確認していきます。

$ cd zabbix-docker/
$ ls -la

 

全部は使用しないので使うファイルだけのフォルダを作ります。composeファイル、環境変数用の.env_*ファイル、パスワードなどの機密情報用の.MYSQLファイルです。

mkdir my-zabbix
cp ./docker-compose_v3_ubuntu_mysql_latest.yaml ./my-zabbix/docker-compose.yml

cp ./.env_agent ./my-zabbix/
cp ./.env_db_mysql ./my-zabbix/
cp ./.env_java ./my-zabbix/
cp ./.env_srv ./my-zabbix/
cp ./.env_web ./my-zabbix/

cp ./.MYSQL_PASSWORD  ./my-zabbix/
cp ./.MYSQL_ROOT_PASSWORD  ./my-zabbix/
cp ./.MYSQL_USER  ./my-zabbix/

2.composeファイルの編集

composeファイルの全体を把握します。省略すると執筆時点はこんな構成でした。コメントアウト部分は今回関係ないので削除しても問題ないです。

version: '3.5'
services:
 zabbix-server:
 zabbix-proxy-sqlite3:
 zabbix-proxy-mysql:
 zabbix-web-apache-mysql:
 zabbix-web-nginx-mysql:
 zabbix-agent:
 zabbix-java-gateway:
 zabbix-snmptraps:
 mysql-server:
 db_data_mysql:

networks:
secrets:

今回はzabbix-proxyを使用しないので以下のサービス以下の記述をすべて削除します。

 zabbix-proxy-sqlite3:
  ************************
 zabbix-proxy-mysql:
  ************************

db_data_mysqlサービスはBusyBoxコンテナとなっています。BusyBoxとは基本的なUnixコマンドがインストール済みのコンテナイメージです。コンテナ作業中の10徳ナイフ的存在です。おそらくmysqlサーバにデータを流したり、バックアップを取るために入っていますが利用しなければ削除します。

 db_data_mysql:
  ***********************

WEBサーバがapacheとnginxから選べるようになっています。nginxを利用するため、apacheの方を削除し、nginxのポートを編集します。

# 削除
 zabbix-web-apache-mysql:
  *************************
  
# 編集
 zabbix-web-nginx-mysql:
  image: zabbix/zabbix-web-nginx-mysql:ubuntu-4.4-latest
  ports:
   - "80:80"
   - "443:443"

docker stack用のオプションが記述されているため削除します。全サービスのdeployディレクティブを削除してください。deployで検索すると楽です。

version: '3.5'
services:
 zabbix-server:
  ~
  deploy:
   ************************

ヘルスチェック用のオプションが自分の環境では機能しなかったため削除します。コンテナ起動から、アプリケーションの起動が終わるまでの待機時間を指定していますが、検証のため一時的にコメントアウトしました。

version: '3.5'
 services:
  zabbix-web-nginx-mysql:
   healthcheck:
    #start_period: 30s

MySQLの認証設定を編集します。composeファイルはsecretsディレクティブで以下のファイルを読み込み、機密な設定を取得します。

.MYSQL_PASSWORD
.MYSQL_ROOT_PASSWORD
.MYSQL_USER

環境変数ファイルを編集します。カスタマイズは各環境にもよりますが以下を編集しました。

.env_web
## ブラウザのタブに表示されるタイトルになります。
ZBX_SERVER_NAME=Zabbix compose
## タイムゾーン
PHP_TZ=Asia/Tokyo

3.デプロイと起動

設定は終わったので起動してみます。必要なイメージは自動でダウンロードされます。

$ sudo docker-compose up -d

暫く待つとzabbix-web-nginx-mysql_1コンテナのステータスが変わり起動完了したことがわかります。

$ sudo docker ps -a
STATUS
Up 43 seconds (healthy)

4.ログインと自身の監視

WEBダッシュボードへアクセスします。ユーザはAdmin、パスワードはzabbixになります。

http://<IP or Domain>
User:Admin
Password:zabbix

Adminユーザのパスワード変更を以下のページから行います。

Administration >Users >Admin

Zabbixサーバ自身の監視先がlocalhostになっているので変更します。更新にはしばらくかかるため、Discovery rulesのCheckを行うと比較的早く更新されます。

Configuration >Hosts >Zabbix Server

Agent interfaces >DNS name => zabbix-agent
Agent interfaces >Connect to => DNS
0
1
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

Comments

No comments

Let's comment your feelings that are more than good

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Login to continue?

Login or Sign up with social account

Login or Sign up with your email address