跳转至

使用Docker部署zabbix监控系统


2017-01-03 by dongnan

注意,由于 saltstack 安全等问题,推荐使用 ansible 完成批量操作任务,对于容器的特性,推荐更适合容器监控的 prometheus 代替 zabbix

目标

使用 docker 部署 zabbix3 ,并配合 saltstack 完成批量监控成百上千Linux 主机,大概的步骤如下:

  • 首先,需要使用 docker 运行一个 zabbix server 容器 。
  • 其次,使用 saltstack ,为Linux主机批量安装并运行 zabbix-agent
  • 最后,使用 zabbix serverdiscover功能,自动添加 Linux 主机。

准备工作

  • 已经部署完毕的 docker ,下载 zabbix 相关镜像,docker hub在国外如果未提前准备好镜像,可能等待较长时间。
  • 已经部署完毕的 saltstack , 并且 masterminion 完成了授权。
  • 已经测试过的 zabbix_agentd.conf 配置文件,用于下发到 Linux 主机。

环境

软件环境

centos 7.2
docker 1.12 on centos 7.2
zabbix-web 3.2 on docker
zabbix-server 3.2 on docker
mysql-server 5.7 on docker

部署 zabbix server

步骤

mysql 容器

zabbix-server 容器

docker run --name zabbix-server-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="ywwd.net" \
      -e MYSQL_ROOT_PASSWORD="ywwd.net" \
      --link mysql-server:mysql \
      -p 10051:10051 --restart=always \
      -v /etc/localtime:/etc/localtime:ro \
      -d zabbix/zabbix-server-mysql:latest

zabbix-web 容器(nginx)

docker run --name zabbix-web-nginx-mysql -t \
      -e DB_SERVER_HOST="mysql-server" \
      -e MYSQL_DATABASE="zabbix" \
      -e MYSQL_USER="zabbix" \
      -e MYSQL_PASSWORD="ywwd.net" \
      -e MYSQL_ROOT_PASSWORD="ywwd.net" \
      --link mysql-server:mysql \
      --link zabbix-server-mysql:zabbix-server \
      -v /etc/localtime:/etc/localtime:ro \
      -p 80:80 \
      --restart=always \
      -d zabbix/zabbix-web-nginx-mysql:latest

验证

部署完成的 Zabbix Server

部署 zabbix agent

由于 zabbix repo 也在国外,建议提前将下载好的 rpm 包,分发到 Linux 主机,最后使用 yum 本地安装 rpm包;

分发 rpm

salt -N idc-all cp.get_dir salt://tmp/rpm/zabbix/ /root/ -v

安装 rpm

salt -N idc-all cmd.run 'grep "(Core)" /etc/centos-release \
&& yum -y localinstall /root/zabbix/zabbix-agent-3.2.2-1.el7.x86_64.rpm || yum -y localinstall /root/zabbix/zabbix-agent-3.2.2-1.el6.x86_64.rpm' -v

如果网速不是问题,可以使用 saltstack sls 安装

salt -N idc-all state.sls zabbix -v

关于 saltstack sls 请参考这里

zabbix discover

discover 功能

actions

待补充...

operation

待补充...

小结

对于多个容器应用编排,推荐使用 docker-compose 方式完成zabbix 部署工作,请参考这里

参考

  • http://zabbix.org/wiki/InstallOnCentOS_RHEL
  • https://hub.docker.com/r/zabbix/zabbix-agent/
  • https://www.zabbix.com/documentation/3.2/manual/installation/containers
回到页面顶部