zabbix自动发现监控磁盘(iops和读写量)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

对于磁盘有个iops的概念比较奇怪,想监控起来看下,利用zabbix的自动发现把每个磁盘的iops监控起来,思路:自动发现所有的磁盘,然后监控各个磁盘的iops。效果如下图(iops和io读写大小),下图监控的磁盘是个sdd的,iops今天监控起来后峰值有30k:

211902_BuhL_1588616.png

 

200915_Keuv_1588616.png

思路分为两步,第一个,自动发现列出所有磁盘。第二个,监控每个磁盘的iops情况。

第一个实现如下:

先看一下自动发现脚本,使用python编写,利用linux的/proc/diskstats记得 的磁盘信息发现所有的磁盘。脚本如下:cat /usr/local/zabbix/discover_disk.py

#coding:utf-8
try:import json
except:import simplejson as jsonimport commands(status, output) = commands.getstatusoutput('''cat /proc/diskstats |awk '{print $3}'|egrep 'sd|vd|hd'|egrep -v '[0-9]'|sort -u''')
if output:outputs = output.split('\n')disks = []for disk in  outputs:disks += [{'{#DISKONE}': disk}]print json.dumps({'data':disks},sort_keys=True,indent=4)
else:print 'discovery error'

运行结果如下(此机器上有两个磁盘):

212257_82JZ_1588616.png

 

第二步,监控磁盘的iops,利用linux的/proc/diskstats的第四个字段和第八字段可监控读和写的iops,第四个记录是记录所有读的次数,第八个字段是记录所有写的次数。通过zabbix上的差速率即可监控磁盘的iops。脚本如下:cat /usr/local/zabbix/check_disk.sh。脚本中-d后面跟磁盘名称,-o后面跟需要读取的磁盘的信息。(第六个字段和第十个字段分别代表读的扇区和写的扇区,*512就为读写的Byte了,通过这两个字段可监控磁盘的io读写量)

#!/bin/sh
#   8       0 sda 76880282531 8117316 937263519846 4237854729 62989000438 35668103347 777694636224 1190396494 3 2895102137 899093508
while getopts "d:o:" opt
docase $opt ind ) disk=$OPTARG;;o ) option=$OPTARG;;? )echo 'parameter is wrong!'exit 1;;esac
done
if [ ! "${disk}" ] || [ ! "${option}" ];thenecho "parameter is null"        exit 1
fiif [[ ${option} == "read" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $6}'
elif [[ ${option} == "write" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $10}'
elif [[ ${option} == "readops" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $4}'
elif [[ ${option} == "writeops" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $8}'
elif [[ ${option} == "readtime" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $7}'
elif [[ ${option} == "writetime" ]];thencat /proc/diskstats |grep "${disk} "|awk '{print $11}'
fi

脚本运行结果如下:

212806_UYqS_1588616.png

 

两步写好后,zabbix agent加入如下配置,加完后重启zabbix,配置如下:

cat /usr/local/zabbix/etc/zabbix_agentd.conf.d/disk.conf 
UserParameter=disk.discover,python /usr/local/zabbix/discover_disk.py 
UserParameter=disk.status[*],sh /usr/local/zabbix/check_disk.sh -d $1 -o $2

 

加入好后在zabbix server运行检测一下,自动发现结果如下:

213003_GdLH_1588616.png

监控磁盘的结果如下:

213106_KMsr_1588616.png

 

以上都测试没问题就可以在zabbix的页面上添加自动发现规则了。可以新建个模板,发现规则截图如下:

213303_sv1l_1588616.png

自动发现发现所有的磁盘,发现后就要项目原型进行监控磁盘的iops了 ,{#DISKONE}代表每个磁盘。监控的项目配置如下:

213412_Z3l4_1588616.png

 

把自动发现模板应用到主机后,监控的项目如下:

213537_bn8H_1588616.png

 

附上本人的网络课堂地址,如有兴趣请点击: 实践哥

 

最后,附上zabbix监控磁盘ipos的模板的链接:

http://git.oschina.net/zhuangweihong/ops/blob/master/zbx_export_templates_discover_disk.xml?dir=0&filepath=zbx_export_templates_discover_disk.xml&oid=1b1864a25c8b016e4ff14fc35c9bbdb07235829e&sha=9562fe6af03280814dc421203c713e7de20228b6

转载于:https://my.oschina.net/zhuangweihong/blog/887930

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259059.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一个表单同时向两个页面传值

现在有一个表单<form action"AddNewstu.asp" METHOD"POST" ><INPUT TYPE "Text" NAME "name" SIZE "20"><BR></FORM>此表单向AddNewstu.asp页面传入了一个name的值&#xff0c;如果同时把name…

matlab内置函数fitgeotrans与transformPointsForward解析

最近研究3000fps的实现&#xff0c;看了网上给的一个matlab代码&#xff0c;里面有提到init_shape到mean_shape的对齐&#xff0c;里面使用了fitgeotrans和transformPointsForward两个函数。于是参考matlab help研究了一下这两个函数. fitgeotrans函数 语法: tform fitgeotr…

【电脑使用经验】怎么查看无线网络中电脑的IP地址?

1、 2、 3、 4、 5、 转载于:https://www.cnblogs.com/happykoukou/p/4437111.html

win8硬盘安装Ubuntu14.04双系统參考教程

硬盘安装&#xff0c;无需光盘、U盘。win8为主。Ubuntu14.04为辅。可将Windows或Ubuntu设置为开机默认启动项。在Ubuntu下可查看、操作Windows系统下的文件&#xff1b;适用于安装和14.04版本号相近的Ubuntu系统。假设以上所述正是你所须要的。那么这可能是一篇您值得參考的教程…

oracle nvarchar2,varchar2,char,nchar说明

char(size)&#xff1a; 数据长度为size&#xff0c;不足的用空格补&#xff0c;超出后报错。char类型的数据最大长度是2000字节或字符&#xff0c;每个字符长度依赖于数据库字符集&#xff0c;数据按字符存储还是字节存储取决于nls_length_semantics参数。如果每个字符占两个字…

散列表查找失败平均查找长度_Python数据结构与算法56:排序与查找:冲突解决方案...

注&#xff1a;本文如涉及到代码&#xff0c;均经过Python 3.7实际运行检验&#xff0c;保证其严谨性。本文阅读时间约为6分钟。前面说过&#xff0c;如果两个数据项被散列映射到同一个槽&#xff0c;需要一个系统化的方法在散列表中保存第二个数据项&#xff0c;这个过程被称为…

Face Alignment by 3000 FPS系列学习总结(一)

广播&#xff1a; 如今的opencv已经提供了LBF的训练和测试代码&#xff0c;推荐阅读 《使用OpenCV实现人脸关键点检测》 face alignment 流程图 train阶段 测试阶段 预处理 裁剪图片 tr_data loadsamples(imgpathlistfile, 2); 说明&#xff1a; 本函数用于将原始图片取…

acm常见算法及例题

1 acm常见算法及例题2 3 初期:4 一.基本算法:5 (1)枚举. (poj1753,poj2965)6 (2)贪心(poj1328,poj2109,poj2586)7 (3)递归和分治法.8 (4)递推.9 (5)构造法.(poj3295)10 (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996)11 二.图算法…

2爬虫基础了解

1.什么是爬虫爬虫&#xff0c;即网络爬虫&#xff0c;大家可以理解为在网络上爬行的一直蜘蛛&#xff0c;互联网就比作一张大网&#xff0c;而爬虫便是在这张网上爬来爬去的蜘蛛咯&#xff0c;如果它遇到资源&#xff0c;那么它就会抓取下来。想抓取什么&#xff1f;这个由你来…

js(function(){alert(‘’‘)})

function(){alert(sss)}是个匿名函数。没有名字。所以没有办法调用。在外面加个括号&#xff0c;就变成了一个值&#xff0c;值的内容是函数的引用。例如var a (function(){"nop"})a 就是对这个函数的引用。有了名字&#xff0c;之后可以调用&#xff0c;例如a()现在…

macbook 移动硬盘无法写入_如何升级MacBook笔记本的SSD硬盘-菜鸟折腾系列一

2010 年的时候买了 09 年末的 MACBOOK 小白&#xff0c;由于技术发展&#xff0c;软件越来越吃硬件内存&#xff0c;现在2G 内存别提基本的工作了&#xff0c;连开机都有困难&#xff0c;每次一点就一个风火轮&#xff0c;基本就是一块 13 寸的板砖了。。。众所周知 HDD 机械硬…

face alignment by 3000 fps系列学习总结(二)

准备初始数据 mean_shape mean_shape就是训练图片所有ground_truth points的平均值.那么具体怎么做呢&#xff1f;是不是直接将特征点相加求平均值呢&#xff1f; 显然这样做是仓促和不准确的。因为图片之间人脸是各式各样的&#xff0c;收到光照、姿势等各方面的影响。因此…

parasoft Jtest 使用教程:功能配置之查找错误

2019独角兽企业重金招聘Python工程师标准>>> parasoft Jtest介绍和试用>>> 今天开始为大家带来parasoft Jtest功能配置板块教程&#xff0c;也是系列教程中最重要的一部分。 通过运行Jtest的BugDetective和使用最重要的一套规则来进行编码标准静态分析&…

kmp入门小结

void get_next(char *s) {int len strlen(s);int j 0; int k -1;while (j < len){if (k -1 || s[j] s[k]){j; k; next[j] k;}else k next[k];} } 设t next[i]; next[i] 表示的是 i之前最大的t满足 s[0...t-1] s[i-t...i-1] 比如 0123 4 0123 5 &#xff0c;next[…

基于visual Studio2013解决面试题之0807strstr函数

&#xfeff;&#xfeff;&#xfeff;题目解决代码及点评/*写strstr函数简单的遍历去查找吧 */#include <iostream> #include <stdio.h>const char *my_strstr(const char *str, const char *sub_str) {// 遍历for(int i 0; str[i] ! \0; i){int tem i; //tem保…

aop在项目中的实际运用_mypy在实际项目中的应用

我认为静态类型似乎被吹捧过高了。尽管如此&#xff0c;mypy极低的侵入性能带来许多好处。关于如何在现有的Python项目中添加类型&#xff0c;以下是我的一些想法&#xff0c;大致按重要性排序。首先确保mypy成功运行 Mypy上手时两个很常见的问题有&#xff1a;1.Mypy没有作为构…

face alignment by 3000 fps系列学习总结(三)

训练 我们主要以3000fps matlab实现为叙述主体。 总体目标 我们需要为68个特征点的每一个特征点训练5棵随机树&#xff0c;每棵树4层深&#xff0c;即为所谓的随机森林。 开始训练 分配样本 事实上&#xff0c;对于每个特征点&#xff0c;要训练随机森林&#xff0c;我们需…

HDU 2049 不容易系列之(4)——考新郎( 错排 )

链接&#xff1a;传送门思路&#xff1a;错排水题&#xff0c;从N个人中选出M个人进行错排&#xff0c;即 C(n,m)*d[m]补充&#xff1a;组合数C(n,m)能用double计算吗&#xff1f;第二部分有解释 Part 1. 分别求出来组合数的分子和分母然后相除/******************************…

级联sql

select ID, PID, NAME,KEY from HS_DICT start with KEY HS_EXP_WORK_LOCATIONconnect by prior ID PID order by DISPLAYORDER转载于:https://www.cnblogs.com/dazhaxie/p/3483532.html

获取母版中的控件

1 通过findcontrol找控件ID需要在此事件中~因为Page_load中时是先内容页加载然后才是母版页加载 protected void Page_LoadComplete(object sender, EventArgs e) { Label2.Text "现在时间是" (Master.FindControl("Label1") as Label).Text; if (Reques…