1.创建专用于 Zabbix组件容器的网络

docker network create --subnet 172.20.0.0/16 --ip-range 172.20.240.0/20 zabbix-net

2.启动zabbix专用Mysql服务器

docker run --name mysql-server 
             -e MYSQL_DATABASE="zabbix" 
             -e MYSQL_USER="zabbix" 
             -e MYSQL_PASSWORD="12345678" 
             -e MYSQL_ROOT_PASSWORD="12345678" 
             -v /opt/zabbix_mysql:/var/lib/mysql 
             --network=zabbix-net 
             --restart unless-stopped 
             -d mysql:8.0 
             --character-set-server=utf8 --collation-server=utf8_bin 
             --default-authentication-plugin=mysql_native_password

3.启动zabbix java 网关

docker run --name zabbix-java-gateway -t 
      --network=zabbix-net 
      --restart unless-stopped 
      -d zabbix/zabbix-java-gateway:alpine-5.4-latest

4.启动 Zabbix server 实例,并将其关联到已创建的 MySQL 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="12345678" 
             -e MYSQL_ROOT_PASSWORD="12345678" 
             -e ZBX_JAVAGATEWAY="zabbix-java-gateway" 
             --network=zabbix-net 
             -p 10051:10051 
             -v /opt/zabbix_server/zabbix_server.conf:/etc/zabbix/zabbix_server.conf 
             --restart unless-stopped 
             -d zabbix/zabbix-server-mysql:alpine-5.4-latest

5.启动Zabbix Web界面,并将其关联到已创建的MySQL server和Zabbix server 实例

  • nginx配置详解附件
docker run --name zabbix-web-nginx-mysql -t 
             -e ZBX_SERVER_HOST="zabbix-server-mysql" 
             -e DB_SERVER_HOST="mysql-server" 
             -e MYSQL_DATABASE="zabbix" 
             -e MYSQL_USER="zabbix" 
             -e MYSQL_PASSWORD="12345678" 
             -e MYSQL_ROOT_PASSWORD="12345678" 
             -p  9080:9080 
             -v /opt/zabbix_nginx/conf:/etc/nginx/http.d/ 
             --network=zabbix-net 
             --restart unless-stopped 
             -d zabbix/zabbix-web-nginx-mysql:alpine-5.4-latest

6.问题处理:zabbix server:Zabbix anent is not available

  • 查找zabbix-server-mysql的容器IP和网关
docker inspect zabbix-server-mysql | grep IPAddress
docker inspect zabbix-server-mysql | grep Gateway
  • 打开zabbix_agentd.conf,Server和ServerActive都修改为zabbix-server-mysql的容器IP
Server=172.17.0.4  #zabbix server的地址
ServerActive=172.17.0.4 #同样是zabbix_server的地址
  • 打开zabbix web,把zabbix server的Agent客户端地址修改为:zabbix-server-mysql的容器的网关

7.zabbix_agent安装

rpm -ivhF zabbix-agent.rpm
# 修改配置
vim /etc/zabbix/zabbix_agentd.conf
systemctl start zabbix-agent
systemctl enable zabbix-agent