我试图扩展snmp来返回给定进程的数量
这是保存在/usr/bin/count_proc.sh的工具
#!/bin/bash ps aux | awk ' BEGIN { c=0 } /processname$/ { c=c+1 } END { print $c }'
在我的snmpd.conf中,我有以下行:
extend .1.3.6.1.4.1.8072.9999.1 count_proc /usr/bin/count_proc.sh
但是,我无法使用此OID检索此命令的结果。 当我运行这个OID的snmp查询时,结果是:
Value: (Snmp No Such object)
如果我运行遍历snmp树,我终于看到了一些东西,但它的奇怪…“Next OID”是我的工具的名称,而不是数字。
OID: .1.3.6.1.4.1.8072.9999.1.2.1.2.9.99.111.117.110.116.95.102.119.100 Next OID: /usr/bin/count_proc.sh Value: 1
最后,我会看到我期待的价值。
OID: .1.3.6.1.4.1.8072.9999.1.3.1.1.9.99.111.117.110.116.95.102.119.100 Value: 13
但这不是我期望查询输出的OID。 我还会在其他几个OID上find输出。
这是按预期工作,还是我在这里错过了重要的东西?
我个人使用扩展没有OID,如:
extend count_proc /usr/bin/count_proc.sh
snmp生成的OID很简单,结果是:
NET-SNMP-EXTEND-MIB :: nsExtendOutput1Line。 “count_proc”
OID是:
1.3.6.1.4.1.8072.1.3.2.3.1.1 。 10.99.111.117.110.116.95.112.114.111.99
说明: 10 : number of character in "count_proc" 99 : ASCII decimal value of 'c' 111 : ASCII decimal value of 'o' 117 : ASCII decimal value of 'u' 110 : ASCII decimal value of 'n' 116 : ASCII decimal value of 't' 95 : ASCII decimal value of '_' 112 : ASCII decimal value of 'p' 114 : ASCII decimal value of 'r' 111 : ASCII decimal value of 'o' 99 : ASCII decimal value of 'c'
因此,您可以通过编程方式轻松检索OID。
可能这个链接可以帮助你“扩展”命名约定