小阿轩yx-Zabbix监控自动化

52 篇文章 0 订阅
1 篇文章 0 订阅

小阿轩yx-Zabbix监控自动化

前言

  • 监控在运维工作中所占的比例为 38%左右
  • 监控做得好,会省很多事,让工作能有序地进行理想的监控应该是自动化的,只需要配置规则,即可自动完成所有的事情

比如主机的自动添加和注册、模板的自动添加、分组的自动添加、出现故障后能自动处理和自动发送告警信息等。

  • Zabbix 就是具有以上自动化功能的一款监控软件

它是如何实现监控自动化的功能呢? 

网络自动发现

  • Zabbix 的网络自动发现是一个非常强大的功能

利用该功能可以完成以下工作

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

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

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

进行网络自动发现的过程中,涉及到的主要工作流程有

  • Discovery(发现)
  • Action(动作)

虽然网络自动发现能够帮助运维人员实现自动化的管理任务,但是网络自动发现无法实现网络拓扑的自动发现。

整个网络发现的流程可以分成 4 个阶段

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

恢复上一章部署监控环境的快照

客户机配置 Zabbix Agent

[root@server01 ~]# vim /etc/zazbbix/zabbix_agentd.conf
Server=192.168.10.108
ServerActive=192.168.10.108
Hostname=server01
  • Server=192.168.10.108

重启服务

[root@server01 ~]# systemctl restart zabbix-agent

创建网络发现规则

  • 数据采集→自动发现→,点击创建发现规则后,按照下图填写自动发现规则

自动发现规则的每次扫描都会产生事件

如果配置了1000个IP,那么每次都会产生1000个事件,需要注意数据库的资源消耗

生产环境中不宜扫描太频繁。

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

  • 名称:网络发现规则的名称
  • 有 agent 代理程序自动发现:此处有两个选择,如果选择No proxy,那么这条规则将会由 Zabbix server 发起;如果选择某个Zabbix proxy,那么此条规则将由指定的这台 Zabbixproxy 执行。 
  • IP 范围:网络探测的扫描范围。可以书写的格式有四种 
  • 单个 IP 地址:192.168.10.102
  • IP 地址范围:192.168.10.1-255
  • IP 子网掩码范围:192.168.10.0/24
  • 列表:192.168.10.101、192.168.10.102、192.168.4.0/24 
  • 更新间隔:定义 Zabbix 执行规则的频率。
  • 检查:自动发现的网络扫描方式,参数设置如下

  • 设备唯一性准则:设备唯一标识,自动发现的清单将会以前面配置的某一项作为唯一性标识,防止重复发现。
  • 主机名称
  • 可见的名称
  • 已启用

创建自动发现动作

  • 告警具体→动作→发现动作,点击“创建动作”按钮,填写动作和操作
填写动作参数
  • 此选项中需要设置动作名称和动作条件。
  • 动作选项卡中,主要与前面创建的网络发现规则做关联。
  • 在条件中添加自动发现规则,选择创建好的发现规则即可。

设置的参数如下

设置发现动作的操作

 在操作选项卡中添加发现后的动作,这里主要的动作有

  • 添加主机
  • 添加到主机群组
  • 链接到模板

其中,链接的模板用 Linux by zabbix agent,如果需要其它模板,可自行添加。

验证

查看自动发现状态
  • 点击“监测”选项,再点击“自动发现”界面,可以看到已经发现的设备

查看监控到的主机
  • 点击“数据采集”选项,再点击“主机”界面
  • 可以看到 Zabbix 已经按照模板对发现得到主机执行监控

如果在自动发现规则中设置的可见名称为 “zabbix 客户端 "system.uname"”,最终在主机名称中看到的是

  • Linux server01 3.10.0-1160.e17.x86 64 1 SMP Mon Oct 19 16 18 59 UTC 2020 x86 64
  • 其中,server01是用 hostname 命令为该主机设置的主机名。

如果希望主机名称用 bostname 命令设置的的主机名(不是PP地址)

修改自动发现规则如下

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

添加自动注册

自动注册

  • 指 Agent 主动且自动的向 Server 发起注册请求,与自动发现的功能一样,但是自动注册适用于特定的场景
  • 如果某个条件未知(如 agent 的ip地址段,操作系统版本等,自动发现需要知道这些信息),此时就无法适用自动发现了;
  • 但是 zabbix server 的地址是已知的,所以可以让 agent 主动发起请求,实现主机自动添加到 zabbix 中。
  • 自动发现是实现自动添加 agent 端的一种办法,大大减轻了运维人员的劳动量
  • 如果我们不知道 agent 端的地址等信息,自动发现就无法实现了,因为要设置一个 IP 地址范围,网络自动发现需要扫描这个 IP 地址段。

Zabbix 的自动注册对于 agent 是主动模式,Zabbix agent 会主动上报自己的信息,发给 zabbix server。

但是在 agent2 的版本中,对应的是 agent2 的被动模式

缺点

  • 可能因为配置文件配置错误或者网络不通等原因导致 Zabbix agent2 可能找不到 Zabbix server。

删除前面创建的自动发现

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

客户端修改 Agent

[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
Server=192.168.10.108
ServerActive=192.168.10.108
Hostname=server01
  • ServerActive=192.168.10.108

自动注册属于 agent 端的主动模式的功能,所以要设置 ServerActive 参数。 

可选参数

  • HostnameItem=system.hostname        ##获取主机名的 key,当 Hostname 参数设置时,此参数无效
  • HostMetadata=Linux Linux host        ##主机元数据标识
  • HostMetadataItem=system.uname。##获取主机内核名称的 key,当 HostMetadata 设置时,此参数无效

在 Web 管理界面创建自动注册动作

  • 告警 --> 动作 --> 自动注册动作,创建动作。
  • 然后点击创建动作,填写名称、触发条件和操作

设置自动注册操作

  • 在操作选项卡中添加自动注册的动作,设置的内容和自动发现里面设置的基本一致
  • 这里主要的动作有添加主机、添加到主机群组、链接到模板
  • 链接的模板用 Linux by Zabbix agent

如果需要其它模板,可自行添加。

验证

  • 数据采集 --> 主机

主被动模式介绍

Agent 程序有两种工作模式

  • 主动模式
  • 被动模式

我们知道获取数据的方式有两种

  • 一种是 get
  • 一种是 push

zabbix 中描述主动监控和被动监控都是站在 agent 的一方来描述的

主动监控

  • agent 主动将数据发送给 zabbix server
  • 不管 zabbix server 请不请求 agent,agent 它都会以指定时间频率向 server 推送数据;默认 zabbix 是使用的被动监控,这也意味着 zabbix server 要不停的去请求各 zabbix agent 去采集数据,否则就没有数据。

被动监控

  • 把 zabbix server 向 zabbix agent 获取数据
  • 这种方式只有 zabbix server 周期性的请求 zabbix agent,zabbix agent 才会响应对应的数据给 zabbix server ,如果 zabbix server 不请求,则 zabbix agent 不会发送数据给 zabbix server ;

Zabbix 主被动模式图

被动模式下

  • zabbix-agent 监听 10058 端口,等待 zabbix-server 服务器的 10051 端口的监控信息收集请求;

主动模式下

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

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

被动模式的缺点

当服务端监控的主机达到一定数量之后,由 Server 端去收集数据(被动模式),Zabbix 会出现严重的性能问题

主要表现如下

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

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

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

主动模式的设置

删除前面创建的自动注册

  • 删除 “告警” --> “动作” 中刚才创建的自动注册动作
  • 删除 “数据采集” --> “主机” 中自动注册的主机

在被监控端调整 Agent 为主动模式

[root@server01 ~]# vim /etc/zabbix/zabbix agentd.conf
#主动模式需要注释掉此行
#Server=192.168.10.108
##为server 端的连接开启的进程数,0代表关闭被动模式
StartAgents=0
#主动模式的 serverip 地址
ServerActive=192.168.10.108
#客户端的 hostname,不配置则使用主机名
Hostname=server01
  • #Server=192.168.10.108
  • StartAgents=0

重启服务

[root@server01 ~]# systemctl restart zabbix-agent

查看 zabbix agent 进程,此时已经没有了 agent 进程

[root@server01 ~]# netstat -anpt | grep zabbix
  • 主动模式下,agent 不再监听 10050 的端口。

添加主机

  • 模板选择带有 active 的(本案例使用的模板为 Linux by Zabbix agent active

  • 可以在监控中看到监控数据,选择监测 --> 主机 --> 图形
  • 刚添加的数据可能看的不明显,等几分钟就可以看到。

查看主机添加结果

  • “数据采集” --> “主机”,查看监控到主机列表

  • 在主动模式下,“ZBX” 不会显示为绿色。

查看检测到的数据

  • “检测” --> “主机”,找到主机,查看 “最新数据” 和 “图形”

Zabbix 邮件告警

  • 日常的 IT 运维过程中时常要关注各个设备和系统的运行情况
  • 但是,我们不希望一直盯着触发器或者事件列表,这样我们就没有空闲时间去处理其他工作。
  • 那么能不能摆脱这种束缚,无论我们在什么地方,在发生比较严重的事情的时候能够自动的接收到通知。
  • 并且,当发生问题时,我们希望所有相关人员都能收到通知。
  • 也就是说,当配置的监控超过触发器设定的阈值则触发某种动作,而这个动作可以是发送告警信息的动作。

那么 zabbix 在监控到异常之后,就能够自动的触发一个告警信息发给我们,或发送给整个运维团队。
自定义的监控项默认不会自动报警,首页也不会提示错误,需要配置触发器与报警动作才可以自动报警。

触发器本质

  • 就是一个条件判断,对于不同的监控数据来说,我们要给他设置不同的触发器
  • 比如监控内存,当内存小于 580M,就满足判断条件,触发报警,并可以执行报警动作。

实现报警所需的条件

告警媒介
  • 要想让 Zabbix 把告警信息发送出去,就要有一个接收信息的媒介,目前我们常见的告警媒介有邮箱、钉钉、企业微信等。
触发器(trigger)
  • 触发器实际是一个条件判断表达式,如判断内存不足 300M,用户超过 30 个等;当触发条件发生后,会导致一个触发事件,触发事件会执行某个动作。
动作(action)
  • 触发器的条件被触发后的行为;可以是发送邮件、也可以是重启某个服务等。

配置告警媒介

设置告警媒介参数

  • “告警” --> “媒介” --> 选择 Email

设置认证时,密码的位置要使用邮箱的授权码,而不是密码,设置完后点击更新,注意要启用 Email 媒介。

启用此媒介并测试邮件发送

设置用户报警媒介

  • “用户” --> “用户” --> 选 Admin,添加用户的报警媒介

设置动作

添加动作

  • “告警” --> “动作” --> “触发器动作” --> 创建动作
  • 按照图中两个步骤修改,然后点添加。
  • 条件使用 “触发器”,并选择对应的主机(或主机组),勾选对应的触发器。

设置操作

测试

  • 关闭 server01 主机,查看邮箱接收到的报警邮件。

小阿轩yx-Zabbix监控自动化

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值