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
二、部署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
# 查看运行中的容器
2.6 浏览器访问测试
http://10.27.0.224:8080/zabbix
三、Zabbix异常解决
3.1 Zabbix仪表板提示"Zabbix agent is not available (for 3m)"
默认安装好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地址:
# 启动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
【注】配置-主机-Zabbix server将agent代理程序的接口更改为“172.19.0.1”即可。
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');
作者:UStarGao
链接:https://www.starcto.com/monitor/122.html
来源:STARCTO
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
UCloud云平台推荐
随便看看
- 2022-05-12开源资产管理系统chemex容器化部署
- 2021-03-28Hadoop入门介绍
- 2021-07-22MongoDB删除数据空间没有释放原因分析-碎片
- 2021-05-21第三方常用工具收录
- 2021-05-29MySQL 索引介绍