3 Agent 2
概述
Zabbix agent 2是新一代的Zabbix agent,可以替代Zabbix agent使用。 Zabbix agent 2 已开发为:
- 减少TCP连接数量
- 提供改进的检查并发性
- 使用插件很容易扩展。一个插件应该能够:
- 提供由几行简单代码组成的简单检查
- 提供复杂的检查,包括长时间运行的脚本和独立的数据收集,并定期发回数据
- 做一个Zabbix agent 的临时替代品 (因为它支持之前的所有功能)
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:
- Windows(自Windows 10/Server 2016 以后)的所有桌面和服务器版本 - 可作为 预编译二进制文件 或者 Zabbix 源码
- Linux - 可在 分发包 或者 Zabbix 源码
安装
安装Zabbix agent 2有以下两种方式:
Windows:
- 从二进制包安装 - 下载二进制文件,并按照 从MSI安装Windows agent 页面上的说明进行操作
- 从源码安装 - 参阅 在Windows中构建Zabbix agent 2
Linux:
- 从分发包安装 - 按照 Zabbix 安装包 页面上的说明进行操作,可通过选择您的发行版和Agent 2组件获得
- 从源码安装 - 参阅 从源码安装;注意您必须通过指定’—enable-agent2 ‘配置选项来配置安装
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 服务。 |
使用命令行参数的具体示例 :
- 打印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 | 从当前配置文件重新加载 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,并发是在插件级别配置的,可以通过容量设置来限制。 然而,当前不支持禁用被动检查。 |
HostInterface, HostInterfaceItem | 不支持。 |
有关详细信息,请参阅配置文件选项zabbix_agent2.
退出码
Zabbix agent 2也可以用旧的 OpenSSL版本(1.0.1,1.0.2) 编译。
在这种情况下,Zabbix提供了在OpenSSL中锁定的互斥体。如果互斥锁锁定或解锁失败,则把错误消息打印到标准错误流(STDERR),Agent2退出,分别返回代码2或3。