安装docker[略] 1 2 3 4 5 6 7 8 官方源比较慢,改用国内镜像源: 阿里云 $ sudo yum-config-manager --add-repo \ http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 或:清华大学源 $ sudo yum-config-manager --add-repo \ https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/centos/docker-ce.repo
镜像准备 1 2 3 4 5 6 7 docker pull mysql:5.7 docker pull zabbix/zabbix-java-gateway:centos-5.4-latest docker pull zabbix/zabbix-server-mysql:centos-5.4-latest docker pull zabbix/zabbix-web-nginx-mysql:centos-5.4-latest
不要下载最新版本的mysql,不然后面server 无法在mysql上进行注册,会报 “MySQL server is not available. ” 错误
配置网络
https://stackoverflow.com/questions/56013245/docker-on-centos-7-will-not-pull-containers
1 2 ip link set dev ens33 mtu 900 docker network create --opt com.docker.network.driver.mtu=1400 --subnet 172.18.0.0/16 -d bridge zabbix_net
以下配置,注意路径映射和密码修改 mysql容器 1 2 3 4 5 6 7 8 9 10 11 12 13 docker run --name mysql-server -dit \ --network zabbix_net --ip 172.18.0.2 \ -v /home/ec2-user/work/zabbix_docker/mysql/conf:/etc/mysql \ -v /home/ec2-user/work/zabbix_docker/mysql/logs:/var/log /mysql \ -v /home/ec2-user/work/zabbix_docker/mysql/data:/var/lib/mysql \ -v /etc/localtime:/etc/localtime \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Ghxw_0603" \ -e MYSQL_ROOT_PASSWORD="Ghxw_0603" \ --restart=always \ mysql:5.7 \ --character-set-server=utf8 --collation-server=utf8_bin
#注:–restart=always写在-d mysql:5.7的前面,要不然容器启动后自动关闭。–restart=always跟随Docker启动
java-gateway 容器 1 2 3 4 5 docker run --name zabbix-java-gateway -dit \ --network zabbix_net --ip 172.18.0.5 \ -v /etc/localtime:/etc/localtime \ --restart=always \ zabbix/zabbix-java-gateway:centos-5.4-latest
5、安装zabbix-server-mysql 1 2 3 4 5 6 7 8 9 10 docker run -dit -p 10051:10051 --mount source =zabbix-server-vol,target=/home/ec2-user/work/zabbix_docker/zabbix \ -v /etc/localtime:/etc/localtime \ -v /home/ec2-user/work/zabbix_docker/alertscripts:/usr/lib/zabbix/alertscripts \ --name=zabbix-server-mysql --restart=always --network zabbix_net --ip 172.18.0.6 \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Ghxw_0603" \ -e MYSQL_ROOT_PASSWORD="Ghxw_0603" \ -e ZBX_JAVAGATEWAY="zabbix-java-gateway" zabbix/zabbix-server-mysql:centos-5.4-latest
6、安装zabbix-nginx 1 2 3 4 5 6 7 8 9 10 docker run -dit -p 8088:8080 -v /etc/localtime:/etc/localtime \ --name zabbix-web-nginx-mysql \ --restart=always --network zabbix_net --ip 172.18.0.3 \ -e DB_SERVER_HOST="mysql-server" \ -e MYSQL_DATABASE="zabbix" \ -e MYSQL_USER="zabbix" \ -e MYSQL_PASSWORD="Ghxw_0603" \ -e MYSQL_ROOT_PASSWORD="Ghxw_0603" \ -e PHP_TZ="Asia/Shanghai" \ -e ZBX_SERVER_HOST="zabbix-server-mysql" zabbix/zabbix-web-nginx-mysql:centos-5.4-latest
7、部署zabbix-agent端(指定zabbix-server地址或者ip地址)
1 2 3 4 5 6 7 docker run -d --name zabbix-agent \ -e ZBX_HOSTNAME="119.255.249.177" \ -e ZBX_SERVER_HOST="119.255.249.177" \ -p 10050:10050 \ zabbix/zabbix-agent:centos-5.4-latest docker run -dit --name zabbix-agent -e ZBX_HOSTNAME="zabbix-server-mysql" --restart=always --link zabbix-server-mysql --network zabbix_net --ip 172.18.0.4 -e ZBX_SERVER_HOST="zabbix-server-mysql" -p 10050:10050 --privileged -e ZBX_SERVER_PORT=10051 -d zabbix/zabbix-agent:centos-5.4-latest
8、登陆zabbix web
http://宿主机IP:8888/
用户:Admin 密码: zabbix
1 2 3 4 5 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5fb0132fe0c2 zabbix/zabbix-web-nginx-mysql:centos-5.4-latest "docker-entrypoint.sh" 16 minutes ago Up 3 minutes 8443/tcp, 0.0.0.0:8088->8080/tcp zabbix-web-nginx-mysql 0cf37fc88c5a zabbix/zabbix-server-mysql:centos-5.4-latest "/usr/bin/tini -- /u…" 16 minutes ago Up 16 minutes 0.0.0.0:10051->10051/tcp zabbix-server-mysql e58dde5fa6ab zabbix/zabbix-java-gateway:centos-5.4-latest "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 10052/tcp zabbix-java-gateway 77d09e257a8d mysql:5.7 "docker-entrypoint.s…" 19 minutes ago Up 19 minutes 3306/tcp, 33060/tcp mysql-server
参考: https://www.zabbix.com/documentation/5.4/en/manual/installation/containers
中文乱码修改 拷贝windows下的微软雅黑字体到zabbix-web-nginx-mysql下
1 2 3 4 docker cp /data/MSYH.TTC 36:/usr/share/zabbix/assets/fonts/ docker exec -it -u root zabbix-nginx /bin/bash mv DejaVuSans.ttf DejaVuSans.ttf_bak ln -s MSYH.TTC DejaVuSans.ttf
监控Zabbix Server 错误现象 Zabbix agent is not available (for 3m)
Get value from agent failed: cannot connect to [[127.0.0.1]:10050]: [111] Connection refused
默认安装好Zabbix之后自带一个监视本地系统的配置“Zabbix Server”,无法被检测到。
主要原因就是我们是将Zabbix服务器和Zabbix客户端都安装到了Docker上
解决方法:
打开配置-主机,接口那的ip为127.0.0.1,这个IP是宿主机的IP,需要修改为 zabbix-agent 容器的IP