用 Docker 部署的 Zabbix Agent2,其默认工作模式取决于配置。下面这个表格汇总了关键信息,帮助你快速了解: | 特性 | 默认及配置 | | :--- | :--- | | **默认模式倾向** | 配置文件同时设置 `Server` 和 `ServerActive` 时,**支持两种模式**。监控项类型决定实际使用哪种。 | | **模式切换核心** | 在 **Zabbix Web 前台** 修改**监控项的类型**,并确保 **Agent2 容器配置**与之配合。 | | **配置文件和变量** | 通过环境变量调整容器配置,如 `ZBX_SERVER_HOST`(被动)、`ZBX_SERVER_ACTIVE`(主动)、`ZBX_HOSTNAME`。 | ### 🐳 配置 Agent2 容器 启动 Docker 容器时,配置工作模式相关的环境变量至关重要: - **被动模式配置示例**:主要依赖 `ZBX_SERVER_HOST`。 ```shell 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`,并不总需要映射端口到宿主机。 ```shell 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 容器的命令中配置了正确的环境变量。 希望这些信息能帮助你顺利完成配置!如果你在具体操作中遇到其他问题,可以随时提问。