运维基础——Zabbix Network Discovery

xiaoxiao2021-02-28  67

网络发现简介

如果有很多台主机,不想一台台主机去添加,那就希望zabbix能自动添加主机。网络发现便是这个功能。 设置

客户端安装了agent或者snmp。server扫描配置好的ip段自动添加host自动给host link模板自动加到主机组里

zabbix网络发现基于如下信息

ip范围可用的外部服务来自zabbix agent的信息来自snmp agent的信息 网络发现由两个阶段组成:discovery和actions

一、Discovery发现

zabbix定期扫描网络发现规则中的ip范围,每个规则中都定义了一组需要检测的服务,在这些ip范围内一一扫描。网络发现每次检测到service和host都会生成一个discovery事件:

时间条件Service Upzabbix检测到可用的serviceService Downzabbix无法检测到serviceHost Up某个ip上至少有一个service是up状态Host Down所有service都无响应Service Discovered一个service首次被发现或者在维护后从新归队Service Lostservice在up之后又丢失了Host Discovered一个host首次被发现或者在维护后从新归队Host Lost一个host在up之后又丢失了

二、Actions动作

所有的action都基于discovery,如:

发送通知添加/移除主机启用/禁用主机添加主机到组从组中移除主机主机link模板/unlink模板执行远程脚本命令

1.创建主机

discovery发现主机事件产生之后,接下来需要执行discovery action,在action中选择添加主机操作、并且将主机加入某个组以及link某个模板等等。更具体操作请关注下一篇文章。那么主机名怎么定义呢?首先监控端(server/proxy)通过ip泛解析主机名(如果失败了,不会重新尝试),如果解析成功了,那么zabbix将会使用这个主机名,否则直接使用ip地址。如果主机名相同怎么办?比如都叫ttlsa-server,那么第一台主机名会定义为ttlsa-server,第二台为ttlsa-server_2,第三台为ttlsa-server_3,以此类推。action配置里的条件包含设备类型、IP、状态、uptime/downtime等等。

2.添加主机接口

主机接口规则如下:

服务检测 - 例如,成功检测到一个SNMP服务,那么创建snmp接口如果主机同时UIzabbix agent和snmp请求作出响应,那么会同时创建这两种接口如果使用agent或者snmp作为唯一性指标,先通过哪个接口发现主机,那么哪个接口就作为默认接口,其他的作为附加接口。如果一开始只响应zabbix agent的检测,那么他只会创建agent接口。如果后面响应了snmp检测,那么他又会增加snmp接口如果有三台独立的主机A\B\C,一开始使用IP地址来作为唯一标识。可以看到discovery有三条记录。此时我们修改发现规则,让他们有相同的唯一标识。例如自定义一个keysystem.dis,这个key统一输出值"ttlsa",这样A的接口成了默认的,B和C都变成了附加到A主机上。我们可以发现一个很明显的变化。在discovery接口中依旧有3条记录,但是"discovered device"这列显示的A主机的接口,”monitored host“这列显示的都是A主机的名称,”Uptime/downtime“这列只有A主机有值,B和C都为空。从这里我们能看到唯一标识是多重要,如果唯一标识不是唯一,那么有的主机会被认为是同一台。

问题处理

Zabbix discoverer processes 75% busy

找到zabbix_server下的zabbix_server.conf,找到里面的StartDiscoverers,默认值是1,适当增大,3或者5都行,然后重新启动一下zabbix_server,看下效果。

参考文章: http://www.ttlsa.com/zabbix/zabbix-discovery-introduction/

转载请注明原文地址: https://www.6miu.com/read-38127.html

最新回复(0)