Docker on Centos でzabbix serverを作ってみる
1年半振りの更新とか('A`)しかもazure関係ねぇし…。
CentOSにDockerをインストール
sudo yum install docker -y
お手軽お気軽。
ここでインストールしたdockerは一般ユーザーで
docker ps
とかすると
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
と、怒られる。
こいつはdocker.sockのパーミッションが無いから。
ls -la /var/run/docker.sock srw-rw----. 1 root root 0 6月 3 15:29 /var/run/docker.sock
使うユーザーを
sudo usermod -g root hogehoge
すればいいんだけどセキュリティ的にアレなのでsudo で使おう。
zabbixをdockerで動かす。
公式のzabbix/zabbix**が妙に不親切にできてるのが大変に遺憾。
zabbix - Docker Hub
https://hub.docker.com/u/zabbix/
なので割りと親切なmonitoringartist版を使う。
monitoringartist/zabbix-3.0-xxl - Docker Hub
https://hub.docker.com/r/monitoringartist/zabbix-3.0-xxl/
インストールはdocker-hubに書いてあるのと変わらない。
docker run -d -v /var/lib/mysql --name zabbix-db-storage busybox:latest docker run \ -d \ --name zabbix-db \ -v /backups:/backups \ -v /etc/localtime:/etc/localtime:ro \ --volumes-from zabbix-db-storage \ --env="MARIADB_USER=zabbix" \ --env="MARIADB_PASS=mypassword" \ monitoringartist/zabbix-db-mariadb docker run \ -d \ --name zabbix \ -p 8000:80 \ -p 10051:10051 \ -v /etc/localtime:/etc/localtime:ro \ --link zabbix-db:zabbix.db \ --env="ZS_DBHost=zabbix.db" \ --env="ZS_DBUser=zabbix" \ --env="ZS_DBPassword=mypassword" \ monitoringartist/zabbix-xxl:latest
しばらく待てば完了。
sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES df69f42508ec monitoringartist/zabbix-xxl:latest "/config/bootstrap.sh" 23 minutes ago Up 22 minutes 162/udp, 0.0.0.0:10051->10051/tcp, 10052/tcp, 0.0.0.0:8000->80/tcp zabbix 59e8d1e16445 monitoringartist/zabbix-db-mariadb "/run.sh" 28 minutes ago Up 27 minutes 3306/tcp zabbix-db
らくちんらくちん。
zabbix用にファイアーウォールに穴あけ。
外部からこのサーバーのzabbixにアクセスするために tcp:8000 *1とtcp:10051 に穴を開ける。
firewalldにserviceを追加
ファイルを新しく2個作る。
/usr/lib/firewalld/services/zabbix.xml
<?xml version="1.0" encoding="utf-8"?> <service> <short>Zabbix-Server</short> <description>Zabbix-server income</description> <port protocol="tcp" port="10051"/> </service>
/usr/lib/firewalld/services/zabbix-web.xml
<?xml version="1.0" encoding="utf-8"?> <service> <short>Zabbix-Web-Frontend</short> <description>Zabbix-server web frontend</description> <port protocol="tcp" port="8000"/> </service>
んでfirewall-cmdでインストール。
#サービスを追加したのでリロード $ sudo firewall-cmd --reload success #アクティブなゾーン $ sudo firewall-cmd --get-default-zone public #firewallに2つのサービスを追加 $ sudo firewall-cmd --add-service=zabbix --zone=public --permanent success $ sudo firewall-cmd --add-service=zabbix-web --zone=public --permanent success #確認 $ sudo firewall-cmd --reload success $ sudo firewall-cmd --list-all public (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: dhcpv6-client ssh zabbix zabbix-web ports: protocols: masquerade: no forward-ports: sourceports: icmp-blocks: rich rules:
で、OK。
あとはブラウザから http://[CentosのIP]:8000/ でアクセスして
user : admin
password : zabbix
でログインするだけ。
いやー、簡単になったもんだ。
*1:別のポートを使いたいときはdocker-runの "-p 8000:80" を任意のポートに変更する。