T E L : 0 1 0 - 5 1 6 6 3 5 7 3

服务器监控之zabbix

服务器监控之zabbix

时间:2020-05-15

1.1 Zabbix Web下的主机和模版以及监控项的添加方式

(1)创建一个模版

我们所有的功能几乎都是在模版中定义的

图片1.png 

我们再点进新创建的模版查看

模版里几乎可以设定我们需要的所有功能

 图片2.png 

图片3.png

(2)在模版里创建应用集

应用集的作用就是将众多的监控项进行一个分类,方便我们的管理

图片4.png 图片5.png图片6.png

(3)在模版里创建一个zabbix自带的监控项

 图片7.png 图片8.png

(4)监控项里的键值我们到底要如何写?我们需要学会照葫芦画瓢

我们选择一个系统模版Template OS Linux查看

图片9.png 图片10.png图片11.png图片12.png

(5)当然我们也可以自定义监控项的键值,但是并不推荐这样。因为,都是自己写太慢了。系统自带了很多键值我们要学会利用

自定义系统监控项的键值创建,请参考前一节的知识

1.2 Zabbix Web下触发器与表达式的编写方法

(1)avg

参数:秒或#num
支持类型:float,int
作用:返回一段时间的平均值

举例:avg(5):最后5秒的平均值avg(#5):表示最近5次得到值的平均值avg(3600,86400):表示一天前的一个小时的平均值

如果仅有一个参数,表示指定时间的平均值,从现在开始算起,如果有第二个参数,表示漂移,从第二个参数前开始算时间,#n表示最近n次的值

(2)last

参数:秒或#num
支持值类型:float,int,str,text,log
作用:最近的值,如果为秒,则忽略,#num表示最近第N个值,请注意当前的#num和其他一些函数的#num的意思是不同的。

last(0)等价于last(#1)last(#3)表示最近第3个值(并不是最近的三个值)

本函数也支持第二个参数time_shift,例如last(0,86400)返回一天前的最近的值。

如果在history中同一秒中有多个值存在看,Zabbix不保证值的精确顺序#num从Zabbix1.6.2起开始支持,timeshift从1.8.2起开始支持,可以查询avg()函数获取它的使用方法

(3)max

参数:秒或#num
支持值类型:float,int
描述:返回指定时间间隔的最大值。时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#)。从Zabbix1.8.2开始,函数支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法。
例如:max(#3)=0 返回3次值如果都是0则触发告警

(4)min

参数:秒或#num
支持值类型:float,int
描述:返回指定时间间隔的最小值。时间间隔作为第一个参数可以是秒或收集值的数目(前缀为#)。从Zabbix1.8.2开始,函数支持第二个可选参数time_shift,可以查看avg()函数获取它的使用方法。

(5)nodata

参数:秒
支持值类型:any
描述:当返回值为1表示指定的间隔(间隔不应小于30秒)没有接收到数据,0表示获取到了。
例:nodata(5m)=1 ===>5分钟之内获取不到数据就告警

(6)prev

参数:忽略
支持值类型:float,int,str,text,log
描述:返回之前的值,类似于last(#2)

(7)sum

参数:秒或#num
支持值类型:float,int
描述:返回指定时间间隔中收集到的值的总和,时间间隔作为第一个参数支持秒或收集值的数目(以#开始).从Zabbix1.8.2开始,本函数支持time_shift作为第二个参数。可以查看avg函数获取它的用法。

(8)change

参数:忽略
支持类型:float,int,str,text,log
作用:返回最近获得值与之前获得值的差值,对于字符串0表示相等,1表示不同
change(0)>n:忽略参数一般输入0,表示最近得到的值与上一个值的差值大于n

(9)diff

参数:忽略
支持值类型:float,init,str,text,log
作用:返回值为1,表示最近的值与之前的值不同,0为相同。
例如:diff(0)>0 ===>表示现在获取的值如果和之前的不同就告警

1.3 Zabbix Web创建触发器过程以及触发器与监控项对应关系

(1)创建一个触发器

我们之前已经创建了一个检测内存剩余大小的监控项,现在我们给这个监控项加一个触发器。当内存小于20M时,触发报警

(2)进行表达器测试

表达式测试成功后,我们创建完毕即可

(3)在服务端进行监控项数据获取测试

监控项表达式说明
{aaaa:vm.memory.size[available].last()}<20M
aaaa:模版名
vm.memory.size:zabbix监控端向被监控端发送的代号
.last()<20 :last()<===>last(0)<===>last(#1)

[root@localhost ~]# zabbix_get -s 192.168.0.220 -k "vm.memory.size"

1028517888              #获取对应IP的全部内存总量[root@localhost ~]# zabbix_get -s 192.168.0.220 -k "vm.memory.size[available]"

794337280           #获取对应IP的剩余内存总量

 作者:刘坤

© 2018 北京青梅睿创科技有限公司 版权所有 翻版必究 京ICP备17050044号-2