可以允许主动 Zabbix agent的自动注册,自动注册后zabbix server可以开始监控它们。通过这种方式添加的主机不必再手工配置。
当一个之前未知的active agent请求检查时,自动注册就会发生。
这个功能对于自动监控新的云节点非常有用。一旦在云中有了新节点,Zabbix 将自动开始收集主机的性能和可用性数据。
active agent的自动注册还支持通过被动检查监控添加的主机。当active agent请求检查时,如果在配置文件中定义了 'ListenIP' 或 'ListenPort' 配置参数,这些参数将被发送到服务器(如果指定了多个 IP 地址,则发送第一个到服务器)。
在添加新的自动注册主机时,服务器使用接收到的 IP 地址和端口来配置代理。如果没有接收到 IP 地址值,则使用传入连接使用的 IP 地址。如果没有接收到端口值,则使用 10050 端口。
可以指定使用 DNS 名称作为默认代理接口来进行主机的自动注册(参见 使用 DNS 作为默认接口)。
自动注册会重新运行:
Zabbix server和 Zabbix proxy的active agent自动注册心跳间隔为 120 秒。因此,如果删除了一个已发现的主机,则自动注册将在 120 秒后重新运行。
确保在 配置文件 - zabbix_agentd.conf中定义了Zabbix server。
如果不在zabbix_agentd.conf中定义 主机名称(Hostname),则Zabbix会使用agent所在系统的主机名称给主机命名。Linux系统的主机名称可以通过运行命令 'hostname' 来获取。
如果定义的 主机名称(Hostname) 是以逗号分隔的多台主机,那么其中定义的所有主机均会被创建。
agent配置变更需要重启agent生效。
当服务器接收到从agent发来的自动注册请求时,它会调用 一个动作。必须为agent自动注册配置一个事件源为"自动注册"的动作。
设置网络发现不是 主动agents自动注册所必需的。
在Zabbix前端,导航至告警 → 动作,选择 自动注册动作,然后点击创建动作:
如果将要自动注册的主机很可能 仅支持主动监控(例如,被防火墙隔离的主机,无法从Zabbix服务器访问),那么你可能想要创建一个 特定的模板,如Template_Linux-active,来链接。
创建的主机将被添加到已发现的主机组(默认情况下, 在管理 → 通用 → 其他中可配置)。 如果你想将主机添加到其他组,添加一个从主机组移除操作(指定"已发现的主机"),同时添加一个添加到 主机组操作(指定另一个主机组),因为主机必须属于一个主机组。
通过配置基于PSK的身份验证和加密连接,可以实现安全的自动注册方式。
全局配置加密级别位于 管理 → 通用 → 自动发现 中设置。 可以选择不加密、使用PSK身份验证的TLS加密,或两者兼而有之(以便某些主机可以不加密注册,而其他主机则通过加密注册)。
PSK身份验证在向 Zabbix server添加主机之前对预共享密钥(PSK)进行核实。 验证成功后,主机被添加,并且主机的 从主机发起的/到主机的通信连接 被设置为仅使用PSK,其身份验证信息/预共享密钥与全局自动注册设置中的相同。
为确保在使用代理时自动注册的安全性,应启用Zabbix server与proxy之间的加密。
在自动注册过程中,主机接口(HostInterface)和主机接口监控项(HostInterfaceItem) 配置参数的值允许自定义。
具体来说,如果主机使用DNS名称而不是IP地址作为默认agent接口进行自动注册时,对参数的值进行自定义就发挥作用了。这种情况下,DNS名称应通过HostInterface或HostInterfaceItem参数进行设置。 注意,如果上述参数的值发生改变,自动注册的主机接口也会更新。所以可以通过更换DNS名称来更新默认接口,或给DNS名称改成IP地址来更新接口。 Zabbix agent需要重启来使变更生效。 ::: noteclassic 如果不配置HostInterface和HostInterfaceItem这两个参数,那么listen_dns参数会从IP地址来解析。如果解析配置错误,可能会因为主机名称无效导致自动注册失败。 :::
当agent向Zabbix server发送自动注册请求时,它会发送自己的主机名。在某些情况下(例如,Amazon云节点),仅靠主机名无法让Zabbix server区分已发现的主机。可以选择使用主机元数据,从agent发送其他信息到Zabbix server。
主机元数据在agent的配置文件 zabbix_agentd.conf 中进行配置。有两种在配置文件中指定主机元数据的方式:
请参考上面链接中这些选项的描述。
HostMetadataItem 参数可以返回最多65535个UTF-8编码值。如果值过长,将会被截断。
请注意,在MySQL中,如果返回值包含多字节字符,实际的最大长度(以字符为单位)将会更少。例如,仅包含3字节字符的值总长度将被限制为21844个字符,而仅包含4字节字符的值则会被限制为16383个字符。
每当活动agent发送请求以刷新活动检查到Zabbix server时,就会发生自动注册尝试。请求之间的延迟由agent的 RefreshActiveChecks 参数指定。在agent重新启动后,第一个请求会立即发送。
使用主机元数据区分Linux和Windows主机。
假设你想让主机自动注册到Zabbix server。 网络中有配置了active agent(参阅上述"配置"章节)的Windows和Linux主机,并且Zabbix页面中有"Linux by Zabbix agent"和"Windows by Zabbix agent"这两个可用模板。 于是你想在注册过程中将Linux/Windows模板自动应用到对应主机。在自动注册过程中,默认只有主机名称会发送给Zabbix server,可是这些信息并不够。要想确保合适的模板应用到对应主机上,需要使用主机元数据。
前端配置
首先要做的是配置前端。创建两个操作。
第一个操作:
在这种情况下,你可以跳过“添加主机”的操作。直接将模板关联到主机需要先添加主机,Zabbix server会自动完成这一步骤。
第二个操作:
Agent配置
现在需要配置agent了。添加下面一行到agent配置文件中:
通过这种方式能确保主机元数据包含"Linux"或者"Windows"其中一个值(取决于agent所在的主机操作系统)。主机元数据的例子如下:
Linux: Linux server3 3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Windows: Windows WIN-0PXGGSTYNHO 6.0.6001 Windows Server 2008 Service Pack 1 Intel IA-32
对配置文件做了变更后别忘记重启agent。
第一步
使用主机元数据实施一些基本的保护措施,禁止非预期的主机进行注册。
前端页面配置
在前端页面上新建一个动作,使用难以猜测的密码来阻挡非预期的主机来注册:
请注意单独使用此方法不会提供很强的保护,因为数据通过明文传输。需要重新加载配置缓存以使变更生效。
** Agent配置**
添加下面一行到agent配置文件中:
"Linux"指的是操作系统平台,剩下的字符串是难以猜测的密文.
对配置文件做了变更后别忘记重启agent。
第二步
可以为已经注册的主机添加额外的监控内容。
前端页面配置
更新前端页面中的动作:
** Agent配置**
更新下面一行到agent配置文件中:
对配置文件做了变更后别忘记重启agent。