cu_Cbear 发表于 2012-01-11 15:03

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

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







本文以获取 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.sh01.#!/bin/sh

02.PATH=$PATH:/usr/local/squid/bin

03.export PATH

04.squidclient -t 1 -h localhost -p 3128 mgr:info | grep "Memory hits" | cut -d "%" -f 2 | awk '{print $5}'

05.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
01.UCD-SNMP-MIB::ucdavis.50.1.1 = INTEGER: 1

02.UCD-SNMP-MIB::ucdavis.50.2.1 = STRING: "squidmemhits"

03.UCD-SNMP-MIB::ucdavis.50.3.1 = STRING: "/usr/local/bin/squidmemhits.sh"

04.UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 0

05.UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"

06.UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"

07.UCD-SNMP-MIB::ucdavis.50.102.1 = INTEGER: 0

08.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"
这两行就是所需要的。01.snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.1

02.UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "86.0"

03.snmpwalk -v 1 192.168.0.200 -c public .1.3.6.1.4.1.2021.50.101.2

04.UCD-SNMP-MIB::ucdavis.50.101.2 = STRING: "86.6"
复制代码能采集到数据,就可以配置 Cacti 来接收了。
先创建数据模板:01.

02.console -> Templates -> Data Templates -> Add ->

03.Data Templates Name: ucd/net - Squid - Memory Hits - 5 Minute

04.Data Source Name: |host_description| - Squid - Memory Hits - 5 Minute

05.Data Input Method: GET SNMP Data

06.Associated RRA's: remove Hourly (1 Minute Average)

07.Internal Data Source Name: squid_memhits_5min

08.create ->

09.OID: .1.3.6.1.4.1.2021.50.101.1

10.Save复制代码同样再创建一个 Squid - Memory Hits - 60 Minute 的数据模板。
再创建图形模板:01.console -> Templates -> Graph Templates -> Add ->

02.Name: ucd/net - Squid Memory Hits

03.Title: |host_description| - Squid Memory Hits

04.Vertical Label: percent

05.create

06.

07.Graph Template Items -> Add

08.Data Source: ucd/net - Squid - Memory Hits - 5 Minute - (squid_memhits_5min)

09.Color: FFC73B

10.Graph Item Type: AREA

11.Consolidation Function: AVERAGE

12.Text Format: 5 Minute

13.create ->

14.Graph Template Items -> Add

15.Graph Item Type: GPRINT

16.Consolidation Function: LAST

17.Text Format: Current:

18.Insert Hard Return

19.create ->

20.

21.Graph Template Items -> Add

22.Data Source: ucd/net - Squid - Memory Hits - 60 Minute - (squid_memhits_60min)

23.Color: FF0000

24.Graph Item Type: LINE1

25.Consolidation Function: AVERAGE

26.Text Format: 60 Minute

27.create ->

28.Graph Template Items -> Add

29.Graph Item Type: GPRINT

30.Consolidation Function: LAST

31.Text Format: Current:

32.Insert Hard Return

33.create -> Save复制代码然后就可以选择主机,添加图形了。

星期六的深夜68 发表于 2012-01-12 10:09

谢谢分享
页: [1]
查看完整版本: Cacti 获取 SNMP 发送的自定义信息绘图