Zabbix agent 2 是新一代的 Zabbix agent,使用 Go 编写(并复用了一些来自 Zabbix agent 的 C 代码)。 其设计目标包括:
Zabbix agent 2 支持 被动与主动检查,与 Zabbix agent 类似。
此外,Zabbix agent 2 的主动检查还支持 flexible/scheduling intervals 以及单个主动服务器内的 检查并发。
默认情况下,在重启后,Zabbix agent 2 将在 监控项 的 update 间隔内,于一个条件随机时间调度主动检查的首次数据采集,以避免资源使用的峰值。若希望在 agent 重启后立即执行没有 调度(Scheduling) update interval 的主动检查,请在 configuration file 中设置 ForceActiveChecksOnStart
参数(全局级别)或 Plugins.<Plugin name>.System.ForceActiveChecksOnStart
参数(仅影响特定插件检查)。如果设置了插件级别的参数,它将覆盖全局参数。
来自不同插件的检查可以并发执行。并发数由以下参数控制: 单个插件内并发检查的数量受插件容量的限制 设置。每个插件可能都有一个硬编码的容量设置(例如1000 默认值),可通过 Plugins 中的 Plugins.<PluginName>.System.Capacity=N
设置进行降低 配置 参数
对于支持的平台,请参考 支持平台 页面。
在类UNIX系统上,Zabbix agent 2 是正在被监控的 主机 上的 run。
Zabbix agent 2 可以通过以下方法之一在基于 Linux 的系统上安装:
--enable-agent2
选项编译 Zabbix agent。 注意:构建 Zabbix agent 2 需要配置好的 Go 环境,并且使用当前支持的 agent-2。从 Zabbix 7.0.5 开始,由于 Go 1.22(及更高版本)与 RHEL 6 提供的 GCC 4.4.7 不兼容,导致编译错误,因此 Zabbix agent 2 软件包不再支持 RHEL 6。 但是请注意,Zabbix agent packages 仍然受到支持。
Zabbix agent 2 以前台进程方式运行,并依赖外部服务管理器(例如 systemd)实现后台执行; Zabbix agent 2 在 Linux 上不支持内置的守护进程化功能。
可通过执行以下命令启动 agent:
要停止、重启或检查 Zabbix agent 2 的状态,请使用以下命令:
您可以通过找到 zabbix_agent2 可执行文件并直接运行它来启动 Zabbix agent;例如:
Zabbix agent 2 作为一个独立进程运行;但是,它也可以作为 Windows 服务被 run。
Zabbix agent 2 可以通过以下方法之一在 Windows 上安装:
Zabbix agent 2 的监控功能可以通过插件进行扩展。 虽然内置插件可以直接使用,但在 Windows 上可加载的插件必须单独安装。 有关更多信息,请参见 可加载。
有关将 Zabbix agent 2(从 ZIP 归档文件)安装为 Windows 服务的更多详细信息,请参见 将-agent-安装为-windows-服务 页面。
以下命令行参数可用于Zabbix agent 2:
参数 | 描述 |
---|---|
UNIX and Windows agent | |
-c --config <config-file> | 配置文件 file 的路径。 您可以使用此选项指定非默认的配置文件 file。 在UNIX系统中,默认为/usr/local/etc/zabbix_agent2.conf 或通过 安装-zabbix-守护进程 变量 --sysconfdir 或 --prefix 设置 在Windows系统中,默认为 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf |
-f --foreground | 在前台运行 Zabbix agent(默认值:true)。 |
-p --print | 打印已知的监控项并退出。 注意:若要同时返回user parameter结果,必须指定配置file(若其不在默认位置)。 |
-t --test <item key> | 测试指定的监控项并退出。 注意:若要同时返回user parameter结果,必须指定配置file(若其不在默认位置)。 |
-T --test-config | 验证配置 file 并退出。 |
-h --help | 打印帮助信息并退出。 |
-v --verbose | 打印调试信息。此选项需与-p和-t选项配合使用。 |
-V --version | 打印 agent version 及许可证信息。 |
-R --runtime-control <option> | 执行管理功能。参见运行时控制。 |
Windows agent only | |
-m --multiple-agents | 使用多个 agent 实例(配合 -i、-d、-s、-x 选项)。 为区分实例的服务名称,每个服务名称将包含来自指定配置 file 的主机名值。 |
-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 服务。 |
使用命令行参数的具体示例:
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 | 显示运行时控制的帮助信息。 |
示例:
从 Zabbix 7.0.17 开始,agent 2 的运行时控制命令将输出写入 stdout
(标准输出),而不是 stderr
(标准错误)。
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 中,并发数在插件级别进行配置,并可通过容量设置进行限制。而禁用被动检查目前尚不支持。 |
HostInterface, HostInterfaceItem | 尚未支持。 |
更多详细信息,请参阅 file 的配置选项 zabbix_agent2。
Zabbix agent 2 也可以使用较旧版本的 OpenSSL 编译(1.0.1,1.0.2)。
在这种情况下,Zabbix 会为 OpenSSL 中的锁定提供互斥锁。如果互斥锁的加锁或解锁操作失败,则错误信息会被打印到标准错误流(STDERR),并且 Agent 2 将分别以返回码 2 或 3 退出。