2 个活跃的 agent 自动注册

概述

可以启用主动式Zabbix agent自动注册功能,之后服务器即可开始监控这些设备。通过这种方式,新的主机无需在服务器上手动配置即可加入监控体系。

当先前未知的主动式agent请求检查时,可能触发自动注册流程。

该特性对于云环境新节点的自动化监控极为便利。云平台中新增节点时,Zabbix将立即自动开始采集主机的性能与可用性数据。

主动式agent自动注册同样支持通过被动检查方式监控新增的主机。当主动式agent请求检查时,若其配置文件中定义了'ListenIP'或'ListenPort'参数(通过file配置),这些参数将同步发送至服务器(若指定多个IP地址,则仅发送首个地址)。

服务器在添加新自动注册的主机时,将使用接收到的IP地址和端口配置agent。若未收到IP地址值,则使用建立连接的来源地址;若未收到端口值,则默认使用10050端口。

可指定主机应通过DNS名称作为默认agent接口进行自动注册。

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

  • 当主机的元数据信息变更时:
    • 因HostMetadata变更且agent重启
    • 因HostMetadataItem返回值变化
  • 对于手动创建但缺少元数据的主机
  • 当一个主机被手动更改为由其他Zabbixproxy监控时
  • 当同一主机的自动注册请求来自新的Zabbix proxy时

配置

指定服务器

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

ServerActive=10.0.0.1

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

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

修改配置file后,请重启agent。

主动agent自动注册动作

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

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

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

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

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

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

    host', 'Add to host group' (for example, Discovered hosts), 'Link to 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

请参阅上述链接中的选项说明。

每次主动agent向服务器发送刷新主动检查的请求时, 都会尝试自动注册。请求之间的延迟由 RefreshActiveChecks参数 在agent中指定。首次请求在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

在对配置file进行任何更改后, 不要忘记重启agent.

示例2

步骤1

使用主机元数据提供基础防护机制,防止未经授权的主机注册行为。

前端配置

在前端创建一个动作,使用难以猜测的密钥代码来阻止非法的主机:

  • 名称: Linux自动注册动作

  • 条件:

    • 计算类型: AND
    • 条件(A): 主机元数据包含//Linux//
    • 条件(B): 主机元数据包含//21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae//
  • 操作:

    • Send message to users: Admin via all media
    • Add to host groups: Linux servers
    • Link to templates: Linux

请注意,仅此方法无法提供强力保护,因为数据是以明文传输的。configuration cache需要重新加载才能使更改立即生效。

Agent 配置

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

HostMetadata=Linux    21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

其中 "Linux" 是平台名称,其余部分 string 是难以猜测的密钥文本。

修改配置文件 file 后,不要忘记重启 agent。

步骤 2

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

前端配置

在前端更新操作:

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

Agent 配置

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

HostMetadata=MySQL on Linux 21df83bf21bf0be663090bb8d4128558ab9b95fba66a6dbf834f8b91ae5e08ae

修改完配置文件 file 后,别忘了重启 agent。