Files
Knowledge/1 使用/Zabbix Agent2.md
T

3.6 KiB
Raw Blame History

用 Docker 部署的 Zabbix Agent2,其默认工作模式取决于配置。下面这个表格汇总了关键信息,帮助你快速了解:

特性 默认及配置
默认模式倾向 配置文件同时设置 Server 和 ServerActive 时,支持两种模式。监控项类型决定实际使用哪种。
模式切换核心 在 Zabbix Web 前台 修改监控项的类型,并确保 Agent2 容器配置与之配合。
配置文件和变量 通过环境变量调整容器配置,如 ZBX_SERVER_HOST(被动)、ZBX_SERVER_ACTIVE(主动)、ZBX_HOSTNAME。

🐳 配置 Agent2 容器

启动 Docker 容器时,配置工作模式相关的环境变量至关重要:

  • 被动模式配置示例:主要依赖 ZBX_SERVER_HOST。

    docker run --name zabbix-agent2 \
      -e ZBX_SERVER_HOST="zabbix-server-ip" \
      -e ZBX_HOSTNAME="monitored-hostname" \
      -p 10050:10050 \
      --privileged \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -d zabbix/zabbix-agent2:latest
    
  • 主动模式配置示例:主要依赖 ZBX_SERVER_ACTIVE,并不总需要映射端口到宿主机。

    docker run --name zabbix-agent2 \
      -e ZBX_SERVER_ACTIVE="zabbix-server-ip" \
      -e ZBX_HOSTNAME="monitored-hostname" \
      --privileged \
      -v /var/run/docker.sock:/var/run/docker.sock \
      -d zabbix/zabbix-agent2:latest
    

🔄 在 Zabbix Web 前台切换监控项类型

在 Zabbix Web 前台中修改监控项类型是实现模式切换的关键。

  1. 定位监控项:进入"配置" → "主机",找到你的主机,点击"监控项"。
  2. 批量修改类型:
    • 选择需要修改的监控项。
    • 点击下方的"批量更新"按钮。
    • 在"类型"下拉框中,选择 "Zabbix 客户端(主动式)" 或 "Zabbix 客户端"。
    • 点击"更新"确认。

⚙️ 确保 Agent2 能监控 Docker

要让 Zabbix Agent2 成功监控 Docker,无论哪种模式,都需确保:

  • 以 --privileged 特权模式运行容器。
  • 将宿主机的 Docker 套接字文件映射到容器内:-v /var/run/docker.sock:/var/run/docker.sock。这是 Zabbix Agent2 的 Docker 插件与 Docker API 通信的基础。

🔧 注意事项与建议

  • 权限问题:如果容器内默认的 zabbix 用户无法读取 Docker 套接字文件,你可能需要根据宿主机上的套接字文件权限,调整容器内用户的权限或组关系。一个常见的做法是确保 zabbix 用户在容器内属于能访问 /var/run/docker.sock 的组(如 docker 组)。不过,在容器环境中处理权限可能稍复杂, privileged 特权模式通常能解决大部分权限问题。
  • 主动模式的优势:在监控主机数量多、监控项数量大的情况下,主动模式能显著减轻 Zabbix Server 的压力,因为 Agent2 会主动上报数据,Server 无需为每个监控项主动轮询。
  • 模板应用:为主机链接 "Template App Docker" 或类似模板,Zabbix 会自动配置发现规则和监控项。你可以根据需求,批量将这些监控项修改为主动或被动模式。

💎 总结

总的来说,Docker 部署的 Zabbix Agent2 默认通常同时支持主动和被动模式,最终由前台定义的监控项类型决定。切换模式主要通过在 Zabbix Web 前台 修改监控项的类型来实现,同时确保启动 Agent2 容器的命令中配置了正确的环境变量。

希望这些信息能帮助你顺利完成配置!如果你在具体操作中遇到其他问题,可以随时提问。