我想使用Zabbix来监视我的服务器(到目前为止只有一个)。为了保持整洁,我决定把它放在码头集装箱里。我只是对容器中的代理的使用有疑问。据我所知,它应该能够监视主机本身。但容器通常是孤立的。那么在容器中运行代理有什么意义呢?
如果有理由这样做,代理容器的网络模式是否应该是“主机”?
发布于 2022-03-28 15:00:11
简介:
我刚刚完成了一个完全DockerizedZabbix6.2安装,使用的是Zabbix的GitHub Docker-Compose。我的经验是,码头安装是更好的途径,但其他人当然可能有不同的看法。
尽管它看起来非常令人望而生畏--其中有很多组件-- Zabbix的Docker-Compose回购是启动Zabbix安装最快、最痛苦的方法;安装起来比手动配置容易得多。
我使用他们的回购配置一个所有唱歌-所有舞蹈的Zabbix基础设施的覆盆子Pi4与8GB内存使用64位ARM版本的Ubuntu20.04LTS。用手动配置获得相同的结果需要花费很长时间。
不过,我最后还是注意到了一个关于连接问题的问题。但一旦你过了这一关,那就成了问题了。
配置:
下面是使用Docker配置Zabbix的过程的非常概括的。
服务器基础设施
提高组件的基本形式是:
docker-compose -f docker-compose_v3_ubuntu_pgsql_latest.yaml --profile all up -d
注意:在我的测试中,172.16.238.3
是Zabbix的默认IP --它也应该是您的--但是验证IP。
代理人:
启动代理非常简单,如下所示:
docker run --add-host=zabbix-server:172.16.238.3 -p 10050:10050 -d --privileged --name myHost-zabbix-agent -e ZBX_SERVER_HOST="zabbix-server" -e ZBX_PASSIVE_ALLOW="true" zabbix/zabbix-agent:ubuntu-6.0-latest
只需更改"myHost-zabbix-agent“并在Web界面中添加新的Zabbix即可。
要获得使用上述命令引发的新Zabbix代理的IP,请执行以下命令:
docker ps
然后得到它的随机标识,然后:
docker exec -u root -it (random ID for agent from docker ps) bash
一旦进入容器,就会显示它的IP:
hostname -I
将此IP用于Zabbix服务器的web接口中的代理接口。正如您正确地指出的,由于代理在容器中运行,它是孤立的,默认的IP pf 127.0.0.1将无法工作:您需要一个可路由的IP才能让Zabbix服务器到达代理。
然后转到下一个主机,在上面的docker run
命令中更改主机名,获取Ip并将其添加到Zabbix的web接口中。
结论:
没有什么能阻止您裁剪配置-- Zabbix使其非常可调整--但是使用Zabbix的Docker-Compose repo可以让您快速地进行一些体面的监控,只需付出很少的努力就可以将繁重的工作减少到最低限度;如果您有大量的主机,那么非常重要。
配置代理的连接性有一个问题-- Docker插入了iptables规则,该规则通过NAT‘’ing流量破坏了连接,但是我在这里记录了如何绕过这个问题:
Dockerized Zabbix: Server Can't Connect to the Agents by IP
希望这能帮你节省一些周期-
https://stackoverflow.com/questions/65347946
复制相似问题