3 Agent 2

概览

Zabbix agent 2 是 Zabbix agent 的新一代版本,使用 Go 语言编写(重用了 Zabbix agent 中的一些 C 代码)。 它的设计目标是:

  • 减少 TCP 连接的数量。
  • 提供改进的 检查并发性
  • 容易通过 插件 进行扩展,插件提供简单的检查,代码最少,同时支持复杂的检查,包括长运行脚本和独立的数据收集,支持周期性报告。
  • 作为 Zabbix agent 的替代品,支持所有先前的功能。
被动和主动检查

Zabbix agent 支持被动和主动检查,类似于 Zabbix proxy。 此外,Zabbix agent 主动检查支持在单个主动服务器内进行日志和日志实时检查。

默认情况下,在重启后,Zabbix agent 将在条件随机的时间安排首次主动检查的数据收集, 位于更新间隔内,以防止资源使用出现峰值。为了在 Zabbix 服务器重启后立即执行没有 “调度”配置的主动检查,设置 Timeout 参数(全局级别)或 PluginTimeout(仅影响特定插件检查) 在 agent 配置中。如果设置了插件级别的参数,它将覆盖全局参数。

并发检查

来自不同插件的检查可以同时执行。一个插件的并发检查次数受插件容量设置的限制。每个插件都可以有一个硬编码的容量设置(默认为1000),可以使用 Plugins 的配置参数 Plugins.<PluginName>.System.Capacity=N 设置 。

支持的平台

对于支持的平台,请参阅要求页面。

在类UNIX系统上的Agent 2

Zabbix Agent 2在被监控的类UNIX系统主机上运行。

安装

Zabbix agent 2 可以通过以下方法之一安装在基于 Linux 的系统上:

  • Zabbix 包 - 选择 Agent 2 组件(在选择您的 Zabbix 版本、操作系统发行版和操作系统版本后)并遵循提供的说明。
  • Zabbix 源码 - 下载源文件并通过使用 --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:

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

Zabbix Agent 2 在 Windows 系统上

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 服务。

使用命令行参数的具体示例

  • 打印agent内置的所有监控项和值
  • 使用指定配置文件中定义的“mysql.ping”键测试一个用户参数
  • 使用默认路径将“Zabbix Agent”服务安装到Windows系统中,其配置文件为 C:\Program Files\Zabbix Agent 2\zabbix_agent2.conf
  • 使用安装在Windows系统上的 "Zabbix Agent" 服务的配置文件 zabbix_agent2.conf 来修改其启动类型
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 从当前配置文件重新加载 UserParameterInclude 选项。
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,并发是在插件级别配置的,可以通过容量设置来限制。 然而,当前不支持禁用被动检查。
HostInterface, HostInterfaceItem 不支持。

有关详细信息,请参阅配置文件选项zabbix_agent2.

退出码

Zabbix agent 2也可以用旧的 OpenSSL版本(1.0.1,1.0.2) 编译。

在这种情况下,Zabbix提供了在OpenSSL中锁定的互斥体。如果互斥锁锁定或解锁失败,则把错误消息打印到标准错误流(STDERR),Agent2退出,分别返回代码2或3。