Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1217640
  • 博文数量: 135
  • 博客积分: 10576
  • 博客等级: 上将
  • 技术积分: 1670
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-11 20:49
个人简介

不疯魔,不成活! --疯魔老杨(Crazy.LaoYang) http://www.inotes.cn/

文章分类

全部博文(135)

文章存档

2014年(4)

2012年(13)

2011年(5)

2010年(30)

2009年(56)

2008年(27)

分类: LINUX

2012-09-21 10:42:14

在snmpd.conf里面配置exec和extend可以用脚本(或者可执行文件)来弹性的管理mib节点。但是在使用时也会遇到麻烦,那就是 get或者walk所需要的值的时候,诸多结果信息会通过附加的叶结点来返回,造成的后果是和很多标准的snmp管理软件不兼容。

在snmpd.conf的最后一部分,还有PASS-THROUGH CONTROL一节,里面说明了用pass MIBOID EXEC的语法可以动态管理节点的值,MIBOID会作为一个参数传给脚本,脚本的输出只要按照规定格式,在三行里分别打印MIBOID(传给它的那 个),TYPE,VALUE就可以了。

另外,除了通过snmpwalk和snmpget进行查询外,还可以snmpset,这个功能是exec和extend所完成不了的。

以下是snmpd.conf给的示例:
###############################################################################
# Pass through control.

# Usage:
#   pass MIBOID EXEC-COMMAND

# pass .1.3.6.1.4.1.2021.255 /bin/sh /usr/local/local/passtest

# % snmpwalk -v 1 localhost -c public .1.3.6.1.4.1.2021.255
# enterprises.ucdavis.255.1 = "life the universe and everything"
# enterprises.ucdavis.255.2.1 = 42
# enterprises.ucdavis.255.2.2 = OID: 42.42.42
# enterprises.ucdavis.255.3 = Timeticks: (363136200) 42 days, 0:42:42
# enterprises.ucdavis.255.4 = IpAddress: 127.0.0.1
# enterprises.ucdavis.255.5 = 42
# enterprises.ucdavis.255.6 = Gauge: 42
#
# % snmpget -v 1 localhost public .1.3.6.1.4.1.2021.255.5
# enterprises.ucdavis.255.5 = 42
#
# % snmpset -v 1 localhost public .1.3.6.1.4.1.2021.255.1 s "New string"
# enterprises.ucdavis.255.1 = "New string"
#

现在来对这个配置做个实验:
在snmpd.conf中配置:
pass .1.3.6.1.4.1.2021.255 /tmp/snmppasstest

#cat /tmp/snmppasstest
#!/bin/bash
echo $2 #因为snmpd是用EXEC -g MIBOID来调脚本的,所以MIBOID是第二个参数
echo integer
echo 911

重起snmpd就能直接snmpget它了
[root@localhost ~]# snmpget -v 2c -c public localhost .1.3.6.1.4.1.2021.255
UCD-SNMP-MIB::ucdavis.255 = INTEGER: 911

另外:
pass_persist是pass的另一种形式(用一个守护进程来替代脚本),所使用的守护进程的输出要严格遵循协议格式,具体请man snmpd.conf。()


阅读(4607) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~