首先下载snmpdiskio-0.9.6.zip,文件不好找,我已经放在本文章的附件里面。

解压snmpdiskio-0.9.6.zip复制partition.xml到cacti/resource/snmp_queries/下面

[root@test]# cp partition.xml /home/wwwroot/default/cacti/resource/snmp_queries/

分别导入模板文件:

cacti_data_query_snmp_disk_statistics.xml

cacti_graph_template_disk_io_bytessec.xml

 

Cacti has imported the following items:

GPRINT Preset

[success] Normal [update]

Data Input Method

[success] Get SNMP Data (Indexed) [update]

Data Template

[success] Disk - I/O [update]

Graph Template

[success] Disk - I/O (bytes/sec) [update]

在被监控端的/etc/snmp/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

安装snmpdiskio到usr/local/bin下面并且给予执行权限

[root@node7]# install -m 0755 -o root -g root -p -v snmpdiskio /usr/local/bin/
`snmpdiskio’ -> `/usr/local/bin/snmpdiskio’

重启snmpd服务

[root@node7 bin]# service snmpd restart
Stopping snmpd:                                            [  OK  ]
Starting snmpd:                                            [  OK  ]

查看日志

[root@node7 log]# pwd
/var/log

[root@node7 log]# cat messages

如果报错:

Dec 18 14:54:39 node7 snmpd[6887]: /etc/snmp/snmpd.conf: line 462: Error: ERROR: This output format has been deprecated - Please use the ’extend’ directive instead
Dec 18 14:54:39 node7 snmpd[6887]: /etc/snmp/snmpd.conf: line 463: Error: ERROR: This output format has been deprecated - Please use the ’extend’ directive instead
Dec 18 14:54:39 node7 snmpd[6887]: /etc/snmp/snmpd.conf: line 464: Error: ERROR: This output format has been deprecated - Please use the ’extend’ directive instead
Dec 18 14:54:39 node7 snmpd[6887]: /etc/snmp/snmpd.conf: line 465: Error: ERROR: This output format has been deprecated - Please use the ’extend’ directive instead
Dec 18 14:54:39 node7 snmpd[6887]: /etc/snmp/snmpd.conf: line 466: Error: ERROR: This output format has been deprecated - Please use the ’extend’ directive instead

因为snmp V5版本不支持exec所以要把exec改为extend

extend .1.3.6.1.4.1.2021.54 hdNum /bin/sh /usr/local/bin/snmpdiskio hdNum
extend .1.3.6.1.4.1.2021.55 hdIndex /bin/sh /usr/local/bin/snmpdiskio hdIndex
extend .1.3.6.1.4.1.2021.56 hdDescr /bin/sh /usr/local/bin/snmpdiskio hdDescr
extend .1.3.6.1.4.1.2021.57 hdInBlocks /bin/sh /usr/local/bin/snmpdiskio hdInBlocks
extend .1.3.6.1.4.1.2021.58 hdOutBlocks /bin/sh /usr/local/bin/snmpdiskio hdOutBlocks

测试是否出数据:

[root@node7 log]# snmpwalk -v 2c -c public localhost .1.3.6.1.4.1.2021.58
UCD-SNMP-MIB::ucdavis.58.1.0 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1.2.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "/bin/sh"
UCD-SNMP-MIB::ucdavis.58.2.1.3.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "/usr/local/bin/snmpdiskio hdOutBlocks"
UCD-SNMP-MIB::ucdavis.58.2.1.4.11.104.100.79.117.116.66.108.111.99.107.115 = ""
UCD-SNMP-MIB::ucdavis.58.2.1.5.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 5
UCD-SNMP-MIB::ucdavis.58.2.1.6.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1.7.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.2.1.20.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 4
UCD-SNMP-MIB::ucdavis.58.2.1.21.11.104.100.79.117.116.66.108.111.99.107.115 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.58.3.1.1.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "0"
UCD-SNMP-MIB::ucdavis.58.3.1.2.11.104.100.79.117.116.66.108.111.99.107.115 = STRING: "0

完全没有问题,下面就可以在cacti上面添加监控:

 

  • Created graph: 10.1.60.155 - Disk I/O (bytes/sec) - sda


  • Created graph: 10.1.60.155 - Disk I/O (bytes/sec) - sda1


  • Created graph: 10.1.60.155 - Disk I/O (bytes/sec) - sda2

 

 

 snmpdiskio-0.9.6.rar