在弄清了127.0.0.1的问题后,可以开始解决之前使用docker-compose配置的zabbix监控容器无法和同一个宿主机上的agent通讯的奇怪问题。
zabbix_agent2的配置如下:
LogType=console
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=10
Server=127.0.0.1
ListenPort=10050
ServerActive=127.0.0.1
Hostname=Zabbix server
EnablePersistentBuffer=0
Include=/etc/zabbix/zabbix_agentd.d/
ControlSocket=/tmp/agent.sock
由于设置了一个独立的docker网域172.30.100.0/24,那么应该修改上面的配置为这个
Server=172.30.100.0/24
ServerActive=172.30.100.0/24
但是这又会导致另外一个问题:
需要指定agent容器的IP,而我之前为固定这个IP,导致每次服务器重启的时候,IP发生变化,agent就会失去连接
解决办法:
1.指定agent容器使用固定IP
2.使用宿主机内网的IP,之前我以为需要在上面的配置文件里面再添加内网的IP,结果发现并不用,那么就是agent和数据库之前通讯的问题导致的无法连接
上面的排查结论都比较虚,记录下排查过程
1.显示docker-compose启动的容器IP
docker inspect --format=‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -aq)
2.yum install telnet 所以测试的容器使用正常的系统版本,这样这些软件安装方便些
3.修改挂载出的配置文件后,运行docker stop zabbix-agent2 && docker restart zabbix-agent2
4.查看日志 docker logs zabbix-agent2