前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Zabbix自动发现、自动注册、下线自动注销

Zabbix自动发现、自动注册、下线自动注销

作者头像
用户6641876
发布2020-02-19 15:08:58
3.4K0
发布2020-02-19 15:08:58
举报

一、网络发现

网络发现是zabbix最具特色的功能之一,它能能够根据用户事先定义的规则自动添加监控主机或服务等,Zabbix的网络发现功能可以基于:

  • IP 范围
  • 可用的外部服务(FTP、SSH、WEB、POP3、IMAP、TCP等)
  • 来自Zabbix客户端的信息(仅支持未加密模式)
  • 来自snmp客户端的信息

网络发现通常包含两个阶段:discovery和actions

Discovery中的事件:

Service Up

Service Down

Host Up

Host Down

Service Discovered

Service Lost

Host Discovered

Host Lost

Action,网络发现中的事件可以触发action,从而自动执行指定的操作,如: Sending notifications

Adding/removing hosts

Enabling/disabling hosts

Adding hosts to group

Removing hosts from a group

Linking hosts to/unlinking from a template

Executing remote scripts

二、环境说明

ZABBIX服务端IP:10.211.55.10 OS:CentOS release 7.6 (Final) 客户端IP:10.211.55.11 OS:CentOS release 7.6 (Final)

三、配置网络发现规则

配置Zabbix的网络发现规则来发现主机和服务:

  • 首先进入 配置 → 自动发现
  • 单击 创建发现规则(Create rule)
  • (或在自动发现规则名称上编辑现有规则)
  • 编辑自动发现规则属性,如图所示

ZABBIX 网络发现案例

ZABBIX 官网示例如下

例如我们设置IP段为10.211.55.1-10.211.50.254的网络发现规则。

在我们的例子中,我们需要:

  • 发现有Zabbix agent运行的主机
  • 每10分钟执行一次
  • 如果主机正常运行时间超过1小时,添加主机
  • 如果主机停机时间超过24小时,删除主机
  • 将Linux主机添加到“Linux servers”组
  • 将Windows主机添加到“Windows servers”组
  • 链接模板Template OS Linux 到Linux主机
  • 链接模板Template OS Windows到Windows主机

四、主机自动加入主机组并关联模板

首先给我们的IP段定义网络发现规则。

ZABBIX通过连接ZABBIX agents并获取system.uname键值来发现IP段为10.211.55.1-10.211.50.254中的主机。根据不同键值来对应不同的操作系统的不同操作。

根据不同键值来对应不同的操作系统的不同操作。例如将Windows服务器链接到Template OS Windows,将Linux服务器链接到Template OS Linux。规则将每10分钟(600秒)执行一次。当规则添加后,Zabbix将自动执行发现规则并生成基于发现的事件做后续处理。

自动发现Linux 主机

定义动作(action) 将所发现的Linux服务器添加到相应的组/模板

如果发生以下情况,动作(action)将被激活:

  • “Zabbix agent”服务是“up”
  • system.uname(规则中定义的Zabbix agent键值)包含“Linux”
  • 正常运行时间为1小时(3600秒)或更长

动作(action)将执行以下操作:

  • 将发现的主机添加到“Linux servers”组(如果以前未添加主机,也添加主机)
  • 链接主机到“TemplateOS Linux”模板。Zabbix将自动开始使用“Template OS Linux”模板中的项目和触发器来监控主机

自动发现Windows主机

定义动作(action) 将所发现的Windows服务器添加到相应的组/模板

定义动作(action) 将所发现的Windows服务器添加到相应的组/模板

五、下线自动注销设置

定义动作删除失联主机

如果“Zabbix agent”服务'down'超过24小时(86400秒),服务器将被删除

六、ZABBIX 自动注册

Zabbix支持active agent的自动注册(auto-resisitration)功能,通常用于此前故障的agent重新上线的场景,也可基于active agent的自动注册机制添加被动检测,这会通过active agent注册时提供的”ListenIP”和”ListenPort”进行,Server端在收到自动注册请求后以接收到的IP和Port为接口属性。

两者区别:网络发现是zabbix server主动将在线的主机添加到host列表中去,而自动注册是 Active agent主动联系zabbix server,最后由zabbix server将这些agent加到host里。

Zabbix Active agent可以实现自动注册,进而服务器对其进行监控。通过这种方式,无需在服务器上进行手动配置便可直接启动对新host的监控。当以前未知的active agent要求检查时,会发生自动注册。服务器在添加新的自动注册主机时,使用接收到的IP地址和端口配置agent。如果没有接收到IP地址值,则使用传入连接的IP地址。如果没有接收到端口值,则使用10050。

ZABBIX 自动注册配置

zabbix agent 指定服务器地址

请确保在配置文件中 指定了Zabbix server- zabbix_agentd.conf

代码语言:javascript
复制
Server=zabbix server or proxy address
代码语言:javascript
复制
ServerActive=zabbix or proxy server address

如果你没有在zabbix_agentd.conf中特别定义Hostname, 则服务器将使用agent的系统主机名命名主机。主机名可以通过运行'hostname'命令获取。修改配置文件后需要重启agent。

Aactive agent自动注册动作

当服务器从agent收到自动注册请求时,它会调用一个动作n. 必须要为agent自动注册配置一个事件源为“自动注册”的动作。

在Zabbix前端页面,点击配置 → 动作,选择自动注册 为事件源,然后单击创建动作:

在动作选项卡,定义动作名称可选指定条件。如果要使用“主机元数据”参数

在“操作”选项卡中,需要添加关联操作,如“添加主机”,“添加到主机组”(例如,发现的主机),“链接到模板”等。如果自动注册主机只能支持主动监视(例如由于防火墙的原因,Zabbix服务器不允许访问的主机),则可能需要创建一个特定的模板,如Template_Linux-active来做关联。

使用主机元数据

当agent程序向服务器发送自动注册请求时,会发送其主机名。在某些情况下、Zabbix Server单单通过主机名无法区分主机。这时可以选择主机元数据将其他信息从agent发送到服务器。

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

HostMetadata

HostMetadataItem

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

ZABBIX 自动注册案例

网络中有Windows和Linux主机通过配置主机元数据来区分Linux和Windows主机。执行动作将Linux 和Windows 主机分别 加入到不同群组 并分别关联“Template OS Linux”和“Template OS Windows” 模板自动注册上线。 

ZABBIX 配置

创建2个动作,

第一个动作:

名称:Linux主机自动注册

条件:主机元数据,如Linux

动作:链接到模板:Template OS Linux

第二个动作:

名称:Windows主机自动注册

条件:主机元数据,如Windows

操作:链接到模板:Template OS Windows

在这种情况下,您可以跳过“添加主机”的操作。链接到模板需要首先添加主机,服务器会自动执行“添加主机”的操作。

ZABBIX Agent配置

代码语言:javascript
复制
Server=zabbix server or proxy address
代码语言:javascript
复制
ServerActive=zabbix or proxy server address
代码语言:javascript
复制
#Hostname=ZABBIXProxy1
代码语言:javascript
复制
HostnameItem=system.hostname
代码语言:javascript
复制
HostMetadata=Linux
代码语言:javascript
复制
UnsafeUserParameters=1

说明:system.hostname是ZABBIX内置的一个自动获取主机名的方法,为了方便配置,建议打开此参数而关闭Hostname参数。

注意:HostnameItem的优化级低于Hostname,当两个参数都启用且配置的情况下,ZABBIX获取的主机名,将以Hostname为准

七、测试

在客户机上安装开启ZABBIX-AGENT

在ZABBIX的WEB界面看到:

已经成功自动发现和注册了。看下,是不是成功出图了

有数据,有图形

现在客户端的zabbix-agent关了,看下情况

查看主机和数据都已经自动下线了

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 阿冬的运维技术栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、网络发现
  • 二、环境说明
  • 三、配置网络发现规则
  • ZABBIX 网络发现案例
  • 四、主机自动加入主机组并关联模板
  • 五、下线自动注销设置
  • 六、ZABBIX 自动注册
    • ZABBIX 自动注册配置
      • Aactive agent自动注册动作
        • 使用主机元数据
          • ZABBIX 自动注册案例
          • 七、测试
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档