设为首页 收藏本站
查看: 4389|回复: 1

[经验分享] cacti利用snmpdiskio 监控服务器磁盘IO监控

[复制链接]

尚未签到

发表于 2017-4-20 07:43:51 | 显示全部楼层 |阅读模式
平台
CentOS5.4
cacti-0.8.7e(cacti-0.8.7g已经测试安装正常)
snmpdiskio-0.9.6
安装
安装cacti平台就不提了,网上多得是,今天主要是如何添加disk io监控的模板.
1.       将下载的snmpdiskio-0.9.4.tar.gz上传到cacit服务器上,解压缩,将partition.xml拷贝resource/snmp_queries下.
tar zxvf snmpdiskio-0.9.4.tar.gz
cp snmpdiskio-0.9.4 /usr/local/apache2/htdocs/cacti/resource/snmp_queries/
2.       在cacti服务器的web界面下导入cacti_data_query_snmp_disk_statistics.xmlcacti_graph_template_disk_io_bytessec.xml
      DSC0000.gif

3.       将下载的snmpdiskio-0.9.4.tar.gz上传到被监控机上,解压缩,将目录下可执行文件snmpdisk拷贝/usr/local/bin/下.
tar zxvf snmpdiskio-0.9.4.tar.gz
install -m 0755 -o root -g root -p -v snmpdiskio /usr/local/bin/,
由于9.4太老不支持2.6内核,需要修改,出自http://forums.cacti.net/viewtopic.php?p=124793#124793 dverlaeckt 的“code

Vim snmpdiskio
#!/bin/bash
# $Id: snmpdiskio,v 1.5 2008/01/31 21:19:50 dverlaeckt Exp $
# snmpdiskio v0.9.6 (c) 2008 Dieter Verlaeckt <dieter.verlaeckt@gmail.com>
# snmpdiskio v0.9.5 (c) 2007 Pablo Destefanis <pdestefanis@gmail.com>
# snmpdiskio v0.9.4 (c) 2006 Mikael Fridh <mikael@meanstreak.se>
 
# Fields in /proc/partitions (kernel 2.4)
# major minor #blocks name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq
 
# Fields in /proc/diskstats (kernel 2.6) for disks (i.e. hda)
# major minor name rio rmerge rsect ruse wio wmerge wsect wuse running use aveq
 
# Fields in /proc/diskstats (kernel 2.6) for partitions (i.e. hda1)
# major minor name rio rsect wio wsect
 
# InBlocks = sectors written to disk
# OutBlocks = sectors read from disk
 
# Set default procfile for kernel 2.4
PROCFILE="/proc/partitions"
MODE="linux24"
 
# Probably kernel 2.6:
if [ -f /proc/diskstats ]; then
    PROCFILE=/proc/diskstats
    MODE="linux26"
fi
 
 
function hdNum()
{
        awk ' BEGIN { num=0 } $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ { num++ } END { print num } ' $PROCFILE
}
 
function hdIndex()
{
        awk ' BEGIN { num=0 } $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ { num++; print num } ' $PROCFILE
}
 
function hdDescr()
{
        if [ "$MODE" = "linux26" ]; then
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ { printf "%s/n", $3 }' $PROCFILE
        else
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ { printf "%s/n", $4 }' $PROCFILE
        fi
}
 
function hdInBlocks()
{
        if [ "$MODE" = "linux26" ]; then
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 7 { printf "%.0f/n", $7 * 512 }
                      $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 14 { printf "%.0f/n", $10 * 512 } ' $PROCFILE
        else
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 15 { printf "%.0f/n", $11 * 512 } ' $PROCFILE
        fi
}
 
function hdOutBlocks()
{
        if [ "$MODE" = "linux26" ]; then
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 7 { printf "%.0f/n", $5 * 512 }
                      $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 14 { printf "%.0f/n", $6 * 512 } ' $PROCFILE
        else
                awk ' $1 ~ /[0-9]+/ && $2 ~ /[0-9]+/ && NF == 15 { printf "%.0f/n", $7 * 512 } ' $PROCFILE
        fi
}
 
function usage()
{
        cat <<-EOUSAGE
Usage: $0 <hdNum|hdIndex|hdDescr|hdInBlocks|hdOutBlocks>
EOUSAGE
}
 
if [ 1 -ne $# ]; then
        usage
        exit 1
fi
 
case $1 in
        hdNum|hdIndex|hdDescr|hdInBlocks|hdOutBlocks)
                $1
        ;;
        'hdNum')
                hdNum
        ;;
        'hdIndex')
                hdIndex
        ;;
        'hdDescr')
                hdDescr
        ;;
        'hdInBlocks')
                hdInBlocks
        ;;
        'hdOutBlocks')
                hdOutBlocks
        ;;
        *)
                usage
                exit 1
        ;;
esac
 
exit 0
 
4.       修改被监控机的snmpd.conf,在文件的结尾添加如下:
exec .1.3.6.1.4.1.2021.54 hdNum /bin/sh /usr/local/bin/snmpdiskio hdNum
exec .1.3.6.1.4.1.2021.55 hdIndex /bin/sh /usr/local/bin/snmpdiskio hdIndex
exec .1.3.6.1.4.1.2021.56 hdDescr /bin/sh /usr/local/bin/snmpdiskio hdDescr
exec .1.3.6.1.4.1.2021.57 hdInBlocks /bin/sh /usr/local/bin/snmpdiskio hdInBlocks
exec .1.3.6.1.4.1.2021.58 hdOutBlocks /bin/sh /usr/local/bin/snmpdiskio hdOutBlocks
这里增加了/bin/sh,我在网上搜索了许多,都没有加上这个,我测试就是不成功.
Service snmpd restart
测试
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.58
[iyunv@localhost ~]# snmpwalk -v 2c -c public localhost  .1.3.6.1.4.1.2021.58
UCD-SNMP-MIB::ucdavis.58.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1 = STRING: "hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.3.1 = STRING: "/bin/sh /usr/local/bin/snmpdiskio hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.101.1 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.2 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.3 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.4 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.5 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.6 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.7 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.8 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.9 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.10 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.11 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.12 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.13 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.14 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.15 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.16 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.17 = STRING: "390659584"
UCD-SNMP-MIB::ucdavis.58.101.18 = STRING: "823808"
UCD-SNMP-MIB::ucdavis.58.101.19 = STRING: "386556928"
UCD-SNMP-MIB::ucdavis.58.101.20 = STRING: "827904"
UCD-SNMP-MIB::ucdavis.58.101.21 = STRING: "5120"
UCD-SNMP-MIB::ucdavis.58.101.22 = STRING: "2224640"
UCD-SNMP-MIB::ucdavis.58.101.23 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.24 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.101.25 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.58.103.1 = ""
出现如下数据,表示正常.
 
 
5.在cactidevicesà Associated Data Queries添加SNMP - Disk Statistics
 
DSC0001.gif
Create Graphs for this Host选择
DSC0002.gif

你会发现要选择的硬盘太多,你可以用iostat命令,照这里添加
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.11    0.28    1.61    0.55    0.00   96.45
 
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
sda               2.70        23.93        38.02     763647    1213086
sda1              0.00         0.05         0.00       1609         14
sda2              2.69        23.68        38.01     755634    1212824
sda3              0.00         0.05         0.00       1617          0
sda4              0.00         0.00         0.00         10          0
sda5              0.01         0.14         0.01       4345        248
我使用虚拟机测试的
 
  DSC0003.gif
排错
如果出现
snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.58
UCD-SNMP-MIB::ucdavis.58 = No Such Object available on this agent at this OID

你先执行snmpwalk -v 2c -c public localhost,看看是否正常,如不正常,说明snmpd.conf其他配置有问题,如正常,说明刚才添加exec有问题,请检查.
 
Snmp.conf提前设置
 
     40 #       sec.name  source          community
     41 com2sec notConfigUser  default       mynetsnmp
 
     61 #       group          context sec.model sec.level prefix read   write  notif
     62 access  notConfigGroup ""      any       noauth    exact  all    none none
 
     77 ##     group.name sec.model  sec.name
     78 group MyRWGroup  v1        local
     79 group MyRWGroup  v2c        local
     80 group MyRWGroup  usm        local
 
     86 ##           incl/excl subtree                          mask
     87 view all    included  .1                               80
 
 
 
  参考: http://upfelix.blogbus.com/logs/7

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-366553-1-1.html 上篇帖子: 使用 cacti 监控 windows 服务器硬盘的 I/O 状况 下篇帖子: Cacti导入模板报错 Error: XML: Hash version does not exist.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表