3 Agent 2
概述
Zabbix agent 2 为新一代zabbix agent,未来可能会替代原Zabbix agent。Zabbix agent 2可以实现:
降低TCP连接数
具有更大的检查并发性
易于通过插件进行扩展. 插件可以是:
仅由几行简单代码实现的简单检查
由长时间运行的脚本及数据周期回传的独立数据采集的复杂检查
可以替代原有的Zabbix agent(可以兼容原Zabbix agent的所有功能)
Agent 2是用Go语言开发的(复用了原Zabbix Agent的部分C代码)。 Zabbix agent 2需要在1.13+版本的Go环境编译。
Agent 2不支持Linux上的守护进程; 而且从Zabbix 5.0.4开始,它可以作为Windows service服务运行。
被动检查的工作原理与Zabbix agent类似. 主动检查支持scheduled/flexible间隔和并行检查。
并行检查
不同的插件的检查可以并行执行。 每个插件的并行检查数量取决于对应插件的能力设置。每个插件可能有一个硬编码的能力设置值(缺省比如是100),该值可在 插件 配置参数.通过 Plugins.<Plugin name>.Capacity=N
的命令行进行配置。
支持的平台
Agent 2 支持Linux 和 Windows 平台。
目前, Agent 2 在 Windows平台上支持的监控项数量是受限的.
Agent 2 安装包支持如下平台:
RHEL/CentOS 6, 7, 8
SLES 15 SP1+
Debian 9, 10
Ubuntu 18.04
安装
Zabbix agent 2 可使用预先编译好的安装包。若用源码编译 Zabbix agent 2 需要在编译时指定--enable-agent2
配置选项。
Agent选项
如下的命令行参数可以在Zabbix agent 2中使用:
参数 | 描述 |
---|---|
-c —config <config-file> | 配置文件的绝对路径。 您可以使用此选项来制定配置文件,而不是使用默认文件。 在 UNIX 上,默认的配置文件是 /usr/local/etc/zabbix_agentd.conf 或 由 compile-time 中的 —sysconfdir or —prefix 变量来确定。 |
-f —foreground | 在前台运行 Zabbix agent (缺省: true)。 |
-p —print | 输出已知的监控项并退出。 注意: 要返回 用户自定义参数 的结果, 您必须指定配置文件(如果它不在默认路径下)。 |
-t —test <item key> | 测试指定的监控项并退出。 注意: 要返回 用户自定义参数 的结果, 您必须指定配置文件(如果它不在默认路径下)。 |
-h —help | 显示帮助信息并退出。 |
-v —verbose | 显示debugging信息,使用 -p 和 -t 选项。 |
-V —version | 显示agent版本号并退出。 |
-R —runtime-control <option> | 执行管理功能。 请参阅运行时控制。 |
使用命令行 参数 的具体示例::
显示agent全部的内建监控项和对应的值
使用指定的配置文件中的“mysql.ping”键值来测试用户自定义参数。
shell> zabbix_agent2 --print
shell> zabbix_agent2 -t "mysql.ping" -c /etc/zabbix/zabbix_agentd.conf
运行时控制
运行时控制可以提供一些远程控制的选项。
选项 | 描述 |
---|---|
log_level_increase | 增加日志级别。 在 Zabbix 5.0.0-5.0.3 版本使用 “loglevel increase” 替代(quoted)。 |
log_level_decrease | 降低日志级别。 在 Zabbix 5.0.0-5.0.3 版本使用 “loglevel decrease” 替代 (quoted)。 |
metrics | 显示可用的指标项。 |
version | 显示agent版本。 |
help | 在运行时控制显示帮助信息。 |
例:
增加agent 2日志级别
打印运行时控制的选项
shell> zabbix_agent2 -R log_level_increase
shell> zabbix_agent2 -R help
配置文件
Agent 2的配置参数除了如下几个有差异外,其余与Agent都是兼容的。
新参数 | 描述 |
---|---|
ControlSocket | 运行时控制的 socket 路径。 Agent 2 的 运行时命令行 使用控制 socket。 |
EnablePersistentBuffer, PersistentBufferFile, PersistentBufferPeriod | agent 2的这些参数用于配置已激活监控项的持久化存储。 |
Plugins | 插件可以有自己的参数, 以 Plugins.<Plugin name>.<Parameter>=<value> 的格式进行设置。 插件的常用参数 Capacity的各检查项限制可同时设置。 |
StatusPort | agent 2监听HTTP状态请求的端口及显示配置插件列表和一些内部参数。 |
删除的参数 | 描述 |
AllowRoot, User | 不支持,因不支持守护进程。 |
LoadModule, LoadModulePath | 可加载模块不支持。 |
StartAgents | Zabbix agent中用于使能或关闭增加并行被动检查数。Agent 2中,因并行检查数是插件层面的配置,且可以通过插件能力配置进行限制,故不支持关闭被动检查。 |
HostInterface, HostInterfaceItem | 目前暂不支持。 |
更多详细的配置文件选项请参照 zabbix_agent2。
退出码
自4.4.8版本起,Zabbix agent 2也可以与较老的OpenSSL版本(1.0.1, 1.0.2)一起编译。
这样Zabbix就可以提供OpenSSL中用的互斥锁。如果互斥锁锁定或者解锁失败时就会向标准错误输出(STDERR) 打印一条错误消息,Agent2会返回错误码 2 或者 3 并退出。