分享

netsnmp配置

 汉江秋月夜 2012-05-17
Linux SNMP的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据设置是基站设置管理对象(也就是代理)的值,接收收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情

 net-snmp安装配置

 

 

  建议用RPM方式安装

1.  安装:   yum install  net-snmp*  (主要安装net-snmp  net-snmp-devel net-snmp-utils net-snmp-libs 组件)

               yum install  lm_sensors  (用于监控主板,CPU的工作电压,风扇转速、温度等数据。)


2. 配置:   

       主配置文件:        /etc/snmp/snmpd.conf

    常用定义项: 

1)首选是定义一个共同体名(community),这里是public(多数SNMP设备或服务默认都是是用PUBLIC),及可以访问这个public的用户名(sec name),这里是notConfigUserPublic相当于用户notConfigUser的密码:) ,source  net-snmp中用来对来源IP加以控制,即哪些可以获取SNMP信息

      #           sec.name          source          community 

com2sec    notConfigUser       default                 public 


2)定义一个组名(groupName)这里是notConfigGroup,及组的安全级别,把notConfigGroup这个用户加到这个组中。 

          sec.model:安全模式,可选值为v1/v2c/usm 

            groupName               securityModel       securityName 
group   notConfigGroup               v1                 notConfigUser   


            groupName              securityModel       securityName 
group   notConfigGroup              v1                 notConfigUser   

group   notConfigGroup              v2c               notConfigUser 


 3)定义一个可操作的范围(view)名, 这里是all,范围是 .1 
          name           incl/excl       subtree         mask(optional) 

   view      all             included        .1              --》表示可以查看.1节点下的所有设备信息

    注:   incl/excl:对下面的MIB子树是包括还是排除。 

        subtree:视图中涉及的MIB子树。 

        mask:掩码 


  4)定义notConfigUser这个组在all这个view范围内可做的操作(即权限),这时定义了notConfigUser组的成员可对.1这个范围做只读操作。 
           group                  context    sec.model      sec.level          prefix       read           write        notif 
access  notConfigGroup          ""              any              noauth            exact       all              none       none 

 注:

     context:  上下文,v1v2c中始终为空

     sec.model: 安全模式,可选值为v1/v2c/usm

     sec.level: 安全级别,可选值为auth/noauth/privv1v2c中只能为noauth

     prefix:   前缀,指定context如何与PDU中的context匹配,v3使用。

     read:    授权的读视图。

     write:   授权的写视图。

     notif:   授权的trap视图。

 

 3.  端口:                  标准的SNMP服务使用161和162端口,厂商私有的实现一般使用199、391、705和1993端口,net-snmp用udp 161     

   

4 . 常用命令:

 

 snmpd -v 显示版本

 snmpwalk   是对OID值的遍历(比如某个OID值下面有N个节点,则依次遍历出这N个节点的值。如果对某个叶子节点的OID值做walk,则取得            到数据就不正确了,因为它会认为该节点是某些节点的父节点,而对其进行遍历,而实际上该节点已经没有子节点了,那么它会            取出与该叶子节点平级的下一个叶子节点的值,而不是当前请求的节子节点的值。)

snmpget    是取具体的OID的值。(适用于OID值是一个叶子节点的情况)

snmpgetnext:  是取下一个节点的OID的值。

 

 语法:

snmpwalk/snmpbulkwalk  [OPTIONS] AGENT [OID]

[OPTIONS]:

 -v  1|2c|3                       指定SNMP版本

 -c COMMUNITY          指定community string

-m MIB[:...]                    指定MIB文件

  

 snmpget [OPTIONS] AGENT OID [OID]...

[OPTIONS]:

 -v  1|2c|3                    指定SNMP版本

 -c COMMUNITY          指定community string

-m MIB[:...]                    指定MIB文件

 

注释 :snmpget 不同于 snmpwalk ,必须在命令行给出 <object>.<instance> 的格式,不能只给出 object。

如:   snmpget -c public zeus system.sysDescr.0

  

实例:


1) snmpbulkwalk命令:   

      获取snmp服务器的mib-2各种资讯,snmpbulkwalk用于通过SNMPv2 的SNMP GET BULK请求命令与其它网络实体通信,只能用于             snmpv2,速度快于snmpwalk

     例子:snmpbulkwalk   -v   2c     -c public  127.0.0.1      .1.3.6.1.2.1.1     获取mib-2的system的数据

 

2)snmpwalk命令:

     获取snmp服务器的HOST-RESOURCES的各种资讯

    例子:  snmpwalk -v 2c 127.0.0.1 -c public  HOST-RESOURCES-MIB::hrSystem

    获取HOST-RESOURCES的hrSystem(系统日期/时间,初始化设备,内核引导参数,系统当前的登录用户数,当前的进程数,支持的最大进程数)

   snmpwalk -v 2c -c public localhost system    

  这条指令用于查看本机系统信息

   snmpwalk -v 2c -c public localhost  .1.3.6.1.4.1.2021.11.11.0    

   这条指令用于查看CPU空闲率信息, .1.3.6.1.4.1.2021.11.11.0  是主机CPU空闲率的oid


3)snmpdelta命令:

     监控网卡流量等信息, 指定共同体为public,协议为snmpv1,以表格的方式输出结果,显示时间戳;

    例子: 

        snmpdelta -c public -v 1 -Cs -CT 127.0.0.1 IF-MIB::ifInUcastPkts.2 IF-MIB::ifOutUcastPkts.2

        监控IF-MIB::ifInUcastPkts(输入流量),IF-MIB::ifOutUcastPkts(输出流量),,如监控本地的第二块网卡instance为2
        snmpdelta -c public -v 1 -Cs -CT 127.0.0.1 ifInDiscards.2

       监控ifInDiscards(已经丢弃的收到的数据包的总数),格式同上

 

4)snmpnetstat命令:

     查看snmp服务器的端口连接信息, 协议为snmp2c

例子: 
snmpnetstat -v 2c -c public  -a 127.0.0.1          获取127.0.0.1的所有开放端口状态
snmpnetstat -v 2c -c public  -i 127.0.0.1           获取127.0.0.1的网络接口状态

snmpnetstat -v 2c -c public -P tcp 127.0.0.1    获取127.0.0.1的TCP协议的开放端口状态

 

5) snmptranslate 命令:

          在 MIB OID 在数字和文字名称之间进行转换, 

 例子:

snmptranslate -On -IR HOST-RESOURCES-MIB::hrSystem

用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为 numberic        格式的oid,用-On(输出数字格式的oid),使用 -IR(允许“随机”访问 MIB)

snmptranslate -Onf -IR HOST-RESOURCES-MIB::hrSystem

用snmptranslate把symbol 格式的HOST-RESOURCES-MIB::hrSystem 转换为symbol 格式的 oid,用-Onf(输出符号格式的oid)

snmptranslate -Td iso.org.dod.internet.mgmt.mib-2

用snmptranslate输出该对象(iso.org.dod.internet.mgmt.mib-2)的详细定义,用-Td(包括文字名称、所属 MIB、类型、状态、读写权限、描述信息,数字格式的 OID)

snmptranslate -Tp iso.org.dod.internet.mgmt.mib-2

用snmptranslate打印从指定OID(.1.3.6.1.2.1)开始一直到该OID(.1.3.6.1.2.1)所属的 MIB 子树末端的树型结构信息

snmptranslate -Ta

用snmptranslate导出所有已经加载的 MIB 的数据,每个对象一行

snmptranslate -Tl

用snmptranslate导出所有已经加载的 MIB 的对象,并且输出完整的 oid 路径

snmptranslate -To

用snmptranslate导出已经加载的所有 MIB 的数字格式的 oid ,不含值和类型,仅仅有 oid 而已

snmptranslate -Ts   

用snmptranslate只输出文字格式的 OID 名称而已 

 

 

5. 默认不支持CPU,内存及硬盘信息,可以修改配置文件来配置

1) 增加: view systemview included .1     表示可以查看.1节点下的所有设备信息。

2) 

# proc mountd

# proc ntalkd 4

# proc sendmail 10 1

三行前的“#”号去掉,取消注释

3) 将

#exec echotest /bin/echo hello world

一行前的“#”号去掉,取消注释。

4) 将

#disk / 10000

一行前的“#”号去掉,取消注释。

5) 将

#load 12 14 14

一行前的“#”号去掉,取消注释。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多