可以允许主动 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生效。
当Zabbix server接收到agent的自动注册请求时,会调用一个动作。这个动作的事件源必须配置为 "Autoregistration" 以便进行agent自动注册。
设置 网络发现 不是必须要有active agents来进行自动注册。
在 Zabbix 前端中,进入 Alerts → Actions,选择 Autoregistration 作为事件源,并点击 Create action。
如果将要自动注册的主机可能仅支持主动监控(例如受到防火墙保护以阻止直接连接到你的 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。