【企业级监控】Zabbix自动发现+自动注册+主被动详细

Zabbix监控自动化

资源列表

操作系统配置主机名IP所需软件
CentOS 7.92C4Gzbx192.168.93.101zabbix server 6.4.8
CentOS 7.92C4Gserver01192.168.93.102zabbix agent 6.4.8
CentOS 7.92C4Gserver02192.168.93.103zabbix agent 6.4.8

基础环境

  • 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  • 关闭内核安全机制
setenforce 0
sed -i "s/^SELINUX=.*/SELINUX=disabled/g" /etc/selinux/config

前言

  • 监控运维工作中所占的比例为30%左右,监控做的好,会省很多事情,让工作能有序地进行。理想的监控应该是自动化得,只需要配置规则,即可完成所有得事情,比如主机的自动添加和注册、模板的自动添加、分组的自动添加、出现故障后能自动处理和自动发送警告信息等。Zabbix就是具有以上自动化功能的一款监控软件,那么它是如何实现监控自动化的功能呢?

一、网络自动发现

Zabbix的网络自动发现是一个非常强大的功能,利用该功能可以完成以下工作。

  • 加快部署速度
  • 简化管理
  • 在快速变化的环境中避免过度管理

网络自动发现基于以下信息

  • IP地址范围
  • 可用外部服务(FTP、SSH、WEB、POP3、IMAP、TCP等)
  • 来自Zabbix agent的信息(仅支持为加密模式)
  • 来自SNMP agent的信息

在进行网络自动发现的过程中,涉及到的主要工作流程有Discovery(发现)和Action(工作),虽然网络自动发现能够帮助运维人员实现自动化的管理任务,但是网络自动发现无法实现网络拓扑的自动发现。

整个网络发现的流程分为4个阶段:

  • 网络发现:网络发现模块每次检测到服务和主机(IP)都会生成一个发现事件。
  • 执行工作:所有工作都是居于发现事件的,基于事件的网络发现工作,可以根据设备类型、IP地址、状态、运行事件等进行配置。
  • 创建主机:我们可以在执行工作过程中选择添加主机操作,包括添加主机至主机组、将主机链接到模板等。
  • 移除主机:从Zabbix2.4.0开始,如果已发现的实体不在自动发现规则的IP范围内,那么由网络发现规则创建的主机将会被自动删除。

1.1、客户机配置 Zabbix Agent

  • 所有客户端安装此软件包
rpm -ivh pcre2-10.23-2.el7.x86_64.rpm
rpm -ivh zabbix-agent-6.4.8-release2.el7.x86_64.rpm
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.93.101
ServerActive=192.168.93.101
Hostname=server01
[root@server01 ~]# systemctl start zabbix-agent.service 
[root@server01 ~]# systemctl enable zabbix-agent.service

1.2、创建并网络发现规则

  • 数据采集——>自动发现,点击创建发现规则后,按照下图添加自动发现规则
    在这里插入图片描述
    在这里插入图片描述

注意:自动发现规则的每次操作都会产生事件,如果配置了1000个IP,那么每次都会产生1000个事件,需要注意数据库的资源消耗,生产环境中不宜扫描太频繁。

该页面公有9项设置,含义如下:

(1)名称:网络发现规则的名称(可以自定义)

(2)、有agent代理程序自动发现:此处有两个选择,如果选择No proxy,那么这条规则将会由Zabbix server发起;如果选择某个Zabbix proxy,那么此条规则将由指定的这台Zabbix proxy执行。

(3)IP范围:网络探测的扫描范围。可以书写的格式有四种

  • 单个IP地址:192.168.93.101
  • IP地址范围:192.168.93.100-254
  • IP子网掩码范围:192.168.93.0/24
  • 列表:192.168.93.101、192.168.93.102、192.168.4.0/24

(4)更新间隔:定义Zabbix执行规则的频率

(5)检查:自动发现的网络扫描方式,参数设置如下
在这里插入图片描述

(6)设备唯一性准则:设备唯一标识,自动发现的清单将会以前面配置的某一项作为唯一性标识,防止重复发现。

(7)主机名称

(8)可见的名称

(9)已启用

1.3、创建自动发现工作

  • 告警——>动作——>发现动作,点击“创建动作”按钮,填写动作和操作
1.3.1、填写动作参数
  • 此选项中需要设置工作名称和动作条件
  • 在动作选项卡中,主要与前面创建的网络发现规则做关联。在条件中添加自动发现规则,选择创建好的发现规则即可。设置的参数如下:
    在这里插入图片描述

在这里插入图片描述

1.3.2、设置发现动作的操作
  • 在操作选项卡中添加发现后的动作,这里主要的动作有添加主机、添加主机到群组、与模板关联。其中,链接的模板用Linux by Zabbix agent,如果需要其他模板,可自行添加。
    在这里插入图片描述

1.4、验证

1.4.1、查看自动发现状态
  • 点击“监测”选项,再点击“自动发现”界面,可以看到已经发现的设备。
    在这里插入图片描述
1.4.2、查看监控到的主机
  • 点击“数据采集”选项,再点击“主机”界面。可以看到Zabbix已经按照模板对发现的主机执行监控
    在这里插入图片描述

1.5、备注1

1.6、备注2

  • 如果希望主机名称用hostname命令设置的主机名(不是IP地址),修改如下配置文件内容
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
#Hostname=server01
HostnameItem=system.hostname   # 190行取消注释
[root@server01 ~]# systemctl restart zabbix-agent.service 
  • 修改自动发现规则如下:
    在这里插入图片描述

  • 注意:在此处如果将可见名称设置为“主机名称”,在主机名称中,会显示为ip地址的形式。

1.7、验证

  • 此时加入zabbix的主机名字为主机名
    在这里插入图片描述

二、添加自动注册

  • 自动发现是实现自动添加agent端的一种办法,大大减轻了运维人员的劳动量,但是,如果我们不知道agent端的地址等信息,自动发现就无法实现了,因为要设置一个IP地址范围,网络自动发现需要扫描这个IP地址端。
  • 自动注册是指Agent主动且自动的向Server发起注册请求,与自动发现的功能一样,但是自动注册适用于特定的场景,如果某个条件未知(如agent的ip地址段,操作系统版本等,自动发下你需要知道这些信息),此时就无法适用于自动发现了;但是zabbix server的地址是已知的,所以可以让agnet主动发起请求,实现主机自动添加到zabbix中。
  • zabbix的自动注册对于agent是主动模式,Zabbix agnet会主动上报自己的信息,发给zabbix server
  • 但是在agent2的版本中,对应的agent2的被动模式,缺点是可能因为配置文件配置错误或者网络不通等原因导致Zabbix agent2可能找不到Zabbix server

2.1、删除前面创建的自动发现

  • 删除“告警”——>“动作”中刚才创建的发现动作
  • 删除“数据采集”——>“自动发现”中刚才的创建自动发现规则
  • 删除“数据采集”——>“主机”中自动发现的主机

2.2、客户端修改Agent

[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf 
Server=192.168.93.101
ServerActive=192.168.93.101
Hostname=server01
[root@server01 ~]# systemctl restart zabbix-agent.service 
# 备注
自动注册属于agent端的主动模式的功能,所以要设置ServerActive参数
可选参数:
HostnameItem=system.hostname:获取主机名的Key,当Hostname参数设置时,此参数无效
HostMetadata=Linux Linux_host:主机元数据标识
HostMetadataItem=system.uname:获取主机内核名称的Key,当HostMetadata设置时,此参数无效

2.3、在Web管理界面创建自动发现注册动作

  • 告警——>动作——>自动注册动作,创建动作。
    在这里插入图片描述

  • 然后点击创建动作,填写名称、触发条件和操作。
    在这里插入图片描述

2.4、设置自动注册操作

  • 在操作选项卡中添加自动注册的动作,设置的内容和自动发现里面设置的基本一致,这里主要的动作有添加主机、添加到主机群组、与模板关联。其中,链接的模板用Linux by Zabbix agent,如果需要其他模板,可自行添加。
    在这里插入图片描述

2.5、验证

  • 数据采集——>主机
    在这里插入图片描述

三、主被动模式

3.1、主被动模式介绍

  • Agent程序有两种工作模式:主动模式和被动模式

  • 我们知道获取数据的方式有两种,一种是get,一种是push;在zabbix中描述主动监控和被动监控都是站在agent的一方描述的;我们把agent主动将数据发送给zabbix server这种方式采集数据,叫做主动监控;把zabbix server向zabbix agent获取数据的方式叫做被动监控,这种方式只有zabbix server周期性的请求zabbix agent,zabbix agent才会响应对应的数据给zabbix server,如果zabbix server不请求,则zabbix agent不会发送数据给zabbix server;而主动监控不管zabbix server请不请求agent,agent它都会以指定事件频率向server推送数据;默认zabbix是使用的被动监控,这也意味着zabbix server要不停的去请求各zabbix agent去采集数据,否则就没有数据。

  • Zabbix主动模式示意图如下所示:
    在这里插入图片描述

  • 在被动模式下,zabbix-agent监听10050端口,等待zabbix-server服务器的10051端口的监控信息收集请求;

  • 在主动模式下,zabbix-agent收集监控信息并主动将数据传递给zabbix-server所在服务器的10051端口。此时agent端不再监听10050端口

  • zabbix-agent默认工作在被动模式下

3.2、被动模式的缺点

在被动模式下是存在一些问题的,当服务端监控的主机到达一定数量之后,由Server端去收集数据(被动模式),Zabbix出现严重的性能问题,主要表现如下:

  • 当被监控端到达一个量级的时候,Web操作很卡,容器出现502
  • 图层断裂
  • 开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会出现问题

所以下面主要往两个优化方式考虑:

  • 添加proxy节点或者Node模式做分布式监控
  • 调整Agentd为主动模式

3.3、主动模式的设置

3.3.1、删除前面创建的自动注册
  • 删除“告警”——>“动作”中刚才创建的自动注册动作

  • 删除“数据采集”——>“主机”中自动注册的主机

3.3.2、在被监控端调整Agent为主动模式
[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
#Server=192.168.93.101		# 主动模式需要注释掉此行
StartAgents=0		# 为server端的连接开启的进程,0表示关闭被动模式
ServerActive=192.168.93.101		# 主动模式的IP地址
Hostname=server01		# 客户端hostname,不配置则使用主机名
[root@server01 ~]# systemctl restart zabbix-agent.service 
  • 查看zabbix agent进程,此时已经没有了agent进程(在主动模式下,agent不再监听10050的端口)
[root@server01 ~]# netstat -anpt | grep 10050
3.3.3、添加主机
  • 模板选择带有active的(本次使用的模板为Linux by Zabbix active)
    在这里插入图片描述
    在这里插入图片描述

  • 可以在监控中看到监控数据,选择监测——>主机——>图形

  • 注意:刚添加的数据可能看的不明显,等几分钟就可以看到。

  • 注意:在主动模式下,监控的主机的状态“ZBX”不会显示为绿色

3.3.4、查看主机添加结果
  • “数据采集”——>“主机”,查看监控到的主机列表
    在这里插入图片描述
3.3.5、查看检测到的数据
  • “检测”——>“主机”,找到主机,查看“最新数据”和“图形”
    在这里插入图片描述
    在这里插入图片描述
  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值