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”键值来测试用户自定义参数。

  1. shell> zabbix_agent2 --print
  2. 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日志级别

  • 打印运行时控制的选项

  1. shell> zabbix_agent2 -R log_level_increase
  2. 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的各检查项限制可同时设置。
StatusPortagent 2监听HTTP状态请求的端口及显示配置插件列表和一些内部参数。
删除的参数描述
AllowRoot, User不支持,因不支持守护进程。
LoadModule, LoadModulePath可加载模块不支持。
StartAgentsZabbix 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 并退出。