加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 电商 > 正文

从模板开始打造自己的Zabbix监控

发布时间:2021-01-12 04:15:24 所属栏目:电商 来源:网络整理
导读:《从模板开始打造自己的Zabbix监控》要点: 本文介绍了从模板开始打造自己的Zabbix监控,希望对您有用。如果有疑问,可以联系我们。 1. 简介 监控一直在不同的层面为我们的运维工作发挥着重要的作用: 网络层监控,及时发现网络间的访问质量(如我们之前介绍的
副标题[/!--empirenews.page--]

《从模板开始打造自己的Zabbix监控》要点:
本文介绍了从模板开始打造自己的Zabbix监控,希望对您有用。如果有疑问,可以联系我们。

1. 简介

监控一直在不同的层面为我们的运维工作发挥着重要的作用:

  • 网络层监控,及时发现网络间的访问质量(如我们之前介绍的全国maps网络监控);
  • 服务器监控,了解服务器各项性能参数(如常见的zabbix、cacti、nagios、ganglia等);
  • 应用性能监控,深入监测具体业务的性能情况(如我们之前提到的APM监控系统)

其中,服务器监控作为一种传统的监控类型,我们结合不同场景中也用到了多种方案.而在众多方案中,zabbix由于其强大的功能和灵活的自动化特性,尤其得到我们的广泛使用.

为了打造出适合自己的zabbix监控体系,如何去配置和优化是一个比较复杂的课题.下文从监控模板的角度去简单介绍下我们的一些思路,以便抛砖引玉.

2. 优化现有模板

zabbix自带了各类操作系统的监控模板,一般可以直接拿来用,但如果要求更精细的监控,就要对自带模板进行修改了.
此外zabbix在网上还有大量的第三方模板可以使用:
https://zabbix.org/wiki/Zabbix_Templates
https://share.zabbix.com/
利用这些第三方模板可以很好地实现官方模板所没有的各类监控:

  • 更多的系统类型,如各类网络设备/VMware
  • 硬件状态,如磁盘IO/磁盘健康状态/阵列状态
  • 各类软件服务,如Nginx/PHP/Memcached/Redis/Hadoop/Elasticsearch

充分利用第三方模板能避免重复造轮子,但往往第三方模板的监控并不完全符合自己的需求,这时也要自行修改.

下面以自带的Template OS Linux为例进行举例.同时为了避免修改原始模板,复制为新模板Template OS Linux Custom进行优化.

2.1 优化监控项

为了降低zabbix server的压力,通常建议把原有监控项统一修改为客户端主动式(Active).这里可以用到模板的批量更新功能:

然后是具体监控项的优化.比如自带模板通过LLD(Low-level discovery)实现了所有网卡的流量监控,可以在此基础上增加网卡速率的监控.直接在模板里新增一个监控项原型:

新监控项可以对应配置下触发器,比如这里实现了网卡速率降到1000M以下的报警

注意新增监控的同时需要定义客户端的监控项:
network_agentd.conf

UserParameter=net.if.speed[*],sudo /sbin/ethtool $1 |grep Speed|awk ‘{print $$2}’|sed ‘s@Mb/s@@’

2.2 优化触发器

对于已有触发器,建议结合自己的实际场景修改报警阈值,此外可以根据需求增加新的触发器.zabbix的触发器支持大量功能函数,因此可以灵活设计自己的触发器表达式.

比如自带模板已经有系统时间的监控项(Host local time),但并没有对时间出现偏差的故障进行报警.这时我们只需要在模板上增加一个触发器,让被监控机器的系统时间与zabbix server的系统时间偏差超过2分钟时发生报警:

zabbix 3.0起增加了预测性的触发器函数,可以充分利用该特性优化监控.如根据过去1小时的趋势来预测未来1小时是否会触发内存不足的报警:

有时候不同项目的报警阈值要求并不一样,除了分成不同的模板或者单独调整具体主机的触发器,其实还可以结合宏实现报警阈值的动态调整.如默认的可用swap是小于50%才报警,我们改为用宏{$SWAPWARN}定义报警阈值

然后在模板定义一个宏,设置默认值50,那么默认情况下仍然是小于50%才报警.

但如果对于具体某个主机,设置了其他的宏值如10,那么这个主机则会在可用swap小于10%才报警.

触发器还有一个选项是严重性,用于设置该触发器的严重程度,这在需要针对不同阈值设置不同报警程度的场景下就特别有用.此时为了收敛报警可以设置触发器的依赖关系,即低严重性触发器依赖于高严重性触发器.这样,当出现高严重性报警时,相关联的低严重性报警就不会重复触发,从而减少报警消息量.

zabbix 3.0之后,触发器原型也支持依赖关系.比如我们可以对警告级别和严重级别的磁盘空间报警触发器设置依赖:

 

3. 改造模板支持自动发现

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读