mattintosh note

どこかのエンジニアモドキの備忘録

Docker で Ubuntu Xenial な Zabbix Server を立てる

CentOS 版やったし、Ubuntu 版もやるよねってことで。

mattintosh.hatenablog.com

CentOS よりは楽な印象。

ubuntu:xenial でコンテナ作る。

docker run -ti --name hogehoge ubuntu:xenial /bin/bash

こっからコンテナ内のシェルで実行していく。

apt-get update
apt-get install -y curl language-pack-ja
curl -O http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.0-2+xenial_all.deb
dpkg -i zabbix-release_3.0-2+xenial_all.deb
rm zabbix-release_3.0-2+xenial_all.deb
apt-get update
apt-get install -y --install-recommends zabbix-server-mysql zabbix-agent zabbix-frontend-php php7.0-bcmath php7.0-mbstring php7.0-xml

なんとびっくり vi すら入ってないので sed で。

sed -i'' '/php_value date.timezone/{s|# ||;s|Europe/Riga|Asia/Tokyo|}' /etc/zabbix/apache.conf

これやっとかないと「PID ファイル作れないんぢゃ!!!」って怒られる。

install -d -o zabbix -g zabbix /var/run/zabbix

mysqld_safe はバックグラウンドで動かさないと返ってこれなくなる。(別の端末で docker exec /bin/bash とかしなきゃいけない)

mysqld_safe &
mysql -uroot
create database zabbix character set utf8 collate utf8_bin;
grant all on zabbix.* to zabbix@localhost
quit

テンプレートからテーブル作る。これが一番時間かかる。

zcat /usr/share/doc/zabbix-server-mysql/create.sql.gz | mysql -uzabbix zabbix

一回デタッチしてコミット。すごく…大きいです。

$ docker commit hogehoge ubuntu:zabbix3.0
$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              zabbix3.0           f3f706f706f2        26 seconds ago      690.2 MB
centos              zabbix3.0           22e1f36e12f7        12 hours ago        603.5 MB

各種サーバーを起動してみる。

zabbix_server
zabbix_agentd
apache2ctl start

問題なさげ。

f:id:mattintosh4:20170718022808p:plain

使い捨てで起動する場合。

docker run --rm -ti ubuntu:zabbix3.0 sh -c 'mysqld_safe & zabbix_server && zabbix_agentd && . /etc/apache2/envvars && apache2 -DFOREGROUND'

全作業をスクリプト化。

(まだ作ってないけど)Dockerfileでやるときは Apache をフォアグランドに持ってきて動かさないとだめかも。Zabbix Server と Zabbix Agent には --foreground オプションがあるけど root で実行できない。

CMD sh -c '. /etc/apache2/envvars && apache2 -DFOREGROUND'