Cacti 获取 SNMP 发送的自定义信息绘图

2009-09-10  9:37  |  分类:应用技术  |  标签:  |  1,259 次浏览

本文以获取 squid 内存缓存命中率为例。

在 /etc/snmp/snmpd.conf 可以看到这样的样例:
# exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest
可以使用自己编写的脚本,比如:
exec .1.3.6.1.4.1.2021.50 squidmemhits /usr/local/bin/squidmemhits.sh

vi /usr/local/bin/squidmemhits.sh

#!/bin/sh
PATH=$PATH:/usr/local/squid/bin
export PATH
squidclient -t 1 -h localhost -p 3128 mgr:info | grep "Memory hits" | cut -d "%" -f 2 | awk '{print $5}'
squidclient -t 1 -h localhost -p 3128 mgr:info | grep "Memory hits" | cut -d "%" -f 3 | awk '{print $3}'

/etc/init.d/snmpd restart

检查一下能否读取到数据:
snmpwalk -v 2c 192.168.0.200 -c public .1.3.6.1.4.1.2021.50

UCD-SNMP-MIB::ucdavis.50.1.1 = INTEGER: 1
UCD-SNMP-MIB::ucdavis.50.2.1 = STRING: "squidmemhits"
UCD-SNMP-MIB::ucdavis.50.3.1 = STRING: "/usr/local/bin/squidmemhits.sh"
UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"
UCD-SNMP-MIB::ucdavis.50.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.50.103.1 = ""

其中
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"
这两行就是所需要的。

snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.1
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"
snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.2
UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"

能采集到数据,就可以配置 Cacti 来接收了。
先创建数据模板:

console -> Templates -> Data Templates -> Add ->
Data Templates Name: ucd/net - Squid - Memory Hits - 5 Minute
Data Source Name: |host_description| - Squid - Memory Hits - 5 Minute
Data Input Method: GET SNMP Data
Associated RRA's: remove Hourly (1 Minute Average)
Internal Data Source Name: squid_memhits_5min
create ->
OID: .1.3.6.1.4.1.2021.50.101.1
Save

同样再创建一个 Squid - Memory Hits - 60 Minute 的数据模板。

再创建图形模板:

console -> Templates -> Graph Templates -> Add ->
Name: ucd/net - Squid Memory Hits
Title: |host_description| - Squid Memory Hits
Vertical Label: percent
create

Graph Template Items -> Add
Data Source: ucd/net - Squid - Memory Hits - 5 Minute - (squid_memhits_5min)
Color: FFC73B
Graph Item Type: AREA
Consolidation Function: AVERAGE
Text Format: 5 Minute
create ->
Graph Template Items -> Add
Graph Item Type: GPRINT
Consolidation Function: LAST
Text Format: Current:
Insert Hard Return
create ->

Graph Template Items -> Add
Data Source: ucd/net - Squid - Memory Hits - 60 Minute - (squid_memhits_60min)
Color: FF0000
Graph Item Type: LINE1
Consolidation Function: AVERAGE
Text Format: 60 Minute
create ->
Graph Template Items -> Add
Graph Item Type: GPRINT
Consolidation Function: LAST
Text Format: Current:
Insert Hard Return
create -> Save

然后就可以选择主机,添加图形了。

样例图:
squidmemhits

喜欢本文,那就收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

相关日志

  • 暂无相关日志

2条评论 关于 “Cacti 获取 SNMP 发送的自定义信息绘图”

  1. 牛逼 发表于: 六月 21st, 2010 18:37

    牛逼,以后编写脚本方面可要请教请教你

    回复

  2. david 发表于: 六月 23rd, 2010 15:08

    我的图片出来的但是 没数据汗

    回复


发表您的评论