cacti可以执行定制的snmp查询并为其画图。
首先,在snmpd.conf里加上这样一句
 exec .1.3.6.1.4.1.2021.50 shelltest /bin/sh /tmp/shtest
修改/tmp/shtest
cat /tmp/shtest
 #!/bin/sh
echo `13`
 exit 63
重启,我们可以执行snmpwalk查看
snmpwalk -v 1 -c public localhost .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: "shelltest"
UCD-SNMP-MIB::ucdavis.50.3.1 = STRING: "/bin/sh /tmp/shtest"
UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 63
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "13"
UCD-SNMP-MIB::ucdavis.50.102.1 = INTEGER: 0
UCD-SNMP-MIB::ucdavis.50.103.1 = ""
这两句:
UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 63
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "13"
就是我们要用的数据了。
snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.50.100.1
UCD-SNMP-MIB::ucdavis.50.100.1 = INTEGER: 63
 
snmpwalk -v 1 -c public localhost .1.3.6.1.4.1.2021.50.101.1
UCD-SNMP-MIB::ucdavis.50.101.1 = STRING: "13"
(无论是INTEGER还是STRING,在cacti中都是可以画出来的)
 
之后是cacti的设置:
  先创建 Data Templates
  名字随便起,注意在Data Input Method中选上get snmp data,保存。再编辑这个模板。在下面的oid里写上刚刚后的的oid:.1.3.6.1.4.1.2021.50.100.1
  再创建一个 Data Templates ,oid为:.1.3.6.1.4.1.2021.50.101.1
  然后创建一个 Graph Template 。
  名字也是随便起,保存。再编辑。添加 Graph Item 。在Data Source 中选上刚才创建的Data Templates 。选上你想要的Color,Graph Item Type(个人偏爱line3),Consolidation Function。
  由于刚刚创建了两个 Data Templates ,而我也把想两条曲线画在一张图里。所以我在这个 Graph Template中就要加上两个 Graph Item 。保存。
最后,编辑你的device。 Associated Graph Templates--Add Graph Template:选上刚刚创建的 Graph Template