Zabbix自定义监控项(模板)

虽然Zabbix提供了很多的模板(监控项的集合),但是由于模板内的监控项数量太多不好梳理且各种模板质量参差不齐,还是建议针对自己要监控的主机或产品自定义模板(Linux服务器主机的监控使用默认模板就可以)。

之前一篇笔记描述了如何安装和配置zabbix架构,详见:Zabbix-3.4简介及安装配置 ,本文分四个小节描述如何自定义监控项:

  • 文章概述
  • 自定义模板的步骤
  • 如何配置告警
  • 监测数据的可视化

一、文章概述

什么是模板?模板就是一系列定义好了的监控项+触发器的集合,例如zabbix定义了Linux OS的监控模板,可以监控Linux的系统状况。官网也提供了很多常见模板的下载。

我把zabbix的模板大致分三类:

  • zabbix自带的内置模板,这类模板不但有官方定义的item key和trigger,还内置了获取item value的命令。最典型的就是Linux OS的监控,这个模板的大多数监控项无需你自己配置监控信息的获取命令,即插即用。
  • zabbix提供的常用模板,此类模板zabbix只是为你定义好了监控项的key和key的数据类型(key只有unsigned number,float,character,log,text五种类型),并未提供内置的item value获取功能,需要你手动为这些key编写获取监控信息的命令。
  • 自定义的模板,此类模板是完全由用户自己创建的模板,你可以自定义个性化的key名字和返回类型,并通过特定的命令或脚本或应用提供的接口去获取监控信息。

个人推荐的是针对特定的产品自己创建特定的模板,这样才能实现灵活定制。你可以选择import网上提供的各种模板,也可以将自己搞的模板export出去供他人使用。

本文以监控mysql QPS为例,自己定义一个mysql的监控模板(zabbix有mysql的监控模板,本例只是为了示例)。

二、自定义模板步骤

1.创建模板

模板名称自定义为MySQL_MONITOR,隶属的主机组选择Templates/Databases就好(或都不选择),属于哪个主机组不影响使用,模板是对任意主机组内的主机可用的。

Zabbix自定义监控项(模板)_第1张图片

2.创建模板内的监控项

下面就是建好的模板,可以看到模板主要包含items,trigger等对象,其他的暂不需要太多关注。

Zabbix自定义监控项(模板)_第2张图片

由于我们就是用于监控mysql的,因此这个模板内没必要建applications(applications是用于对items分组的),直接建个item,这里只需要定义个name和key以及type就好了:

Zabbix自定义监控项(模板)_第3张图片

此时在看MySQL_MONITOR模板就会发现多了一个监控项(item)。

3.获取监控值

监控项已经建好了,怎么从客户端获取监控信息呢?首先需要修改agent端的配置文件并重启agentd:

vi zabbix_agentd.conf
UserParameter=mysql.qps,mysql -uleo -pleo -e "show global status like 'Queries'"|grep Queries|awk '{print $2}'

UserParameter的格式是固定的,有以下两种:

UserParameter=key,command
UserParameter=key[*],command

其中第一种很好理解,key就是你定义的监控项key,本例中就是mysql.qps,command就是获取监控信息的命令,本例中就是mysql -uleo -pleo -e "show global status like 'Queries'"|grep Queries|awk '{print $2}'

第二种是第一种格式的进阶版,允许你为command提供输入参数,这里都是位置传参的可以定义从$1-$9的9个参数,这种格式的好处在于你可以使用一个接受位置传参的脚本获取多个监控值,而不用为每个监控项都写一个获取监控值的脚本。

4.为主机添加监控项

监控项设置好之后,只需要把监控项加入主机即可,这样就可以实现对主机对应item的监控。

一般来说可以直接在主机界面create item,但是本例为了方便演示如何集成监控项到模板使用的是template,因此直接把模板应用到主机即可。注意下图要点击add然后update才能更新主机所用的模板们。

Zabbix自定义监控项(模板)_第4张图片

5.查看监控数据

如果获取监控值的脚本或命令运行正常,且返回值与key type一致,那么现在在仪表板的latest data就可以看到监控的值了:

Zabbix自定义监控项(模板)_第5张图片

6.完善监控项

当前监控的mysql qps其实只是queries并没有p(er)s(econd),如果用queries/uptime得到的也只是一个平均QPS,而我们一般想要监测的都是类似于过去30s平均qps这种更有意义的值,如果要用脚本或者程序脚本来获取的话工作量就大了,而用zabbix很简单。

我们去item的界面进行修改(如果很熟悉要监控的产品的话其实创建模板时就可以为item设置preprocessing):

Zabbix自定义监控项(模板)_第6张图片

只需要对获取的监控值做预处理就可以了,我们选择change per second,zabbix server就会自动将持续获取的监控值们进行处理,得到一个每秒均值,由于我们的qps收集间隔是30s,最终得到的qps就是过去30s数据库的平均qps。

现在再去看latest data看到的就是qps的30秒平均值了,更多地数据预处理步骤的解释可以参考官网链接:https://www.zabbix.com/documentation/3.4/manual/config/items/item

三、告警配置

在第二步中描述的是如何设置模板及监控项,那么在监控项超过阈值之后如何进行告警呢?涉及的zabbix组件主要有3个:trigger,action,media type,此外还涉及到user实体。

1.如何设置触发器?

我们直接在模板中添加触发器,触发器的触发条件可以是一个监控项超过阈值或多个监控项超过阈值的逻辑联合条件,本例只演示mysql.qps超过阈值的告警。

Zabbix自定义监控项(模板)_第7张图片

红色箭头标出的就是需要注意的地方,其中severity可以选择告警的严重性(没其他作用,仅仅是标示这个告警有多重要的),本例选择当监控值超过0.2时就告警......使用expression constructor还可以实现条件的逻辑联合,例如AND,OR等。

2.查看告警效果

默认告警信息是直接显示在dashboard的,我们到mysql里噼里啪啦一顿操作把qps拉上来,然后去仪表板看下:

Zabbix自定义监控项(模板)_第8张图片

可以看到告警信息了,他会告诉你这个告警持续的时间,如果问题被解决,那么告警会变为绿色,并在仪表板显示一段时间后消失:

Zabbix自定义监控项(模板)_第9张图片

3.设置邮件告警

默认告警只显示到仪表板,如果想要实现短信或邮件告警还需要额外配置组件。

3.1创建media type并添加到user

默认zabbix自带了email,jabber,sms媒体类型,但我没用因为不知道怎么设置发件箱的密码,我选择新建脚本类型的media type,使用linux自带的sendmail或者自己编写SendMail.sh脚本来发送邮件。

Zabbix自定义监控项(模板)_第10张图片

上述的3个参数是zabbix预定义的3个宏,有这3个宏足够了,我们在使用脚本发送邮件时只需要按顺序把脚本的输入参数设置为这3个参数即可。如果你用的邮件发送脚本的参数不是此顺序,那么用shell再包装一层即可,确保脚本输入参数是这3个。

Ps:Zabbix内置的完整宏列表参见:https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location

media type创建完毕后需要为user添加媒体类型,其中NIWAHD是问题严重程度的英文首字母,邮件告警发送的email地址也是在user实体这里配置的:

Zabbix自定义监控项(模板)_第11张图片

3.2创建action

 建好了media type,并为用户添加上就完事了吗?不,那只是提供了邮件发送的功能和通道,为了实现监测值异常告警还需要添加action,所谓action就是当触发器被触发时,告警不止显示在仪表板,还会通过邮件告警媒介将特定的信息发送给指定的user实体。

Zabbix自定义监控项(模板)_第12张图片

一个功能完整的action可以按上图的小标题分3部分(第4个忽略):action condition,operations和recovery operations,分表表示动作触发的条件,触发后的具体操作,问题恢复时的操作。

Zabbix自定义监控项(模板)_第13张图片

上边的message可以自定义的更丰富些,可以用中文编写,配置完之后需要点击add按钮添加,本图只是展示如何配置。其中{}括起来的都是zabbix的宏。

Zabbix自定义监控项(模板)_第14张图片

至此action配置完毕,只要下次触发器被触发,告警就不会只出现在dashboard了,邮件告警也会被发送至指定用户。

Zabbix自定义监控项(模板)_第15张图片

 Zabbix自定义监控项(模板)_第16张图片

四、数据可视化

为了更好的观察监控数据的变化趋势,我们需要用图表来展示数据,zabbix提供了这方面的功能。

虽然可以在latest data中通过点击每个监控项的graph按钮查看数据的图表,但是这种方式看起来很麻烦,且只能查看单一监控项的变化图表,而且这种graph不能在dashboard显示。

为了更好地观察数据我们要在模板中添加graph组件:

Zabbix自定义监控项(模板)_第17张图片

graph type的4种选项分别表示普通线型图,柱状图,饼状图和爆炸饼状图,添加items可以实现在一副图中显示多个监控项的历史值,本例只有一个监控项如上所示。

建好graph之后就可以在dashboard中添加graph了:

下边第四个窗口就是我新加的展示窗口:

Zabbix自定义监控项(模板)_第18张图片

转载于:https://www.cnblogs.com/leohahah/p/11207367.html

你可能感兴趣的:(Zabbix自定义监控项(模板))