3 Agent 2
概述
Zabbix agent 2 是新一代的 Zabbix agent,使用 Go 编写(并复用了 Zabbix agent 的部分 C 代码)。 其设计目标如下:
- 减少 TCP 连接数量。
- 提供改进的检查并发性。
- 通过插件轻松扩展;插件可用最少的代码提供简单检查,并支持由长时间运行的脚本组成的复杂检查,以及带有定期报告的独立数据采集。
- 作为 Zabbix agent 的替代方案运行,并支持此前的所有功能。
被动检查和主动检查
Zabbix agent 2 与 Zabbix agent 类似,支持被动检查和主动检查。 此外,Zabbix agent 2 的主动检查支持在单个活动服务器内使用灵活/计划间隔和并发检查。
默认情况下,重启后,Zabbix agent 2 会在监控项更新间隔内的一个条件随机时间安排主动检查的首次数据采集,
以防止资源使用出现峰值。若要在 agent 重启后立即执行未设置 Scheduling 更新间隔 的主动检查,
请在配置文件中设置 ForceActiveChecksOnStart 参数(全局级别)或 Plugins.<Plugin name>.System.ForceActiveChecksOnStart(仅影响特定插件检查)。
如果设置了插件级参数,则会覆盖全局参数。
并发检查
来自不同插件的检查可以同时执行。一个插件的并发检查次数受插件容量设置的限制。每个插件都可以有一个硬编码的容量设置(默认为1000),可以使用 Plugins 的配置参数 Plugins.<PluginName>.System.Capacity=N 设置 。
支持的平台
有关支持的平台,请参见Requirements页面。
UNIX 类系统上的 Agent 2
UNIX 类系统上的 Zabbix agent 2 运行在被监控的主机上。
安装
Zabbix agent 2 可以通过以下方法之一安装在基于 Linux 的系统上:
- Zabbix 软件包 - 选择 Agent 2 组件(在选择 Zabbix 版本、操作系统发行版和操作系统版本之后),并按照说明进行操作。
- Zabbix 源码 - 下载源文件,并通过使用
--enable-agent2选项进行配置来编译 agent。
Zabbix agent 2 的监控能力可以通过可加载插件进行扩展,这些插件可单独获取。 详情请参见可加载插件。
如果以软件包方式安装
Zabbix agent 2 以前台进程方式运行,并依赖外部服务管理器(例如 systemd)在后台执行; Zabbix agent 2 在 Linux 上不内置守护进程化支持。
可以通过执行以下命令来启动 agent:
systemctl start zabbix-agent2
要停止、重启或检查 Zabbix agent 2 的状态,请使用 以下命令:
systemctl stop zabbix-agent2
systemctl restart zabbix-agent2
systemctl status zabbix-agent2
手动启动
您可以通过找到 zabbix_agent2 二进制文件并直接运行它来启动 Zabbix agent;例如:
zabbix_agent2
Windows 系统上的 Agent 2
Zabbix agent 2 作为独立进程运行;不过,它也可以作为 Windows 服务运行。
安装
可以使用以下任一方法在 Windows 上安装 Zabbix agent 2:
- 预编译的 Zabbix agent 二进制文件 - 下载 agent MSI 安装程序包,并按照从 MSI 安装 Windows agent页面中的说明进行操作。
- Zabbix 源码 - 下载源文件,并按照在 Windows 上构建 Zabbix agent 2页面中的说明进行操作。
Zabbix agent 2 的监控能力可以通过可加载插件进行扩展,这些插件可单独获取。 详情请参见可加载插件。
有关将 Zabbix agent 2(从 ZIP 压缩包)作为 Windows 服务安装的更多详细信息,请参见 Microsoft Windows 上的 Zabbix agent 页面。
选项
以下命令行参数可用于 Zabbix agent 2:
| Parameter | Description |
|---|---|
| UNIX 和 Windows agent | |
| -c --config <config-file> | 配置文件的路径。 您可以使用此选项指定一个非默认配置文件。 在 UNIX 上,默认值为 /usr/local/etc/zabbix_agent2.conf,或由 compile-time 变量 --sysconfdir 或 --prefix 设置 在 Windows 上,默认值为 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf |
| -f --foreground | 以前台方式运行 Zabbix agent(默认:true)。 |
| -p --print | 打印已知监控项并退出。 注意:要同时返回 user parameter 的结果,您必须指定配置文件(如果它不在默认位置)。 |
| -t --test <item key> | 测试指定监控项并退出。 注意:要同时返回 user parameter 的结果,您必须指定配置文件(如果它不在默认位置)。 |
| -T --test-config | 验证配置文件并退出。 |
| -h --help | 打印帮助信息并退出。 |
| -v --verbose | 打印调试信息。请将此选项与 -p 和 -t 选项一起使用。 |
| -V --version | 打印 agent 版本和许可证信息。 |
| -R --runtime-control <option> | 执行管理功能。请参见 runtime control。 |
| 仅 Windows agent | |
| -m --multiple-agents | 使用多个 agent 实例(与 -i、-d、-s、-x 选项一起使用)。 为了区分各实例的服务名称,每个服务名称都将包含指定配置文件中的 Hostname 值。 |
| -S --startup-type <value> | 设置 Zabbix Windows agent 服务的启动类型。允许的值:automatic - (默认) 在 Windows 启动时自动启动服务;delayed - 在自动启动的服务完成启动后延迟启动该服务;manual - 手动启动服务(由用户或应用程序);disabled - 禁用该服务,使其无法由用户或应用程序启动。您可以将此选项与 -i 选项一起使用,或单独使用以修改已安装服务的启动类型。 |
| -i --install | 将 Zabbix Windows agent 安装为服务。 |
| -d --uninstall | 卸载 Zabbix Windows agent 服务。 |
| -s --start | 启动 Zabbix Windows agent 服务。 |
| -x --stop | 停止 Zabbix Windows agent 服务。 |
使用命令行参数的具体示例:
- 打印所有内置 agent 监控项及其值
- 测试在指定配置文件中定义的、键为 "mysql.ping" 的 user parameter
- 在 Windows 上使用默认配置文件路径 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf 安装 "Zabbix Agent" 服务
- 使用与 agent 可执行文件位于同一 文件夹中的配置文件 zabbix_agent2.conf,修改 Windows 上已安装的 "Zabbix Agent" 服务的启动类型
zabbix_agent2 --print
zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
zabbix_agent2.exe -i
zabbix_agent2.exe -c zabbix_agent2.conf -S delayed
运行时控制
运行时控制提供了一些远程控制选项。
| 操作 | 描述 |
|---|---|
| log_level_increase | 增加日志等级。 |
| log_level_decrease | 降低日志等级。 |
| metrics | 可用的指标列表。 |
| version | 显示agent版本。 |
| userparameter_reload | 从当前配置文件重新加载 UserParameter 和 Include 选项。 |
| help | 显示运行时控制的帮助信息 |
例子:
- 为agent 2增加日志等级
- 打印运行时控制选项
zabbix_agent2 -R log_level_increase
zabbix_agent2 -R help
配置文件
agent 2 的配置参数大多与 Zabbix agent 兼容,但也有一些例外。
| 新参数 | 说明 |
|---|---|
| ControlSocket | 运行时控制套接字路径。Agent 2 使用控制套接字来执行运行时命令。 |
| EnablePersistentBuffer, PersistentBufferFile, PersistentBufferPeriod |
这些参数用于在 agent 2 上为主动监控项配置持久化存储。 |
| ForceActiveChecksOnStart | 确定 agent 在重启后是应立即执行主动检查,还是将其均匀分散到一段时间内执行。 |
| Plugins | 插件可以有自己的参数,格式为 Plugins.<Plugin name>.<Parameter>=<value>。一个常见的插件参数是 System.Capacity,用于设置可同时执行的检查数量上限。 |
| StatusPort | agent 2 将监听的端口,用于接收 HTTP 状态请求,并显示已配置插件列表及一些内部参数 |
| 已移除的参数 | 说明 |
| AllowRoot, User | 不支持,因为不支持守护进程化。 |
| LoadModule, LoadModulePath | 不支持可加载模块。 |
| StartAgents | 该参数在 Zabbix agent 中用于提高被动检查并发数或禁用被动检查。在 Agent 2 中,并发是在插件级别配置的,并且可通过容量设置进行限制。 |
更多详情请参见 zabbix_agent2 的配置文件选项。
退出码
Zabbix agent 2也可以用旧的 OpenSSL版本(1.0.1,1.0.2) 编译。
在这种情况下,Zabbix提供了在OpenSSL中锁定的互斥体。如果互斥锁锁定或解锁失败,则把错误消息打印到标准错误流(STDERR),Agent2退出,分别返回代码2或3。