Zabbix agent 2是新一代的Zabbix agent,可以替代Zabbix agent使用。 Zabbix agent 2 已开发为:
Agent 2 是用Go 语言编写(复用了一些 Zabbix agent 中的C 语言代码)。在构建Zabbix agent 2 时,需要配置当前支持的Go环境 Go version 。
Agent 2 在Linux上没有内置的守护进程支持; 它可以作为 [Windows 服务]((/manual/appendix/install/windows_agent)。
被动检查的工作类似于Zabbix agent。主动检查支持 调度/灵活间隔 同时并发检查仅使用一个active server。
默认情况下,重启后,Zabbix agent2 将在监控项更新间隔内的随机时间进行主动检查的第一次数据采集,避免资源使用率突增。为了在agent重启后立即做好非调度采集间隔 的主动检查,设置配置文件中ForceActiveChecksOnStart参数(全局)或者Plugins.<Plugin name>.System.ForceActiveChecksOnStart(仅影响特定插件)。插件级别参数会覆盖全局参数。
来自不同插件的检查可以同时执行。一个插件的并发检查次数受插件容量设置的限制。每个插件都可以有一个硬编码的容量设置(默认为1000),可以使用 Plugins 的配置参数 Plugins.<PluginName>.System.Capacity=N
设置 。
以下平台支持 Zabbix agent 2:
安装Zabbix agent 2有以下两种方式:
Windows:
Linux:
Zabbix agent 2 监控功能可以使用插件进行扩展。虽然内置插件可以开箱即用,但可加载的插件必须单独安装。 更多信息,参阅插件.
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。