1

1.安装

Windows 安装请参考

默认安装为c:/usr/ 。可以执行如下文件,以便启动snmp agent:

snmpd

会提示需要配置snmpd.conf。

No log handling enabled - turning on stderr logging
Warning: no access control information configured.
  It's unlikely this agent can serve any useful purpose in this state.
  Run "snmpconf -g basic_setup" to help you configure the snmpd.conf file for this agent.
NET-SNMP version 5.5

不必使用提示中的命令,因为此命令引用了perl,但是perl的对应模块无法跑起来。看来perl要完蛋的传说并不是空穴来风。

snmpd.conf可以自己创建到/usr/etc/snmp/snmpd.conf内。

2.修改配置文件

配置之前的说明:我在网上看到的所有配置都是com2sec,group,access这三个配置,但是从默认的snmp.conf文件中有一段话:

没必要使用 com2sec/group/access配置,使用ro(w)user,ro(w)community结合合适的views,就可以覆盖大多数需求了。

2.1  配置监听地址

snmpd默认监听本地IP的UDP161端口,等待snmp请求

agentAddress udp:161

2.2  配置视图(view)

格式:view viewName type oid[mask]

参数说明:   

    
    viewName : view名称
    type : 有两个值:include和exclude(包括或者排除)
    oid:可以访问的oid(mib子树)
    [mask]:对oid的掩码 (可选参数)

案例:

    view systemonly included .1.3.6.1.2.1 

2.3  配置共同体(community)

格式:ro(w)community communityName source

参数说明:

rocommunity定义一个只读权限的共同体,rwcommunity定义一个读写权限的共同体
rocommunity6或   rwcommunity6表示监听IPv6。
communityName:共同体名称

source:可以访问的IP地址范围,默认为”default”,即任何IP都能访问。

                 可选参数:-V viewName  限制共同体只能访问viewName下的节点

实际配置文件

agentAddress udp:161
view systemonly included .1.3.6.1.2.1 
rocommunity public default 

3. 测试

修改完配置之后,重启snmpd:

snmpd

连接测试:(该节点表示获取主机内存大小)

snmpwalk -v 1 -c public localhost .1.3.6.1.2.1.1.1
SNMPv2-MIB::sysDescr.0 = STRING: Windows DESKTOP-70OA76Q 6.2.9200   Professional

得到类似以上的结果,就说明snmpd配置成功。

配置MIB库

Windows版本的snmp自带有很多MIB,位于C:\usr\share\snmp\mibs

因此可以对OID和MIB name做互相转换:

snmptranslate -On SNMPv2-MIB::sysDescr.0
.1.3.6.1.2.1.1.1.0

snmptranslate .1.3.6.1.2.1.1.1.0
SNMPv2-MIB::sysDescr.0

添加自己的mib

之前的笔记有提到自己创建的一个定制mib文件

https://github.com/1000copy/tbit-guard-snmp/blob/master/tbit.mib

可以把它加入到C:\usr\share\snmp\mibs目录内,文件名无所谓。然后为snmptranslate加入选项 -mALL ,表示加载所有在此目录内的mib文件:

snmptranslate -m ALL .1.3.6.1.4.1.66666

你应该看到如下消息,表明mib加载成功:

tbitinc::tbit

详细的说明如下:

-m MIBLIST

      指定一个用冒号分隔的MIB模块列表(不是文件),以便为这个应用程序加载。 这将覆盖(或增加)环境变量MIBS、snmp.conf的内容。指令mibs,以及硬编码到Net-SNMP库中的MIBs列表。如果MIBLIST有一个前导的'-'或'+'字符,那么所列出的MIB模块将被加载到默认列表之外,分别位于该列表之前或之后。
      否则,将加载指定的MIB,而不是这个默认列表。特殊关键字ALL用于加载MIB目录搜索列表中的所有MIB模块。 每一个名字不以". "开头的文件都会被解析为是一个
      MIB文件。

-M DIRLIST

      指定一个以冒号分隔的目录列表来搜索MIB。 这将覆盖(或增强)环境变量MIBDIRS和snmp.conf指令mibdirs。
      以及硬编码到 Net-SNMP 库中的默认目录 (/usr/share/snmp/mibs)。

      如果DIRLIST有一个前导的'-'或'+'字符,那么给定的目录会被添加到默认列表中,在这个列表的目录之前或之后进行搜索。
      分别进行搜索。 否则,将搜索指定的目录,而不是这个默认列表。

      请注意,列表中出现在后面的目录要比前面的目录优先。 要避免搜索任何MIB目录,请将MIBDIRS环境中的
      变量为空字符串("")。

      请注意,使用-m选项或mibs配置指令指定的MIB将从-M选项(或等价物)列出的目录中加载。
      mibfile指令采用的是指定MIB文件的完整路径,所以不需要在MIB目录搜索列表中出现。

Reco
4.6k 声望541 粉丝

敢作敢为