官方文档:
https://www.zabbix.com/documentation/current/en/manual/installation/containers
注意一下版本的选择
docker hub
https://registry.hub.docker.com/r/zabbix/zabbix-agent
docker pull mysql:8.0 docker save -o ./mysql80.zip mysql:8.0 docker pull zabbix/zabbix-java-gateway:latest docker save -o ./zabbix-java-gateway.zip zabbix/zabbix-java-gateway:latest docker pull zabbix/zabbix-server-mysql:latest docker save -o ./zabbix-server-mysql.zip zabbix/zabbix-server-mysql:latest docker pull zabbix/zabbix-web-nginx-mysql docker save -o ./zabbix-web-nginx-mysql.zip zabbix/zabbix-web-nginx-mysql:latest docker pull zabbix/zabbix-agent:latest docker save -o ./zabbix-agent zabbix/zabbix-agent:latest上传镜像文件到服务器后加载镜像
docker load -i ./mysql80.zip docker load -i ./zabbix-java-gateway.zip docker load -i ./zabbix-server-mysql.zip docker load -i ./zabbix-web-nginx-mysql.zip docker load -i ./zabbix-agent按官方文档中的示例1一步一步操作
docker run --name mysql-server -t
-e MYSQL_DATAbase="zabbix"
-e MYSQL_USER="zabbix"
-e MYSQL_PASSWORD="zabbix_pwd"
-e MYSQL_ROOT_PASSWORD="root_pwd"
--network=zabbix-net
--privileged=true
--restart unless-stopped
-d mysql:8.0
--character-set-server=utf8 --collation-server=utf8_bin
--default-authentication-plugin=mysql_native_password
docker run --name zabbix-java-gateway -t
--network=zabbix-net
--restart unless-stopped
--privileged=true
-d zabbix/zabbix-java-gateway:latest
docker run --name zabbix-server-mysql -t
-e DB_SERVER_HOST="mysql-server"
-e MYSQL_DATAbase="zabbix"
-e MYSQL_USER="zabbix"
-e MYSQL_PASSWORD="zabbix_pwd"
-e MYSQL_ROOT_PASSWORD="root_pwd"
-e ZBX_JAVAGATEWAY="zabbix-java-gateway"
--network=zabbix-net
--privileged=true
-p 10051:10051
--restart unless-stopped
-d zabbix/zabbix-server-mysql:latest
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="zabbix_pwd"
-e MYSQL_ROOT_PASSWORD="root_pwd"
--network=zabbix-net
--privileged=true
-p 8100:8080
--restart unless-stopped
-d zabbix/zabbix-web-nginx-mysql:latest
Zabbix-agent
docker run --name some-zabbix-agent
-e ZBX_SERVER_HOST="172.20.240.2"
-e ZBX_HOSTNAME="Zabbix server"
--privileged=true
--network=zabbix-net
-d zabbix/zabbix-agent:latest
启动前4个容器后就可以在浏览器中访问zabbix服务
http://linux-ip:8100/
初始账户为Admin/zabbix
不添加agent的话有部分数据采集不到
添加Agent后,采集数据如下图所示
因为官方文档上没有提docker 启动agent的过程,启动agent折腾了很长时间,总是访问不到zabbix-server后来查了很多文档和一些帖子后,用下面的命令启动成功
docker run --name some-zabbix-agent
-e ZBX_SERVER_HOST=“172.20.240.2”
-e ZBX_HOSTNAME=“Zabbix server”
–privileged=true
–network=zabbix-net
-d zabbix/zabbix-agent:latest
ZBX_SERVER_HOST="172.20.240.2"是zabbix-server-mysql的容器ip地址
使用命令 docker inspect zabbix-server-mysql | grep "IPAddress"可以查到
ZBX_HOSTNAME应该怎么填我最后没找到正规的解释
然后我在一个帖子中看到这个:zabbix-server和zabbix-agent的host应该相同
https://www.zabbix.com/forum/zabbix-help/17298-no-active-checks-on-server-host-not-found
我在zabbix的configuration中查看server的host name
然后在启动zabbix-agent容器时添加这个host name,最终agent顺利启动,没有提示找不到host或是无法从ip:10051收到数据
剩下的这个问题我还没有找到解决方法…
Received empty response from Zabbix Agent at [linux ip]. Assuming that agent dropped connection because of access permissions.
找到方法了,这个问题是agent ip填的不对导致的
使用命令 docker inspect some-zabbix-agent | grep "IPAddress"可以查到
然后点击关闭然后再打开,server和agent之间的通信就ok了
Zabbix Server参数文件详解



