【问题标题】:Proper usage of Zabbix Agent container正确使用 Zabbix Agent 容器
【发布时间】:2020-12-17 20:32:43
【问题描述】:

我想使用 Zabbix 来监控我的服务器(目前只有一台)。为了保持整洁,我决定在 Docker 容器中运行它。我只是对容器中代理的使用有疑问。据我了解,它应该能够监控主机本身。但是容器通常是隔离的。那么在容器中运行代理有什么意义呢?

如果有理由这样做,代理容器的网络模式应该是“主机”吗?

【问题讨论】:

标签: docker zabbix


【解决方案1】:

简介:

我刚刚使用 Zabbix 的 GitHub Docker-Compose 存储库完成了完全 Dockerized Zabbix 6.2 安装。我的经验是 Docker 安装是更好的路径,但其他人当然可能有不同的看法。

虽然看起来真的很吓人——里面有很多组件——Zabbix 的 Docker-Compose 存储库是启动 Zabbix 安装的最快和最不痛苦的方法;比手动配置更容易设置。

我使用他们的 repo 在 8GB RAM 的 Raspberry Pi4 上使用 Ubuntu 20.04 LTS 的 64 位 ARM 版本配置了一个全能的 Zabbix 基础架构。手动配置需要很长时间才能获得相同的结果。

然而,我在最后注意到了一个关于连接问题的问题。但是一旦你过去了,那就是即插即用。

配置:

以下是使用他们的 Docker-Compose 存储库配置 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 Agent。

使用上述命令获取新 Zabbix 代理的 IP:

docker ps

然后获取它的随机 id 并且:

docker exec -u root -it (random ID for agent from docker ps) bash

进入容器后,显示它的 IP:

hostname -I

在 Zabbix 服务器的 Web 界面中将此 IP 用于代理的界面。正如您所说的,由于代理在容器中运行,因此它是隔离的,默认 IP pf 127.0.0.1 将不起作用:您需要 Zabbix 服务器的可路由 IP 才能访问代理。

然后移动到下一个主机,更改上面docker run命令中的主机名,获取IP并将其添加到Zabbix Server的Web界面中。

结论:

没有什么能阻止你定制配置——Zabbix 使它变得非常可调整——但是使用 Zabbix 的 Docker-Compose GitHub 存储库,你可以毫不费力地快速获得一些体面的监控,并将繁重的工作减少到最低限度;如果您有很多主机,这很重要。

配置代理的连接存在一个问题 - Docker 插入了一个 iptables 规则,该规则通过对流量进行 NAT 来破坏连接,但我在此处记录了如何解决该问题:

Dockerized Zabbix: Server Can't Connect to the Agents by IP

希望这可以为您节省一些周期-

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多