Zabbix agent 2 是 Zabbix agent 的新一代版本,使用 Go 语言编写(重用了 Zabbix agent 中的一些 C 代码)。 它的设计目标是:
Zabbix agent 支持被动和主动检查,类似于 Zabbix proxy。 此外,Zabbix agent 主动检查支持在单个主动服务器内进行日志和日志实时检查。
默认情况下,在重启后,Zabbix agent 将在条件随机的时间安排首次主动检查的数据收集, 位于更新间隔内,以防止资源使用出现峰值。为了在 Zabbix 服务器重启后立即执行没有 “调度”配置的主动检查,设置 Timeout
参数(全局级别)或 PluginTimeout
(仅影响特定插件检查) 在 agent 配置中。如果设置了插件级别的参数,它将覆盖全局参数。
来自不同插件的检查可以同时执行。一个插件的并发检查次数受插件容量设置的限制。每个插件都可以有一个硬编码的容量设置(默认为1000),可以使用 Plugins 的配置参数 Plugins.<PluginName>.System.Capacity=N
设置 。
对于支持的平台,请参阅要求页面。
Zabbix Agent 2在被监控的类UNIX系统主机上运行。
Zabbix agent 2 可以通过以下方法之一安装在基于 Linux 的系统上:
--enable-agent2
选项配置源码来编译 Zabbix agent。 请注意,构建 Zabbix agent 2 需要配置 Go 环境,且需要当前支持的Go 版本。自 Zabbix 7.0.5 起,由于 Go 1.22(及更高版本)与 RHEL 6 提供的 GCC 4.4.7 不兼容,导致编译错误,因此不再为 RHEL 6 提供 Zabbix agent 2 包。 然而,需要注意的是,Zabbix agent 包仍然得到支持。
Zabbix agent 2 作为前台进程运行,并依赖于外部服务管理器(例如,systemd)进行后台执行; Zabbix agent 2 在 Linux 上不内置守护进程支持。
可以通过执行以下命令来启动 agent:
要停止、重启或检查 Zabbix agent 2 的状态,请使用以下命令:
您可以通过定位zabbix_agent2二进制文件并直接运行它来启动Zabbix agent;例如:
Zabbix Agent 2 作为独立进程运行;然而,它也可以作为 Windows 服务运行。
Zabbix agent 2 可以通过以下方法之一在 Windows 上安装:
Zabbix agent 2 的监控功能可以通过插件进行扩展。 虽然 内置插件 开箱即用,但 Windows 上的 可加载插件 必须单独安装。 更多信息,请参阅 Zabbix agent 2 可加载插件。
有关将 Zabbix agent 2(从 ZIP 归档)作为 Windows 服务安装的更多详细信息,请参阅 在 Microsoft Windows 上的 Zabbix agent 页面。
Zabbix agent 2 可以使用以下命令行参数 :
参数 | 描述 |
---|---|
UNIX and Windows agent | |
-c --config <config-file> | 配置文件的路径。 您可以使用此选项指定非默认的配置文件。 在 UNIX, 默认是 /usr/local/etc/zabbix_agent2.conf 或者通过编译时变量--sysconfdir 或 --prefix 设置 在Windows上, 默认是 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf |
-f --foreground | 在前台运行Zabbix agent (默认: true). |
-p --print | 打印已知监控项并退出。 注意: 也返回 用户参数结果 , 必须指定配置文件(如果它不在默认位置)。 |
-t --test <item key> | 测试指定监控项并退出。 注意: 也返回 用户参数 结果, 必须指定配置文件 (如果它不在默认位置)。 |
-T --test-config | 验证配置文件并退出。 |
-h --help | 打印帮助信息并退出。 |
-v --verbose | 打印调试信息。将此选项与-p和-t选项一起使用。 |
-V --version | 打印代理版本号并退出。 |
-R --runtime-control <option> | 执行管理功能。 查看 运行时控制。 |
Windows agent only | |
-m --multiple-agents | 使用多个agent实例 (使用 -i, -d, -s, -x 选项)。 为了区分实例的服务名称,每个服务名称将包含来自指定配置文件中的Hostname值. |
-S --startup-type <value> | 设置 Zabbix Windows agent 服务的启动类型。允许以下值:automatic - (default) 在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 | 显示运行时控制的帮助信息 |
例子:
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 | 不支持。 |
有关详细信息,请参阅配置文件选项zabbix_agent2.
Zabbix agent 2也可以用旧的 OpenSSL版本(1.0.1,1.0.2) 编译。
在这种情况下,Zabbix提供了在OpenSSL中锁定的互斥体。如果互斥锁锁定或解锁失败,则把错误消息打印到标准错误流(STDERR),Agent2退出,分别返回代码2或3。