实战开始:
参考 Docker搭建Kafka集群 优秀文档
参考上一篇docker(六)
参考 docker部署zabbix 优秀文档
BUG:根据这篇文章部署后,发现zabbix-server 图形时间与本地时间相差五个小时
参考优秀文档 思路修改
docker exec -it zabbix-web-nginx-mysql /bin/bash
cd /etc/php81/
cd php-fpm.d/
vim zabbix.conf
###修改时区###
我这里使用的docker restart, 重启容器后zabbix-web界面中时间正确
BUG:隔天关闭服务器后,再登录发现zabbix-web时间又错误,经过排查,发现宿主机没有做时间效验,根据 优秀文档 时间校对后,web界面时间和宿主机一致
这里有一个疑惑,为什么zabbix-agent的配置文件填写的是docker0上的ip?
这是因为docker0的ip就是设置的"bip",桥接网络是 Docker 容器使用的默认网络,当你创建一个新的容器时,它会被连接到这个桥接网络中。
在桥接网络模式下,Docker 容器的默认网络接口是 docker0,这个接口位于宿主机上,用于连接所有在同一宿主机上运行的容器,docker0 接口的 IP 地址作为 Zabbix Agent 的配置,这通常是合理的做法,特别是当 Zabbix Server 或者其他监控系统也运行在同一宿主机上时.
僵尸进程 : 僵尸进程是已经结束执行但是其父进程尚未对其进行善后处理的进程。
较大的隐患 : 会导致系统特别卡,但是cpu使用率却不高,内存也不高。
参考以下文章配置:
查看zabbix-sever的ip(这步没有用)
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' zabbix-server-mysql
10.233.0.5
ip a 查看docker0的ip:
10.233.0.1
进入该容器内:
docker exec -it zabbix-server-mysql /bin/bash
使用zabbix-get测试(进行server容器后直接可以运行命令)
zabbix_get -s 10.233.0.1 -k proc.num[,,zomb,]
0
???为什么不能使用zabbix-server的ip去测试监控项?----上面已经解释了
进行实验模拟:在宿主机上模拟时,通过命令看得到僵尸进程由0变为1,但是zabbix-web界面上的僵尸进程还是还0,且使用zabbix-get命令
b938ad938a17:/var/lib/zabbix$ zabbix_get -s 192.168.10.130 -k proc.num[,,zomb,]
0
b938ad938a17:/var/lib/zabbix$ zabbix_get -s 10.233.0.1 -k proc.num[,,zomb,]
0
这里修改了zabbix-agent的配置文件,还是无法正确返回僵尸进程数量
b938ad938a17:/var/lib/zabbix$ zabbix_get -s 192.168.10.130 -k system.hostname
ddb3a9130c51
这里测试一下到底返回的是哪台服务器的数据?发现返回的是zabbix-agent容器的 id
考虑是返回zabbix-agent容器的数据,进入容器模拟僵尸进程,发现没有权限.....
---跳过----
agent: 1.容器部署(没有优势),2.二进制部署
上面就是使用容器部署,无法监控---暂时跳过
新建虚拟机:1. hostname:docker-132 ip:192.168.10.132
2. 参考zabbix(一)部署 agent (修改Server=192.168.10.130)
根据 二进制部署 VS上面docker部署zabbix 发现docker部署server的配置文件中:DBHost未设置,后面发现不影响---
监控僵尸进程参考 zabbix监控僵尸进程_zabbix proc.num-CSDN博客
模拟并结束僵尸进程 https://blog.51cto.com/qiuyue/3800989
模拟测试,返回数据正确且在zabbix-web界面中显示正确
难点:企业微信告警,要写python脚本,怎么解决?(要使用到python3,容器内没有)
邮件告警