運用技術者がインフラ構築に時間をかけずCoreOS+docker-composeでミドルウェア環境を作る(zabbix編)

はじめに

前回の記事の続きです。Docker-Composeまで導入が終われば、あとはミドルウェアをインストールするだけです。研究目的、運用改善目的であれば、1つのサーバにいろいろなミドルウェアを入れて良いと思います。運用現場は研究のリソースもないですし、同一サーバのほうが連携がしやすいためです。




参考になるサイト

Docker-composeは、パラメータシートを作れば、ミドルウェアのダウンロードから簡単な初期設定までを実施してくれる優れものです。サービスの起動/停止もコマンド一つです。とても素晴らしいです。

以下のサイトに主要なミドルウェアのパラメータシートがあるので、一部アレンジしながら使ってみたいと思います。


Dockerで即実行できる、社内・自宅向けオープンソースWebアプリ - Qiita
デスクトップアプリケーションに比べるとWebアプリケーションの導入は面倒だが、DockerやVagrantの登場によって敷居が低くなっている。誰かがDockerHubへ使いやすいイメージを公開してくれたり、Webアプリの開発元がDoc...

このサイトにある、docker-compose.ymlを自分の環境へコピーすれば、環境が出来上がります。とても簡単です。


大まかな作業の流れ

超ざっくりですが、以下の流れで作ります。

1.作業ディレクトリを作る
2.パラメータファイル(docker-compose.yml)を作る
3.Docker-Composeをパラメータファイルを指定して実行する

これだけです。
多少、構成を見直すなどの操作は必要ですが、基本これだけです。ツールのダウンロードからサービスの立ち上げまで出来てしまいます。


zabbixのインストール手順

以下の通りに実施します。

#作業ディレクトリの作成と移動
mkdir zabbix
cd zabbix

#テキストエディタを起動し、次の内容を貼り付ける
vim docker-compose.yml

docker-compose.yml の中身は以下の通りです。

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
- ./myscripts:/usr/lib/zabbix/alertscripts #加筆
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

中央に#加筆と記載しているところがありますが、これはzabbixでアラート検知した際に起動させるスクリプトを配置するディレクトリです。セットアップ後、これが無かったのでアラート通知がうまくできませんでした。

#Docker-Composeの実行
sudo docker-compose -p zabbix up -d

これで、必要なイメージファイルをダウンロードし、パラメータの通りにセットアップし、サービス起動まで実施してくれます。

停止する場合は、以下の通りです。

【注意】
実行/停止するときは、停止するミドルウェアのymlファイルのあるディレクトリで実施してください。他のところで実施するとコマンドが失敗するか、別のミドルウェアのymlがある場合、それが止まってしまいます。

#Docker-Composeの停止する場合
sudo docker-compose -p zabbix down

動作確認

先ほどのコマンドでミドルウェアのサービスは80ポートで立ち上がっていますので、CoreOSのIPへ接続すると、zabbixの初期画面が出てきます。

おわりに

今までであれば、各ミドルウェアのダウンロード、ユーザ作成、zabbixのインストール、データベースの設定など、実施することがたくさんあり、導入するだけで数時間、人によっては数日かかり大変でした。そこで心が折れることもあると思います。しかし、Docker-Composeを使えば、とても簡単にセットアップができます。

運用技術者は、日々の業務に時間を取られるので、改善活動を行うためのツール設定の時間を省くことが、モチベーションアップの第一歩だと思います。




コメント

タイトルとURLをコピーしました