2 个活跃的 agent 自动注册

概述

可以允许主动 Zabbix agent 自动注册,之后服务器可以开始对其进行监控。通过这种方式,可以无需在服务器上手动配置即可将新的 主机 添加到监控中。

当一个之前未知的主动 agent 请求检查时,可能会发生自动注册。

该功能对于自动监控新的云(Cloud)节点非常方便。一旦云中出现新的节点,Zabbix 将自动开始收集该 主机 的性能和可用性数据。

主动 agent 自动注册还支持对新增的 主机 进行被动检查监控。当主动 agent 请求检查时,如果其配置文件中定义了 'ListenIP' 或 'ListenPort' 配置参数,则这些参数将一并发送给服务器。(如果指定了多个 IP 地址,则发送第一个到服务器。)

服务器在添加新的自动注册的 主机 时,使用接收到的 IP 地址和端口来配置该 agent。如果没有接收到 IP 地址,则使用入站连接的 IP 地址;如果没有接收到端口号,则使用 10050。

可以指定 主机 使用 DNS 名称 作为默认的 agent 接口进行自动注册。

自动注册会在以下情况下重新运行:

  • 如果 主机 的 元数据 发生变化:
    • 由于 HostMetadata 改变且 agent 被重启
    • 由于 HostMetadataItem 返回的值发生变化
  • 对于手动创建但缺少元数据的 主机
  • 如果 一个主机 被手动修改为由另一个 Zabbix proxy 监控
  • 如果同一个 主机 从新的 Zabbix proxy 发起自动注册请求

主动 agent 自动注册的心跳间隔对于 Zabbix server 和 Zabbix proxy 是 120 秒。因此,如果发现某个 主机 被删除,自动注册将在 120 秒后重新 run。

配置

指定服务器

请确保已在 agent 中识别出 Zabbix server。 configuration file - zabbix_agentd.conf

ServerActive=10.0.0.1

除非您在 zabbix_agentd.conf 中明确指定了 Hostname,否则服务器将使用 agent 所在位置的系统主机名来命名 主机。在 Linux 系统中,可以通过运行 'hostname' 命令获取系统主机名。

如果在 Zabbix agent 配置中将 Hostname 定义为以逗号分隔的 主机 列表,则将为所有列出的主机名创建对应的 主机。

每次修改配置文件后,请重启 agent。

主动agent自动注册动作

当服务器收到来自agent的自动注册请求时,它会调用 一个action. 事件的一个动作 必须为agent自动注册配置"Autoregistration"源。

设置network discovery不是 需要具有活动的agents自动注册功能。

在Zabbix前端界面中,导航至告警 → 动作菜单,选择 自动注册操作并点击创建操作:

  • 在Action选项卡中,为您的操作命名

  • 可选指定 自动注册动作. 您可以在其中执行子字符串匹配或正则表达式匹配 主机名/主机元数据的条件。如果您打算使用 "主机元数据"条件,详见下一节。

  • 在Operations选项卡中,添加相关操作,例如 - 'Add'

    host', 'Add to host group' (for example, Discovered hosts), 'Link templates', etc.

如果将要自动注册的主机可能 仅支持主动监控(例如主机) 从您的Zabbix server防火墙隔离后,您可能需要create一个 特定模板如Template_Linux-active进行关联。

创建的主机会被添加到已发现的主机组中(默认情况下, 可配置于 管理常规其他参数). 如果您希望主机被添加到另一个组,请添加一个从主机移除 group 操作(指定“已发现的 主机”)并同时添加一个 添加到 主机组 操作(指定另一个 主机组),因为 一个主机 必须属于一个主机组。

安全自动注册

通过配置基于PSK的身份验证和加密连接,可以实现一种安全的自动注册方式。

加密级别在全局范围内于管理常规自动注册 中配置。 可以选择无加密、使用PSK身份验证的TLS加密,或两者同时使用(这样一些主机可以在不加密的情况下注册,而另一些则通过加密方式注册)。

PSK身份验证在添加一个主机之前由Zabbix server验证。 如果验证成功,则添加主机,并将加密 设置为仅“PSK”,其身份/预共享密钥与全局自动注册设置中的相同。

为了确保使用proxies的安装上的自动注册安全性,应在Zabbix server与proxy之间启用加密。

将 DNS 设为默认接口

主机接口(HostInterface)和主机接口项(HostInterfaceItem)configuration parameters允许在自动注册期间为主机接口指定自定义值。

更具体地说,如果希望主机使用DNS名称而非其IP地址作为默认的agent接口进行自动注册,则它们非常有用。在这种情况下,应将DNS名称指定或返回为HostInterface或HostInterfaceItem参数的值。请注意,如果这两个参数之一的值发生更改,则自动注册的主机接口将被更新。因此,可以将默认接口update为另一个DNS名称,或者将其update为IP地址。但要使更改生效,必须重启agent。

如果未配置HostInterface或HostInterfaceItem参数,则listen_dns参数将从IP地址解析。如果此类解析配置不正确,可能会由于无效的主机名而导致自动注册失败。

使用主机元数据

当agent向服务器发送自动注册请求时,会发送其主机名。在某些情况下(例如亚马逊云节点),仅凭主机名不足以让Zabbix server区分发现的主机。可选择使用主机元数据从agent向服务器发送其他信息。

主机元数据在agent的configuration file - zabbix_agentd.conf文件中配置。在配置file中有两种指定主机元数据的方式:

HostMetadata
       HostMetadataItem

选项描述请参见上述链接。

HostMetadataItem参数最多可返回65535个UTF-8码点。更长的值将被截断。

注意在MySQL上,如果返回值包含多字节字符,实际最大字符长度会更少。例如,仅包含3字节字符的值将被限制为总共21844个字符,而仅包含4字节字符的值将被限制为16383个符号。

每次主动agent向服务器发送刷新主动检查请求时都会尝试自动注册。请求之间的延迟在agent的RefreshActiveChecks参数中指定。第一个请求在agent重启后立即发送。

示例1

使用 主机 元数据来区分 Linux 和 Windows 主机。

假设您希望 主机 通过 Zabbix server 自动注册。 您的网络上配置了主动的 Zabbix agents(参见上面的“配置”部分)。 网络中同时存在 Windows 主机 和 Linux 主机, 并且在您的 Zabbix 前端中已有“Linux by Zabbix agent”和“Windows by Zabbix agent”模板。 因此,在 主机 注册时, 您希望将适当的 Linux/Windows 模板应用到正在注册的 主机。 默认情况下,在自动注册时仅发送主机名到服务器,这可能不足以区分类型。 为了确保正确的模板被应用到 主机, 您应当使用 主机 元数据。

前端配置

首先要配置前端。创建 2 操作动作。
第一个操作动作:

  • 名称:Linux 主机 自动注册
  • 条件:主机 元数据包含 Linux
  • 操作:链接模板:Linux

在这种情况下,你可以跳过“添加 主机”操作。将模板链接到 一个主机 需要先添加 主机,因此服务器会自动完成该操作。

第二个操作动作:

  • 名称:Windows 主机 自动注册
  • 条件:主机 元数据包含 Windows
  • 操作:链接模板:Windows

Agent 配置

现在您需要配置 agents。将以下行添加到 agent 的配置文件中:

HostMetadataItem=system.uname

通过这种方式,您可以确保 主机 元数据将包含 "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

在对配置文件进行任何更改后,不要忘记get重启 agent。

示例2

步骤 1

使用 主机 元数据来提供针对意外 主机 注册的基本保护。

前端配置

在前端创建一个操作,使用难以猜测的密钥代码来阻止未授权的 主机:

  • 名称:自动注册操作 Linux
  • 条件:
    • 计算类型:AND
    • 条件 (A):主机 元数据包含 //Linux//
    • 条件 (B):主机 元数据包含 //21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • 操作:
    • 发送消息给用户:Admin,通过所有媒介
    • 添加到 主机 组:Linux 服务器
    • 关联模板:Linux

请注意,此方法本身并不能提供强保护,因为数据是以明文形式传输的。为了使更改立即生效,需要进行 configuration cache 重载。

Agent 配置

将以下行添加到 agent 的配置文件中:

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

其中,“Linux” 是一个平台,其余的 string 是难以猜测的密钥文本。

在对配置文件进行任何更改后,不要忘记get重启 agent。

步骤 2

可以为一个已经注册的 主机 添加额外的监控。

前端配置

在前端更新动作:

  • 名称: 自动注册动作 Linux
  • 条件:
    • 计算类型: AND
    • 条件 (A): 主机 元数据包含 Linux
    • 条件 (B): 主机 元数据包含 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae
  • 操作:
    • 发送消息给用户: Admin 通过所有媒介
    • 添加到 主机 组: Linux 服务器
    • 关联模板: Linux
    • 关联模板: MySQL 通过 Zabbix Agent

Agent 配置

在 agent 配置文件中更新下一行:

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

在对配置文件进行任何更改后,请勿忘记通过 get 重启 agent。