12-zabbix自动发现和自动注册
Zabbix设置自动添加主机两种方法:自动注册、自动发现。
手动添加客户端非常耗时间,增加人力、时间成本。为了满足监控企业成千上万台服务器,zabbix提供了自动发现与自动注册的功能,自动批量发现局域网中的服务器,并自动添加到zabbix监控平台
自动发现 ( 被动模式 ) :由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备。实现自动将发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目 ( item ) 、自动创建图像等功能。缺点:当 Agent服务器过多的时候采用自动发现,zabbix-server压力会比较大,自动添加主机进度就会非常慢。
自动注册 ( 主动模式 ) :Zabbix Server等待Zabbix Agent主动上报。由客户端主动发起,客户端必须安装并启动Agentd,否则无法被自动注册添加至主机列表。对于使用SNMP的要采用自动发现。缺点:agent有可能找不到Server。
注:主动还是被动是基于
agent而言,不管是主动还是被动模式都是在agent端进行配置
1. 自动发现
1.1 自动发现概述
Zabbix是一个广泛使用的监控系统,它支持多种自动发现方式,其中之一就是通过自动发现功能发现被监控对象。自动发现功能能够提高监控系统的效率,因为它能够自动发现并添加新的主机或服务,使得管理员无需手动添加监控对象。
1.2 自动发现应用场景
自动发现功能适用于那些需要频繁添加新主机或新服务的场景,比如云端环境、容器化环境、动态扩展的集群等。
举个例子,当一个新的物理机接入集群时,自动发现功能会自动检测该物理机并将其添加到监控系统中。同样地,当一个新的服务添加到集群中时,自动发现功能也会自动检测该服务并将其添加到监控系统中。
当网络发现正确设置后你可以 :
加快
Zabbix部署简化管理
无需过多管理就能在快速变化的环境中使用
Zabbix
Zabbix网络发现基于以下信息 :
IP范围
可用的外部服务 (
FTP,SSH,WEB,POP3,IMAP,TCP等 )来自
zabbix agent的信息 ( 仅支持未加密模式 )来自
snmp agent的信息
不支持 : 发现网络拓扑
zabbix网络发现总结
网络发现速度太慢
轮询扫描网段
如果网段中存在不通的主机,会出现卡顿并且造成后续新增的服务器无法加入节点
会导致server性能变缓慢,影响server性能
1.3 自动发现规则
自动发现规则主要针对企业批量添加主机,如果使用传统办法去单个添加设备、分组、项目、图像……,这是一个任务量巨大的一个工程,由此引入自动发现规则。
自动发现规则由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器、设备,实现自动发现主机、自动将主机添加到主机组、自动加载模板、自动创建项目 ( item ) 、自动创建图像等功能。
1.4 自动发现的实现方式
网络发现由两个阶段组成:发现 ( discovery ) 和动作 ( actions ) 。
1.4.1 基于SNMP的自动发现
SNMP ( Simple Network Management Protocol,简单网络管理协议 ) 是一种网络管理协议,它可以用于收集和管理网络设备和服务器等信息。Zabbix可以通过SNMP自动发现被监控对象,并自动添加到监控系统中。
示例
UserParameter=.1.3.6.1.2.1.25.4.2,"/usr/bin/snmpwalk -v 2c -c public $1 .1.3.6.1.2.1.25.4.2" \ #SNMP自动发现硬盘
DiscoveryRuleName=SNMP Disk Discovery
Key=.1.3.6.1.2.1.25.4.2
Type=SNMPv2 agent
SNMPCommunity=public
SNMPOptions=
snmp_port=1611.4.2 基于agent的自动发现
Zabbix agent是一种用于从被监控主机收集信息并发送给监控系统的客户端程序。Zabbix可以通过agent自动发现被监控主机,并自动添加到监控系统中。
示例
DiscoveryRuleName=Zabbix Agent Processes
Type=Zabbix agent
Key=proc.num
UpdateInterval=60
Delay=3600
UserParameter=proc.num,/bin/echo $(/bin/ps aux | /bin/grep -v grep | /bin/grep $1 | /usr/bin/wc -l) #自动发现Zabbix agent运行的进程数量1.4.3 基于JMX的自动发现
JMX ( Java Management Extension ) 是用于监控Java应用程序的一种标准。Zabbix可以通过JMX自动发现Java应用程序,并自动添加到监控系统中。
示例
DiscoveryRuleName=JMX Tomcat Discovery
Type=JMX
Key=JMXObjectName
JMXUrl=service:jmx:rmi:///jndi/rmi://$1:$2/jmxrmi
JMXUser=zabbix
JMXPassword=zabbix
JMXObjectName=Tomcat:name=*
JMXTimeout=30s #自动发现Tomcat应用程序1.5. 自动发现配置注意事项
在使用自动发现功能时,需要注意以下几点:
Zabbix的自动发现规则需要事先配置好,并指定对应的操作,如添加、更新或删除监控对象等。Zabbix的自动发现功能需要管理员有足够的权限才能被运行,因此需要管理员授予相应的权限。自动发现功能依赖于监控系统的运行环境,因此需要管理员事先配置好监控系统的环境。
1.6 配置实现自动发现
zabbix-server主动发现zabbix-agent
删除之前添加的
server2设备配置—动作—自动发现—启用

点击
Auto discovery Linux servers—添加触发条件—更新
配置—自动发现—
Local network
修改IP范围和时间间隔—已启功—更新

配置—主机—等待
1min左右,刷新页面—server2被自动发现
Zabbix的自动发现功能是一个非常强大的工具,它可以自动发现被监控对象并自动添加到监控系统中,提高了监控系统的效率。管理员可以根据不同的被监控对象选择不同的自动发现方式,如SNMP、agent和JMX等。在配置自动发现功能时,需要注意事先配置好自动发现规则并授权管理员对应的权限,以确保自动发现功能能够正常运行。
配置操作过程中可以发送以下宏的信息
默认标题
自动发现主机IP:{DISCOVERY.DEVICE.IPADDRESS}
消息内容
客户端名称: {DISCOVERY.SERVICE.NAME}
客户端端口: {DISCOVERY.SERVICE.PORT}
客户端状态: {DISCOVERY.SERVICE.STATUS}
操作动作
添加主机,添加主机组,链接模板,发送邮件,等等2. 自动注册
2.1 自动注册规则
Zabbix的自动注册规则主要用于Agent主动且自动向Server注册,适用于当前云环境下的监控。Zabbix-Server在收到Zabbix-Agent的注册请求时,如果没有收到IP地址的值,则使用Zabbix-Agent和Zabbix-Server建立TCP连接时使用的IP地址
2.2 zabbix配置自动注册
添加
zabbix-agentrpm -ivh zabbix-agent-4.4.1-1.el7.x86_64.rpm编辑
agent配置文件:vim /etc/zabbix/zabbix_agentd.conf 98 Server=172.25.254.1 #zabbix被动模式要来取的ip地址 ( zabbix-server ) 139 ServerActive=172.25.254.1 #zabbix主动模式要发送的ip地址 ( zabbix-server ) 150 Hostname=server3 systemctl start zabbix-agent netstat -antlp | grep 10050
在
zabbix-web中刷新—server3出现:这是上一步骤自动发现的结果,删除
server3
配置—自动发现—停用

配置—动作—自动注册—创建动作

动作—名称—触发条件—启用—添加

动作—操作—新的

添加主机—添加

添加到主机群组—选择群组—添加

与模版关联—选择模版—添加—更新


配置—主机—等待1min左右,刷新页面—server3自动注册成功

参考链接
第十一章 监控系统-zabbix自动化监控 - 年少纵马且长歌 - 博客园 (cnblogs.com)
构建企业级监控平台系列 ( 九 ) :Zabbix 自动发现与自动注册 (qq.com)