可以允许主动 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。
第一步
使用主机元数据实施一些基本的保护措施,禁止非预期的主机进行注册。
前端页面配置
在前端页面上新建一个动作,使用难以猜测的密码来阻挡非预期的主机来注册:
请注意单独使用此方法不会提供很强的保护,因为数据通过明文传输。需要重新加载配置缓存以使变更生效。
Frontend configuration
Create an action in the frontend, using some hard-to-guess secret code to disallow unwanted hosts:
Please note that this method alone does not provide strong protection because data is transmitted in plain text. Configuration cache reload is required for changes to have an immediate effect.
** Agent配置**
添加下面一行到agent配置文件中:
"Linux"指的是操作系统平台,剩下的字符串是难以猜测的密文.
对配置文件做了变更后别忘记重启agent。
第二步
可以为已经注册的主机添加额外的监控内容。
Step 2 - Add template to registered host
It is possible to add additional templates for an already registered host. In this case the MySQL by Zabbix agent template will be linked only to hosts whose HostMetadata contains the token MySQL.
前端页面配置
更新前端页面中的动作:
** Agent配置**
更新下面一行到agent配置文件中:
对配置文件做了变更后别忘记重启agent。