「Zabbix」- zabbix agent 自动注册

Active agent autoregistration,主动检查自动注册,将主动检查的 zabbix agent 主机自动添加到 zabbix server 中,无需手动配置。

关于自动注册

当 zabbix agent 为主动模式时,可以自动注册到 zabbix server 中,无需手动配置主机。

当 zabbix agent 为被动模式时,主机也可以自动发现,但是依旧需要借助主动检查(因为主动模式与被动模式可以并存)。

何时发生自动注册

自动注册发生在 未知 agent 请求检查条目时(在获取监控项时):在主动检查中,zabbix agent 会向 zabbix server 请求获取监控项,此时会发生自动注册。

也就是说每次 zabbix agent 请求刷新监控项时,都会尝试触发自动注册。参数 RefreshActiveChecks 可以控制监控项的刷新频率,即可以间接控制自动注册频率。

在启动时 zabbix agent 会请求监控项,此时会立即触发自动注册。

自动注册流程

在主动检查时,zabxxi agent 会同时向 zabbix server 提供 ListenIP/ListenPort 参数(多个 IP 则只发送第一个)

然后 zabbix server 使用提供的 ListenIP/ListenPort 参数来注册 zabbix agent 主机。如果没有提供 ListenIP 则使用传入连接的地址;如果没有提供 ListenPort 则使用 10050(默认端口)。

自动注册需要哪些配置?

调整 zabbix agent 配置

修改 zabbix_agentd.conf 配置:

# 配置主动检查
ServerActive=10.0.0.1

#(可选)注意主机名重复问题
HostnameItem=system.hostname

然后,重启 zabbix agent 服务,以使配置生效。

用于 zabbix agent 自动注册的 Action

当 zabbix server 收到自动注册请求时,zabbix server 会调用 Action,事件源为 Auto registration 的 Action 必须被配置:

=> Zabbix frontend => Configuration => Actions => Auto registration => Create

=> 填写 Name

=> 如果有必要,则填写过滤条件

=> Operations 添加相关操作。自动发现主机默认添加到 Discovered hosts 分组(Administration → General → Other),可以设置 Remove from host group / Add to host group 进行调整

Using DNS as default interface

也可以指定 被自动注册的主机 应该使用 DNS name 作为默认的 Agent interface

需要在 zabbix agent 中配置 HostInterface 或 HostInterfaceItem 参数。(自从 Zabbix 4.4 开始支持)

注意事项,如果两个参数发生变化,主动注册主机的 Agent interface 将发生变化。因此,可以修改 Agent interface 为 其他 DNS 名称 或 网络地址。

过滤自动注册主机(Using host metadata)

在主动注册时,zabbix agent 将发送主机名,但是有时候我们需要更多信息来识别主机。

此时可以使用 HostMetadata / HostMetadataItem 参数。

在官方文档中,包含两个示例:(1)通过 HostMetadata 分别主机(Windows and Linux);(2)通过 HostMetadata 过滤主机

自动注册的安全性(Secure autoregistration)

在 Administration => General => Autoregistration 中,可以设置 基于 PSK 认证 以提高自动注册的安全性。

触发重新自动注册(Autoregistration is rerun)

在某些场景下会发生“重新自动注册”;有时我们也需要重新自动注册,比如当我们为 Auto registration 的 Operations 加入新的模板(Link to templates)后,我们需要重新触发自动注册,以为全部自动注册主机添加模板。

以下场景会发生自动注册

1)如果主机 metadata 信息发生修改:
修改 HostMetadata 参数,并重启 agent 以使行配置生效,此时会发生自动注册;
由于 HostMetadataItem 动态取值,因此如果返回的数据发生变化,则会触发自动注册;

2)对于缺少元数据的手动创建的主机

3)如果主机被手动修改有 zabbix proxy 监控

4)如果 来自新的 zabbix proxy 的 相同主机名 自动注册

参考文献

Zabbix Documentation 4.4/2 Active agent autoregistration