栏目头部广告

zabbix监控容器化部署

一、准备工作

Zabbix中文文档:https://www.zabbix.com/documentation/5.0/zh/start
Docker环境准备:https://www.starcto.com/docker/70.html

Zabbix相关镜像下载:

docker pull mysql:5.7
docker pull zabbix/zabbix-server-mysql:centos-latest
docker pull zabbix/zabbix-web-nginx-mysql:latest
docker pull zabbix/zabbix-java-gateway:latest

1-210403232F5Q6.png

二、部署Zabbix

2.1 创建zabbix容器网络

[root@zabbix ~]# docker network create -d bridge zabbix_network

2.2 创建MySQL容器

[root@zabbix ~]# docker run -dit -p 3306:3306 --name zabbix-mysql \
--network zabbix_network --restart always \
-v /etc/localtime:/etc/localtime \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="ucloud.cn" \
-e MYSQL_ROOT_PASSWORD="ucloud.cn" \
mysql:5.7

参数解读:
MYSQL_DATABASE="zabbix"                     # MySQL创建zabbix库
MYSQL_USER="zabbix"                               # 设置zabbix的登录账户名
MYSQL_PASSWORD="ucloud.cn"               # 设置zabbix的登录账户密码
MYSQL_ROOT_PASSWORD="ucloud.cn"  # 设置MySQL数据库root密码
--network zabbix_network                               # 将容器加入到zabbix_network网络中
-v /etc/localtime:/etc/localtime                         # 同步服务器和容器内部的时区
--restart always                                                 # 设置自启动
-e MYSQL_DATABASE="zabbix"                 # 创建环境变量
--name zabbix-mysql                                        # 给容器命名

2.3 创建zabbix-java-gateway容器

[root@zabbix ~]#docker run -v /etc/localtime:/etc/localtime -dit \
--restart=always \
--name=zabbix-java-gateway \
--network zabbix_network \
zabbix/zabbix-java-gateway:latest

2.4 创建zabbix-server-mysql容器

# 创建容器卷zabbix-server-volumes
[root@zabbix ~]# docker volume create zabbix-server-volumes

[root@zabbix ~]# docker run -dit -p 10051:10051 \
--mount source=zabbix-server-volumes,target=/etc/zabbix \
-v /etc/localtime:/etc/localtime \
-v /usr/lib/zabbix/alertscripts:/usr/lib/zabbix/alertscripts \
--name=zabbix-server-mysql \
--restart=always \
--network zabbix_network \
-e DB_SERVER_HOST="zabbix-mysql" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="ucloud.cn" \
-e MYSQL_ROOT_PASSWORD="ucloud.cn" \
-e ZBX_JAVAGATEWAY="zabbix-java-gateway" \
zabbix/zabbix-server-mysql:centos-latest

【注】上述数据库相关内容要与运行中的MySQL容器配置保持一致。

2.5 创建zabbix-web-nginx-mysql镜像

[root@zabbix ~]# docker run -dit -p 8080:8080 \
-v /etc/localtime:/etc/localtime \
--name zabbix-web-nginx-mysql \
--restart=always \
--network zabbix_network \
-e DB_SERVER_HOST="zabbix-mysql" \
-e MYSQL_DATABASE="zabbix" \
-e MYSQL_USER="zabbix" \
-e MYSQL_PASSWORD="ucloud.cn" \
-e MYSQL_ROOT_PASSWORD="ucloud.cn" \
-e ZBX_SERVER_HOST="zabbix-server-mysql" \
zabbix/zabbix-web-nginx-mysql:latest

# 查看运行中的容器

容器化部署zabbix监控(图2)

2.6 浏览器访问测试

http://10.27.0.224:8080/zabbix

容器化部署zabbix监控(图3)

容器化部署zabbix监控(图4)

三、Zabbix异常解决

3.1 Zabbix仪表板提示"Zabbix agent is not available (for 3m)"

容器化部署zabbix监控(图5)

默认安装好Zabbix之后会自带一个监视本地系统的配置“Zabbix Server”。前面Docker部署的容器默认没有安装zabbix-agent,自然无法链接到本机自己的代理。
解决的办法:
(1)虚机上安装zabbix-agent。
(2)容器部署zabbix-agent。

# 安装zabbix软件源
[root@zabbix ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm

# 安装zabbix-agent
[root@zabbix ~]# yum install zabbix-sender zabbix-agent zabbix-get -y

# 修改/etc/zabbix/zabbix_agentd.conf配置
[root@zabbix ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=172.19.0.4            # zabbix-server的IP
ServerActive=172.19.0.4      # zabbix-server的IP

【注】查看zabbix-server服务器IP地址:

1-210404002Q13O.png

# 启动zabbix-agent服务,并设置开机自启
[root@zabbix ~]# systemctl start zabbix-agent.service
[root@zabbix ~]# systemctl enable zabbix-agent.service
[root@zabbix ~]# docker exec -it zabbix-server-mysql bash
bash-4.4$ zabbix_get -s 172.19.0.1 -k system.cpu.num

1-21040400363A39.png

【注】配置-主机-Zabbix server将agent代理程序的接口更改为“172.19.0.1”即可。

容器化部署zabbix监控(图8)

3.2 Zabbix绘制图形中文符乱码

# 安装中文字体
链接:https://pan.baidu.com/s/1X54ss0bTl8gxXP9txl-Y8A 
提取码:nk7i 

# 将解压的字体拷贝到容器中
[root@zabbix ~]# docker cp ~/Chinese.ttf zabbix-web-nginx-mysql:/usr/share/zabbix/assets/fonts/Chinese.ttf

# 进入容器,修改字体
[root@zabbix ~]# docker exec -it zabbix-web-nginx-mysql bash
[root@zabbix ~]# cp DejaVuSans.ttf DejaVuSans.ttf.bak
[root@zabbix ~]# mv Chinese.ttf DejaVuSans.ttf

3.3 Zabbix绘制图形的时间不正确

# 进入容器修改时区
[root@zabbix ~]# docker exec -it zabbix-web-nginx-mysql bash
bash-5.0$ vi /usr/share/zabbix/include/config.inc.php
date_default_timezone_set('Asia/Shanghai');

1-210404010552P6.png

作者:UStarGao
链接:https://www.starcto.com/monitor/122.html

来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

UCloud云平台推荐

UCloud新用户专属注册连接

UCloud CDN超值特惠专场

UCloud全球云主机(UHost/VPS)大促页面

UCloud快杰云主机大促页面

文章页广告

随便看看

栏目底部广告
`