linux snmp安装配置

1.  安装:  

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

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


2. 配置:  

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

   常用定义项:

(1)首选是定义一个共同体名(community),这里是public(多数SNMP设备或服务默认都是是用PUBLIC),及可以访问这个public的用户名(sec name),这里是notConfigUser。Public相当于用户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:  上下文,v1、v2c中始终为空。

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

     sec.level: 安全级别,可选值为auth/noauth/priv,v1、v2c中只能为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

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


你可能感兴趣的:(snmp)