Zabbix实战-简易教程--低层次发现(LLD)
Posted On The Way!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Zabbix实战-简易教程--低层次发现(LLD)相关的知识,希望对你有一定的参考价值。
一、概述
自动发现(LLD)提供了一种在为不同实体自动创建监控项,触发器和图形的方法。例如,Zabbix可以在你的机器上自动监控磁盘或网卡,而无需为每个磁盘或网卡手动创建监控项。(LLD)
此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控项。(根据正则过滤)
二、类型
在Zabbix中,支持六种类型的发现项目:
-
系统文件的发现;
-
网络接口的发现;
-
CPU和CPU内核的发现
-
SNMP OID的发现
-
使用ODBC SQL查询的发现
-
Windows服务的发现
三、流程
发现过程的流程如下。
首先,用户在“配置”→“模板”→“自动发现”列中创建一个发现规则。发现规则包括(1)发现必要实体(例如,磁盘或网卡)的项目和(2)应该根据该项目的值创建的监控项,触发器和图形的原型。
其次,用户也可以自己定义发现类型,只要它们遵循特定的JSON协议。
四、查看自带LLD
1、我们先查看系统自带的LLD,选择 模板管理-->自动发现
2、查看到,系统自带的2个LLD
3、随便点击一个,比如,我们点击文件系统的这个
4、查看具体监控项
需要说的是:{#FSNAME}为宏变量,宏变量,我们之前已经说过,请参考:http://www.cnblogs.com/skyflask/p/7523535.html
五、自定义LLD(实例)
流程:(比如采集linux机器上所有磁盘IO)
1、自定义key
UserParameter=custom.vfs.dev.discovery,/bin/sh /etc/zabbix/externalscripts/disk.sh
cat /etc/zabbix/externalscripts/disk.sh
#!/bin/bash diskarray=(`cat /proc/diskstats |grep -E "\\bvd[a-z]\\b|\\bhd[a-z]\\b|\\bsd[a-z]\\b|\\bc0d0p[0-9]\\b"|grep -i "\\b$1\\b"|awk \'{print $3}\'|sort|uniq 2>/dev/null`) length2=${#diskarray[@]} printf "{\\n" printf \'\\t\'"\\"data\\":[" for ((i=0;i<$length2;i++)) do printf \'\\n\\t\\t{\' printf "\\"{#DISK}\\":\\"${diskarray[$i]}\\"}" if [ $i -lt $[$length2-1] ];then printf \',\' fi done printf "\\n\\t]\\n" printf "}\\n"
2、设置item
# reads completed successfully UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$4}\' # sectors read UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$6}\' # time spent reading (ms) UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$7}\' # writes completed UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$8}\' # sectors written UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$10}\' # time spent writing (ms) UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$11}\' # I/Os currently in progress UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$12}\' # time spent doing I/Os (ms) UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | egrep $1 | head -1 | awk \'{print $$13}\'
#IOPS
UserParameter=custom.vfs.dev.util[*],iostat -x -d -c 1 1|egrep $1|awk \'{print $NF}\'
3、设置模板
上面忘记说了,我们还可以对发现的磁盘通过正则进行过滤,正则详情参考:http://www.cnblogs.com/skyflask/p/7520829.html
4、效果图
最后,选定一台主机,将模板绑到他上面,就可以看到效果了:
六、参考文件和脚本
脚本地址:https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-template-disk/disk.sh
模板地址:https://github.com/loveqx/zabbix-doc/tree/master/zabbix-scripts/zabbix-template-disk
参考文献:无
以上是关于Zabbix实战-简易教程--低层次发现(LLD)的主要内容,如果未能解决你的问题,请参考以下文章
Zabbix实战-简易教程--动作(Actions)--自动发现
Zabbix实战-简易教程--动作(Actions)--自动注册