Docker中运行Zabbix监控

服务器

浏览数:248

2019-10-11

拉取Zabbix所需的镜像

这里使用MySQL,Apache和MariaDB数据库。使用MySQL启动zabbix-server会报错。

docker pull zabbix/zabbix-server-mysql
docker pull zabbix/zabbix-agent 
docker pull zabbix/zabbix-web-apache-mysql
docker pull mariadb

启动MariaDB

docker run -itd --name zabbix-mysql -h zabbix-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD="zabbix" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e MYSQL_DATABASE="zabbix" mariadb

这里需要指定:

  • root密码为zabbix
  • 创建一个名字和密码均为zabbix的用户
  • 创建一个名为zabbix的数据库,并且zabbix用户有权访问和操作该数据库

创建zabbix的网络

docker create network zabbix

启动zabbix-server

docker run -itd --network zabbix --name zabbix-server -h zabbix-server -p 10051:10051 -e DB_SERVER_HOST="192.168.100.129" -e DB_SERVER_PORT="3306" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" zabbix/zabbix-server-mysql

这里需要指定:

  • zabbix-server这个容器的hostname为zabbix-server
  • MariaDB数据库的地址端口号,用户名和密码

启动zabbix-webfrontend

docker run -itd --name zabbix-frontend -h zabbix-frontend --network zabbix -e DB_SERVER_HOST="192.168.100.129" -e MYSQL_USER="zabbix" -e MYSQL_PASSWORD="zabbix" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Asia/Shanghai" -p 8080:80 -p 8443:443 zabbix/zabbix-web-apache-mysql

在这里我们映射zabbix的80端口到8080,443端口到8443。

启动zabbix-agent

docker run -itd --name zabbix-agent -h zabbix-agent --network zabbix --privileged -e ZBX_HOSTNAME="zabbix-server" -e ZBX_SERVER_HOST="zabbix-server" -p 10050:10050 zabbix/zabbix-agent

等各个服务启动成功后,在浏览器打开http://hostIP:8080。如果一切无误,能够看到zabbix的登录页面:

Zabbix登录页面

输入默认的用户名密码(admin/zabbix),可以看到zabbix主界面。

注意

如果遇到报警提示无法连接到zabbix-agent,需要修改zabbix的host。步骤如下:

  1. 菜单中选择Configuration -> Hosts,;列表中打开下方的zabbix-server 主机。

    Hosts配置页面

  2. 修改Agent Interfaces中的IP地址为zabbix-agent的地址(此处使用了docker,填写的是zabbix-agent容器在docker内网中的IP地址。如果是在其他服务器安装的zabbix-agent,需要填写服务器的真实IP)

    image.png

  3. 点击update按钮,等待zabbix状态检测更新。此时zabbix-server应该能够发现zabbix-agent。

作者:AlienPaul