1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux snmp磁盘io cacti利用snmpdiskio 监控服务器磁盘

linux snmp磁盘io cacti利用snmpdiskio 监控服务器磁盘

时间:2023-04-19 12:55:19

相关推荐

linux snmp磁盘io cacti利用snmpdiskio 监控服务器磁盘

此文主要讲述了cacti利用snmpdiskio 监控服务器磁盘 IO的方法,cacti的安装这里不再累述

环境

cacti-0.8.7g

snmpdiskio-0.9.6

安装步骤

监控机上操作:

1.将下载的snmpdiskio-0.9.4.tar.gz上传到cacit服务器上,解压缩,将partition.xml拷

贝resource/snmp_queries下.

# tar xvf snmpdiskio-0.9.4.tar.gz

# cd snmpdiskio-0.9.4

# cp partition.xml ../cacti/resource/snmp_queries/

2.在cacti服务器的web界面下导入cacti_graph_template_disk_io_bytessec.xml模板

如图所示:

被监控机上操作:

1.将下载的snmpdiskio-0.9.4.tar.gz上传到被监控机上,解压缩,将目录下可执行文件

snmpdisk拷贝/usr/local/bin/下

# tar xvf snmpdiskio-0.9.4.tar.gz

# cd snmpdiskio-0.9.4

# cp snmpdiskio /usr/local/bin/

注:如果监控机也需要检测磁盘IO的话,做同样处理

2.由于9.4太老不支持2.6内核,需要修改,出自

中dverlaeckt 的“code”

# vim /usr/local/bin/snmpdiskio

#!/bin/bash

# $Id: snmpdiskio,v 1.5 /01/31 21:19:50 dverlaeckt Exp $

# snmpdiskio v0.9.6 (c) Dieter Verlaeckt # snmpdiskio v0.9.5 (c) Pablo Destefanis # snmpdiskio v0.9.4 (c) Mikael Fridh # 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

}

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

3.修改snmpd.conf配置文件,添加以下内容

exec .1.3.6.1.4.1..54 hdNum /usr/local/bin/snmpdiskio hdNum

exec .1.3.6.1.4.1..55 hdIndex /usr/local/bin/snmpdiskio hdIndex

exec .1.3.6.1.4.1..56 hdDescr /usr/local/bin/snmpdiskio hdDescr

exec .1.3.6.1.4.1..57 hdInBlocks /usr/local/bin/snmpdiskio hdInBlocks

exec .1.3.6.1.4.1..58 hdOutBlocks /usr/local/bin/snmpdiskio hdOutBlocks

4.重启snmp服务

# service snmpd restart

5.测试,正常会出现如下内容

# snmpwalk -v 2c -c public 192.168.88.128 .1.3.6.1.4.1..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: "/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: "1666025984"

UCD-SNMP-MIB::ucdavis.58.101.18 = STRING: "1154048"

UCD-SNMP-MIB::ucdavis.58.101.19 = STRING: "1278602240"

UCD-SNMP-MIB::ucdavis.58.101.20 = STRING: "386118144"

UCD-SNMP-MIB::ucdavis.58.101.21 = STRING: "1277166592"

UCD-SNMP-MIB::ucdavis.58.101.22 = STRING: "1270784"

UCD-SNMP-MIB::ucdavis.58.101.23 = STRING: "73728"

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 = ""

现在,添加设备

Devices-->Add,在Associated Data Queries选择SNMP - Disk Statistics ,如图

接下来*Create Graphs for this Host,如图

获得图像如下

阅读(3414) | 评论(0) | 转发(0) |

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。