Zabbix discovery disk 监控
2015-09-14 15:17
447 查看
Zabbix discovery Disk 监控
首先,大家如果看到有什么不懂的地方,欢迎吐槽!!!我会在当天或者第二天及时回复,并且改进~~
Zabbix自带的“Template OS Linux”模板支持监控已挂载的磁盘空间利用率,是利用LLD(Low-level discovery)实现的,但是却不能监控磁盘IO,下面这篇文章主要是介绍通过Discovery rule来实现对磁盘IO的监控。
一、建立Zabbix_Agentd的key
确保之前已经修改过zabbix_agentd.conf Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/ 添加Zabbix_Agentd识别key的路径
好,现在我们来添加监控disk的Key cd /usr/local/zabbix/etc/zabbix_agentd.conf.d/ touch disk_status_key 下面是disk_status_key的内容
{ UserParameter=vfs.fs.scandisk[*],/usr/local/zabbix/shell/disk_scan.sh $1 UserParameter=custom.vfs.dev.read.ops[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$4}' UserParameter=custom.vfs.dev.read.ms[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$7}' UserParameter=custom.vfs.dev.write.ops[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$8}' UserParameter=custom.vfs.dev.write.ms[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$11}' UserParameter=custom.vfs.dev.io.active[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$12}' UserParameter=custom.vfs.dev.io.ms[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$13}' UserParameter=custom.vfs.dev.read.sectors[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$6}' UserParameter=custom.vfs.dev.write.sectors[*],cat /proc/diskstats | egrep "\b$1\b" | head -1 | awk '{print $$10}' }
二、建立discovery Disk 脚本
这里我先说明一下,我这边Server中都是sda硬盘,所以在下面'diskarray'磁盘数组中填入了'sda' 有需要的同学请自行修改 cd /usr/local/zabbix/shell touch disk_scan.sh
{ #!/bin/bash #Written by zijin #2014-08-05 #get local disk name #脚本运行结果格式为 #{ # "data":[ # {"{#DISK_NAME}":"sda"} # {"{#DISK_NAME}":"sdb"} # ] #} function get_disk_name () { diskarray=($(cat /proc/diskstats|egrep "\b$1\b"|awk '{print $3}'|sort|uniq 2>/dev/null)) #暂时只画硬盘sda的图 diskarray=(sda) function printf_disk_name () { length=${#diskarray[@]} for ((i=0;i<${length};i++));do if [ $i -lt $[${length}-1] ];then printf "{ \"{#DISK_NAME}\":\"${diskarray[$i]}\" },\n" else printf "{ \"{#DISK_NAME}\":\"${diskarray[$i]}\" }\n" fi done } printf "{ \"data\":[\n" printf_disk_name printf "]}" } get_disk_name $1 exit 0 }
三、在 Template OS Linux 中创建 discovery rule
打开Zabbix Web页面,configure-templates-Template OS Linux 点击discovery
右上角新建discovery rule 下面附图,key对应这我刚才在Include路径下设置的key 下面的Zabbix agent 也可以改成 Zabbix agent (Active),这样agent变为主动模式,使Server负载更小。
四、在前面创建的Disk status disvovery 中添加项目原型
大家可以理解为,前一步我们创建了角色,现在我们需要添加角色所扫描的任务,也就是item,下面附图:
点击 item prototypes 点击右上角的 Create item prototype 下面是我的详细配置,有几点需要注意 1、名称中 $1 为变量 2、Units 为 B_Writ 3、Store value 为每秒速率
我在这边创建了两个item
IO InBlocks on {#DISK_NAME}
IO OutBlocks on {#DISK_NAME}
五、创建 Graphs
上一步我们已经创建了两个监控项,那么如何将监控的信息通过图形呈现出来呢? 好,下面我们来创建Graphs,并将item添加进去 单击 Graphs prototypes-Create graphs prototypes
六、在Screen中列出graphs
相关文章推荐
- java.lang.NoClassDefFoundError: org/apache/log4j/Layout
- aop概念
- linux c 中文件的创建 读写
- 【Linux】rsync同步文件 & 程序自启动
- VO(DTO)模式在分层架构设计中是否需要的扯淡
- 为Linux重新开发MVC,有图有真相
- 配置Tomcat的访问日志格式化输出
- shell脚本 关联数组的使用
- nginx代理 修改响应内容
- linux下的c学习计划
- L6 linux,rpm,yum详细使用
- 【Linux命令详解】10、查看历史命令―[ history]
- 解决linux中Kipmi0进程对CPU使用率很高问题
- nginx 服务器配置404 页面
- MySQL高可用方案
- CentOS 5.9编译安装配置mysql-5.6.10
- opensmile读取wav出错:bogus wave/riff header or file in wrong format解决办法
- MT7620_看门狗(Watchdog)驱动
- linux fcntl()函数
- zabbix之日志文件监控