您的位置:首页 > 运维架构 > Linux

linux下安装与配置net-snmp服务

2014-01-09 20:57 435 查看
linux下安装与配置net-snmp服务

分类: LINUX

一、进入光盘目录安装所需软件包

      # cd /media/RHEL_5.6\ i386\ DVD/Server

      net-snmp以及所有相关包如下:

      net-snmp-5.3.2.2-9.el5_5.1.i386.rpm

      net-snmp-devel-5.3.2.2-9.el5_5.1.i386.rpm

      net-snmp-libs-5.3.2.2-9.el5_5.1.i386.rpm

      net-snmp-perl-5.3.2.2-9.el5_5.1.i386.rpm

      net-snmp-utils-5.3.2.2-9.el5_5.1.i386.rpm
注意:安装时要遵循如下顺序

1.先安装net-snmp-lib这个软件包

[root@test Server]# rpm -ivh net-snmp-libs-5.3.2.2-9.el5_5.1.i386.rpm 

warning: net-snmp-libs-5.3.2.2-9.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

        package net-snmp-libs-5.3.2.2-9.el5_5.1.i386 is already installed

2.按下来安装net-snmp-5.x时会报错(是包依赖关系)

[root@test Server]# rpm -ivh net-snmp-5.3.2.2-9.el5_5.1.i386.rpm 

warning: net-snmp-5.3.2.2-9.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

error: Failed dependencies:

        libsensors.so.3 is needed by net-snmp-5.3.2.2-9.el5_5.1.i386
在网上搜了搜,说是得先安装这样一个包“lm_sensors-*”,安装完后问题解决

[root@test Server]# rpm -ivh lm_sensors-*

warning: lm_sensors-2.10.7-9.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:lm_sensors             ########################################### [ 50%]

 

 

   2:lm_sensors-devel       ########################################### [100%]

3.安装net-snmp-5.x软件包

[root@test Server]# rpm -ivh net-snmp-5.3.2.2-9.el5_5.1.i386.rpm 

warning: net-snmp-5.3.2.2-9.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:net-snmp               ########################################### [100%]

4.安装net-snmp-perl以及net-snmp-utils包   备注:net-snmp-devel包无需安装。

[root@test Server]# rpm -ivh net-snmp-perl-5.3.2.2-9.el5_5.1.i386.rpm 

warning: net-snmp-perl-5.3.2.2-9.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:net-snmp-perl          ########################################### [100%]

[root@test Server]# rpm -ivh net-snmp-utils-5.3.2.2-9.el5_5.1.i386.rpm 

warning: net-snmp-utils-5.3.2.2-9.el5_5.1.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

   1:net-snmp-utils         ########################################### [100%]

如linux所在主机可以上外网,通过yum安装更为方便,命令如下:

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

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

二、设置snmp服务

1.在    #       name           incl/excl    subtree         mask(optional) 

   命令行后插入        view    allview      included   .1

   表示可以查看.1节点下的所有设备信息

 各字段含义如下:

 incl/excl:对下面的MIB子树是包括还是排除。 
 subtree:视图中涉及的MIB子树。 

 mask:掩码 
2.将    #       group          context sec.modelsec.level prefix read   write  notif 

 后边的命令行       access
 notConfigGroup ""      any       noauth   exact  systemview none none

 改为                    access  notConfigGroup ""      any       noauth   exact  allview none none 

 定义notConfigUser这个组在all这个view范围内可做的操作(即权限),这时定义了notConfigUser组的成员可对.1这个范围做只读操作。 

 各字段含义如下:

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.#           sec.name          source          community 

com2sec    notConfigUser       default                 public 

各字段含义如下:

sec.name:表示可以访问这个public的用户名

source:表示对来源IP加以控制,即哪些可以获取SNMP信息

community:表示定义一个共同体名,这里是public(多数SNMP设备或服务默认都是是用PUBLIC)

4. groupName              securityModel       securityName 
group   notConfigGroup              v1                 notConfigUser   

group   notConfigGroup              v2c               notConfigUser 
各字段含义如下:
groupName:定义一个组名,这里是notConfigGroup
securityModel:组的安全级别,可选值为v1/v2c/usm
securityName:与上面定义的用户相同

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

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

三、启动服务
/etc/rc.d/init.d/snmpd restart

或者 service snmpd start
四、设置开机自启动

# chkconfig snmpd on

# chkconfig --list | grep snmpd

snmpd           0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
五、验证snmp服务

(1)使用snmpwalk命令,查看本机localhost的主机名:

[root@test ~]# snmpwalk -v 2c -c public localhost sysName.0

SNMPv2-MIB::sysName.0 = STRING: test.abc.com

如上,获取到本机主机名为test.abc.com,则表示snmp服务已经可以正常使用。

(2)使用snmptranslate命令,检查snmp工具是否可以使用:

[root@test ~]# snmptranslate -To | head

.1.3

.1.3.6

.1.3.6.1

.1.3.6.1.1

.1.3.6.1.2

.1.3.6.1.2.1

.1.3.6.1.2.1.1

.1.3.6.1.2.1.1.1

.1.3.6.1.2.1.1.2

.1.3.6.1.2.1.1.3

如上,查出了部分oid,则表示snmp工具可以正常使用。

(3)测试远端主机是否可以获取数据。

[root@webserver01 ~]# snmpwalk -v 2c -c public 192.168.1.40 sysName.0

SNMPv2-MIB::sysName.0 = STRING: test.abc.com

如上,可以看到通过远端主机获取到的主机名,与在本机获取到的主机名是一致的。

 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 名称而已 

原文出处:http://blog.chinaunix.net/uid-28417061-id-3570649.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: