docker安装zabbix最新无错教程

首先,启动空的 MySQL 服务器实例。

1
2
3
4
5
6
7
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" \
-d mysql:5.7 \
--character-set-server=utf8 --collation-server=utf8_bin

其次,启动 Zabbix Java gateway 实例

1
2
docker run --name zabbix-java-gateway -t \
-d zabbix/zabbix-java-gateway:latest

然后,启动 Zabbix server 实例,并将其关联到已创建的 MySQL server 实例。

1
2
3
4
5
6
7
8
9
10
11
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" \
--link mysql-server:mysql \
--link zabbix-java-gateway:zabbix-java-gateway \
-p 10051:10051 \
-d zabbix/zabbix-server-mysql:latest

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

1
2
3
4
5
6
7
8
9
10
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="zabbix_pwd" \
-e MYSQL_ROOT_PASSWORD="root_pwd" \
--link mysql-server:mysql \
--link zabbix-server-mysql:zabbix-server \
-p 80:80 \
-d zabbix/zabbix-web-nginx-mysql:latest

登录web界面。

登录账号:Admin 登录密码:zabbix

遇到的问题:

操作完成后网页打不开: 进入zabbix/zabbix-web-nginx-mysql:latest容器:

1
docker exec -it -uroot 容器id /bin/sh

修改nginx配置文件:

1
vi /etc/nginx/http.d/nginx.conf

将配置文件中的8080改为80,保存退出。 重启nginx。

1
nginx -s reload

如果遇到报错如下:

1
[crit] 48#48: *1 connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.77.2, server: zabbix, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/php-fpm.sock:", host: "192.168.161.166"

在容器中运行:

1
chmod -R 777 /tmp/php-fpm.sock

也可以将这个权限配置到php-fpm的配置文件中,本文就不研究了。