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 $ | head - | awk '{print $$4}'
# sectors read
UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$6}'
# time spent reading (ms)
UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$7}'
# writes completed
UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$8}'
# sectors written
UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$10}'
# time spent writing (ms)
UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$11}'
# I/Os currently in progress
UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$12}'
# time spent doing I/Os (ms)
UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | egrep $ | head - | awk '{print $$13}'
#IOPS
UserParameter=custom.vfs.dev.util[*],iostat -x -d -c |egrep $|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实战-简易教程系列
一.基础篇(安装和接入) Zabbix实战-简易教程--总流程 Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...
- Zabbix实战-简易教程(6)--Server端高可用
3.4 server前端高可用 至此,单台Zabbix server环境已经搭建完成,为了达到高可用效果,我们需要通过2台服务器之间通过HA软件进行探测,一旦检测到主的server挂掉后,从的s ...
- Zabbix实战-简易教程--技巧一(操作类技巧)
一.常用操作技巧 1.克隆 监控项.模板.触发器都可以进行克隆.其中,模板克隆又分为克隆和完全克隆.完全克隆会将LLD也一起复制一份,就是和之前的模板一模一样,而模板的克隆只是克隆监控项,不复制低层次 ...
- Zabbix实战-简易教程--动作(Actions)--自动发现
一.概述 Zabbix提供了有效和非常灵活的网络自动发现功能. 设置网络发现后你可以: 加快Zabbix部署(自动添加主机.添加模板) 简化管理(自动删除主机.删除模板.禁用主机) 无需过多管理就能在 ...
- Zabbix实战-简易教程--中间件ZooKeeper监控
一.监控思路 通过zabbix trapper方式监控,之前看到网友们都是通过定时任务进行主动上传数据,但是,zabbix还有另外一神器--自动发现,也能达到同样的功能. 二.实现步骤 1.准备脚本 ...
- Zabbix实战-简易教程--正则(Regxp)
一.正则表达式(Regx) 1.概述 正则表达式概念就不解释了.请参考:https://en.wikipedia.org/wiki/Regular_expression#POSIX_extended ...
- Zabbix实战-简易教程(9)--模板
1.模板概念 场景:比如你老板给你一个任务:有100台机器需要监控他的OS性能(CPU/内存/磁盘IO/网络),都是同样的监控项200个,上午需要添加完成,并且检查监控项的信息是否准确.这时你会怎么操 ...
- Zabbix实战-简易教程--DB类--ClickHouse
一.ClickHouse介绍 Clickhouse是一个用于联机分析处理(OLAP)的列式数据库管理系统(columnar DBMS). 传统数据库在数据大小比较小,索引大小适合内存,数据缓存命中率足 ...
- Zabbix实战-简易教程--WEB类--Nginx
一.开启Nginx status状态 1.在默认主机里面加上location添加ngx_status 如下操作: server { listen 127.0.0.1:8080; server_name ...
随机推荐
- 如何连接别人电脑上的Oracle数据库--duende99
需要一些前提条件: 1.对方的主机能被连接(如在同一局域网内) 2.需要知道对方数据库IP.端口号.服务名 3.需要知道对方提供的管理数据库的用户名及密码 连接方法: 1.在本地的oracle安装目录 ...
- Struts2学习---result结果集
这一章节主要介绍如何配置结果集,分为以下几个知识点: 结果集类型(result type) 全局结果集(global types) 动态结果集(dynamic type) 带有参数的结果集(type ...
- PDO绑定含IN的SQL语句的参数注意事项
PDOStatement::bindParam(),表示将PDO::prepare()语句中的占位符用参数替换掉.注意,在绑定含有IN的SQL多参数语句时要额外小心,比如$stmt = $db-> ...
- [Maven] Missing artifact
今天从朋友那拷过来一个maven工程,eclipse中maven配置好了,maven仓库也配置完毕,但是一直报Missing artifact,然后开网执行maven update,下载完jar后,还 ...
- web调用客户端程序
背景 最近做一个集成需求,我们是B/S架构的,对方是C/S架构的,对方直接扔过来一个EXE连OCX都没有,让我们调用,也就是说,我们需要通过js程序去调用他们的客户端程序并传入多个参数,当时内心是崩溃 ...
- Cleaner, more elegant, and harder to recognize (msdn blog)
It appears that some people interpreted the title of one of my rants from many months ago, "Cle ...
- Visual studio code离线安装插件
Visual studio code离线安装插件 公司研发区不能连接公网,使用Visual studio code(vsc)写Golang代码需要安装Go插件,下面介绍下,vsc离线安装插件的步骤.以 ...
- jmeter中一次运行多条sql语句
操作比较简单,主要就分两步: 第一步:在JDBC Connection Configuration中设置,主要见下图标注部分增加:?allowMultiQueries=true 第二步:在JDBC R ...
- java推送数据到app--极光推送
之前项目有用到需要把数据推送到app端 采用的是极光推送 特此把工具类和pom.xml需要的jar整理如下 pom.xml需要jar如下 <!-- 极光推送 --> <depende ...
- [编织消息框架][netty源码分析]12 ByteBuf 实现类UnpooledDirectByteBuf职责与实现
public class UnpooledDirectByteBuf extends AbstractReferenceCountedByteBuf { private final ByteBufAl ...