CentOS6.5下SNMP安装

简介:

SNMP(Simple Network Management Protocol,简单网络管理协议)的前身是简单网关监控协议(SGMP),用来对通信线路进行管理。

一、查看是否安装snmp

我的测试环境里已经安装过了snmp,这里我先卸载再安装

1
2
3
4
5
6
7
8
9
10
[root@localhost ~] # rpm -qa|grep -i net-snmp
net-snmp-5.5-49.el6.x86_64
net-snmp-libs-5.5-49.el6.x86_64
[root@localhost ~] # rpm -qa|grep -i net-snmp|xargs rpm -e --nodeps
[root@localhost ~] # rpm -qa|grep -i net-snmp
[root@localhost Packages] # rpm -qa|grep -i sensors
lm_sensors-libs-3.1.1-17.el6.x86_64
[root@localhost Packages] # rpm -qa|grep -i sensors|xargs rpm -e --nodeps
[root@localhost Packages] # rpm -qa|grep -i sensors
[root@localhost Packages] #

二、安装snmp

直接挂载系统安装盘,里面就有rpm安装包,

安装snmp服务需要的rpm包:

lm_sensors-libs-3.1.1-17.el6.x86_64.rpm

lm_sensors-3.1.1-17.el6.x86_64.rpm

以下这三个包有一定的版本要求,必须版本一致,否则安装无法成功。安装也有一定顺序,在安装的时候,会有提示。

net-snmp-libs-5.5-49.el6.x86_64.rpm

net-snmp-5.5-49.el6.x86_64.rpm   必须先安装net-snmp-libs

net-snmp-utils-5.5-49.el6.x86_64.rpm   不是必须安装的包,但安装它会带来不少帮助,它提供了很多工具,例如可以使用snmptranslate命令查看oid,可以使用snmpget、snmpwalk命令等。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@localhost src] # mount /dev/cdrom /mnt/
[root@localhost src] # cd /mnt/Packages/
[root@localhost Packages] # uname -i
x86_64
[root@localhost Packages] # rpm -ivh lm_sensors-libs-3.1.1-17.el6.x86_64.rpm 
warning: lm_sensors-libs-3.1.1-17.el6.x86_64.rpm: Header V3 RSA /SHA1  Signature, key ID c105b9de: NOKEY
Preparing...                 ########################################### [100%]
    1:lm_sensors-libs         ########################################### [100%]
[root@localhost Packages] # rpm -ivh lm_sensors-3.1.1-17.el6.x86_64.rpm 
warning: lm_sensors-3.1.1-17.el6.x86_64.rpm: Header V3 RSA /SHA1  Signature, key ID c105b9de: NOKEY
Preparing...                 ########################################### [100%]
    1:lm_sensors              ########################################### [100%]
[root@localhost Packages] # rpm -ivh net-snmp-libs-5.5-49.el6.x86_64.rpm 
warning: net-snmp-libs-5.5-49.el6.x86_64.rpm: Header V3 RSA /SHA1  Signature, key ID c105b9de: NOKEY
Preparing...                 ########################################### [100%]
    1:net-snmp-libs           ########################################### [100%]
[root@localhost Packages] # rpm -ivh net-snmp-5.5-49.el6.x86_64.rpm 
warning: net-snmp-5.5-49.el6.x86_64.rpm: Header V3 RSA /SHA1  Signature, key ID c105b9de: NOKEY
Preparing...                 ########################################### [100%]
    1:net-snmp                ########################################### [100%]
[root@localhost Packages] # rpm -ivh net-snmp-utils-5.5-49.el6.x86_64.rpm 
warning: net-snmp-utils-5.5-49.el6.x86_64.rpm: Header V3 RSA /SHA1  Signature, key ID c105b9de: NOKEY
Preparing...                 ########################################### [100%]
    1:net-snmp-utils          ########################################### [100%]
[root@localhost Packages] #

或者yum装

1
2
[root@localhost Packages] # yum -y install net-snmp-libs net-snmp net-snmp-utils   ^C
[root@localhost Packages] # yum -y install net-snmp*

验证snmp服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[root@localhost Packages] # chkconfig snmpd on
[root@localhost Packages] # rpm -qc net-snmp
/etc/snmp/snmpd .conf
/etc/snmp/snmptrapd .conf
/etc/sysconfig/snmpd
/etc/sysconfig/snmptrapd
[root@localhost Packages] # rpm -qf /etc/snmp/snmpd.conf 
net-snmp-5.5-49.el6.x86_64
[root@localhost Packages] # snmpwalk -v 2c -c public 127.0.0.1 sysName.0  #获取到本机主机名
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
[root@localhost Packages] # snmptranslate -To|head  #查oid
.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
[root@localhost Packages] #

启动时发生错误:

snmpd: error while loading shared libraries: libnetsnmpagent.so.25:

cannot open shared object file: No such file or directory

解决办法:#export LD_LIBRARY_PATH=/usr/local/lib 

但这样只能使用一次,最好是:vi /etc/profile  在最后一行加入:export 

LD_LIBRARY_PATH=/usr/local/lib


三、配置snmp

安装完成后,使用的是snmp的默认配置,通过这些默认配置,我们只能获取主机的部分信息。但一些其他的重要信息,无法获取。如主机的CPU使用情况,内存使用情况等。

1、

1
2
3
[root@localhost Packages] # vim /etc/snmp/snmpd.conf 
#         sec.name        source          community
com2sec  notConfigUser    default          public

首先定义一个共同体名称(community),这里是 public ,及可以访问这个 public 的用户名(sec name),这里是 notConfigUser 。public 相当于用户 notConfigUser 的密码。

2、

1
2
3
4
[root@localhost Packages] # vim /etc/snmp/snmpd.conf 
#       groupName       securityModel     securityName
group   notConfigGroup     v1             notConfigUser
group   notConfigGroup     v2c            notConfigUser

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


3、修改查看设备节点的权限

1
2
3
[root@localhost Packages] # snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.11.0
UCD-SNMP-MIB::ssCpuIdle.0 = No  more  variables left  in  this MIB View (It is past the end of the MIB tree)
[root@localhost Packages] #

无法获取CPU的空闲率(注:1.3.6.1.4.1.2021.11.11.0是主机CPU空闲率的oid),

view:定义了可以查看哪些节点设备的信息。snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,而主机CPU和内存等设备都不在这些节点下,所以无法获取这些数据。

1
2
3
4
5
6
[root@localhost Packages] # vim /etc/snmp/snmpd.conf 
# Make at least  snmpwalk -v 1 localhost -c public system fast again.
#          name           incl/excl     subtree         mask(optional)
view        all           included       .1
view    systemview        included       .1.3.6.1.2.1.1
view    systemview        included       .1.3.6.1.2.1.25.1.1

在此处添加了一行:

view    all    included   .1

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

1
2
3
[root@localhost Packages] # snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.4.1.2021.11.11.0
UCD-SNMP-MIB::ssCpuIdle.0 = INTEGER: 99
[root@localhost Packages] #

4

1
2
3
4
[root@localhost Packages] # vim /etc/snmp/snmpd.conf 
#           group        context sec.model  sec.level prefix   read     write  notif
access  notConfigGroup     ""       any       noauth    exact     all      none  none
[root@localhost Packages] # /etc/init.d/snmpd restart

定义组notConfigGroup在all这个视图范围内可做的操作,这时定义了 notConfigGroup组的成员可对 .1 这个视图做只读操作。这里的名称all要和view中的名称all保持一致.这样对 snmpd.conf 文件就基本完成了.

1
2
3
4
5
6
[root@localhost Packages] # snmpwalk -v 2c 127.0.0.1 -c public system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-431.el6.x86_64  #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (212) 0:00:02.12
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure  /etc/snmp/snmp . local .conf)
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain

上述信息说明 SNMP 已经正常工作了

四、防火墙开启UDP 161端口

1
2
3
4
[root@localhost ~] # vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p tcp --dport 161 -j ACCEPT
[root@localhost ~] # /etc/init.d/iptables restart

SNMP安装、简单配置完成,至此,可以通过SNMP获取本地的相关信息.


现在很多监控系统都是根据SNMP进行的,而SNMP监控的性能指标很多都是通过snmpwalk采集设备的OID信息。snmpwalk是SNMP的一个工具,它使用SNMP的GETNEXT请求查询指定OID(SNMP协议中的对象标识)入口的所有OID树信息,并显示给用户。通过snmpwalk也可以查看支持SNMP协议(可网管)的设备的一些其他信息,比如cisco交换机或路由器IP地址、内存使用率等。snmpwalk没有单独的安装包,它被包含在net-snmp-utils软件包中。

一、snmpwalk安装

1
2
[root@localhost ~] # yum -y install net-snmp-utils
[root@localhost ~] # snmpwalk -h

wKiom1eS3VzhWdXyAACq2Z1CT20096.png

snmpwalk的参数比较多,但是我们比较常用的就只有-v和-c参数:

–h:显示帮助。

–v:指定snmp的版本, 1或者2c或者3。

–c:指定连接设备SNMP密码。

–V:显示当前snmpwalk命令行版本。

–r:指定重试次数,默认为0次。

–t:指定每次请求的等待超时时间,单为秒,默认为3秒。

–l:指定安全级别:noAuthNoPriv|authNoPriv|authPriv。

–a:验证协议:MD5|SHA。只有-l指定为authNoPriv或authPriv时才需要。

–A:验证字符串。只有-l指定为authNoPriv或authPriv时才需要。

–x:加密协议:DES。只有-l指定为authPriv时才需要。

–X:加密字符串。只有-l指定为authPriv时才需要。

二、snmpwalk的使用

snmpwalk使用方法很简单:

snmpwalk -v 1或2c或3(代表SNMP版本) -c SNMP密码 IP地址 OID(对象标示符)

–v:指定snmp的版本, 1或2c或3,该参数必须有。

–c:指定连接设备SNMP读密码,该参数必须有。

IP:指定要walk的设备的IP地址,该参数必须有。

OID:代表要获取设备的指标oid,该参数不是必须的。

例如:获取10.15.44.162进程数量、系统总内存

这里使用了iReasoning MIB Browser这个MIB浏览软件以配合实验。

wKioL1eS6VyQPdOIAAJKauQ01Vo691.pngwKiom1eS6lKxOXmOAAJKauQ01Vo749.png

一些snmp常用的一些OID,比如cpu、内存、硬盘什么的。先了解这些,在使用snmp监控服务器。

系统参数(1.3.6.1.2.1.1)
OID 描述 备注 请求方式
.1.3.6.1.2.1.1.1.0 获取系统基本信息 SysDesc GET
.1.3.6.1.2.1.1.3.0 监控时间 sysUptime GET
.1.3.6.1.2.1.1.4.0 系统联系人 sysContact GET
.1.3.6.1.2.1.1.5.0 获取机器名 SysName GET
.1.3.6.1.2.1.1.6.0 机器坐在位置 SysLocation GET
.1.3.6.1.2.1.1.7.0 机器提供的服务 SysService GET
.1.3.6.1.2.1.25.4.2.1.2 系统运行的进程列表 hrSWRunName WALK
.1.3.6.1.2.1.25.6.3.1.2 系统安装的软件列表 hrSWInstalledName WALK

网络接口(1.3.6.1.2.1.2)
OID 描述 备注 请求方式
.1.3.6.1.2.1.2.1.0 网络接口的数目 IfNumber GET
.1.3.6.1.2.1.2.2.1.2 网络接口信息描述 IfDescr WALK
.1.3.6.1.2.1.2.2.1.3 网络接口类型 IfType WALK
.1.3.6.1.2.1.2.2.1.4 接口发送和接收的最大IP数据报[BYTE] IfMTU WALK
.1.3.6.1.2.1.2.2.1.5 接口当前带宽[bps] IfSpeed WALK
.1.3.6.1.2.1.2.2.1.6 接口的物理地址 IfPhysAddress WALK
.1.3.6.1.2.1.2.2.1.8 接口当前操作状态[up|down] IfOperStatus WALK
.1.3.6.1.2.1.2.2.1.10 接口收到的字节数 IfInOctet WALK
.1.3.6.1.2.1.2.2.1.16 接口发送的字节数 IfOutOctet WALK
.1.3.6.1.2.1.2.2.1.11 接口收到的数据包个数 IfInUcastPkts WALK
.1.3.6.1.2.1.2.2.1.17 接口发送的数据包个数 IfOutUcastPkts WALK

CPU及负载
OID 描述 备注 请求方式
. 1.3.6.1.4.1.2021.11.9.0 用户CPU百分比 ssCpuUser GET
. 1.3.6.1.4.1.2021.11.10.0 系统CPU百分比 ssCpuSystem GET
. 1.3.6.1.4.1.2021.11.11.0 空闲CPU百分比 ssCpuIdle GET
. 1.3.6.1.4.1.2021.11.50.0 原始用户CPU使用时间 ssCpuRawUser GET
.1.3.6.1.4.1.2021.11.51.0 原始nice占用时间 ssCpuRawNice GET
. 1.3.6.1.4.1.2021.11.52.0 原始系统CPU使用时间 ssCpuRawSystem. GET
. 1.3.6.1.4.1.2021.11.53.0 原始CPU空闲时间 ssCpuRawIdle GET
. 1.3.6.1.2.1.25.3.3.1.2 CPU的当前负载,N个核就有N个负载 hrProcessorLoad WALK

内存及磁盘(1.3.6.1.2.1.25)
OID 描述 描述 请求方式
.1.3.6.1.2.1.25.2.2.0 获取内存大小 hrMemorySize GET
.1.3.6.1.2.1.25.2.3.1.1 .1.3.6.1.2.1.25.2.3.1.1 hrStorageIndex WALK
.1.3.6.1.2.1.25.2.3.1.2 .1.3.6.1.2.1.25.2.3.1.2 hrStorageType[OID] WALK
.1.3.6.1.2.1.25.2.3.1.3 存储设备描述 hrStorageDescr WALK
.1.3.6.1.2.1.25.2.3.1.4 簇的大小 hrStorageAllocationUnits WALK
.1.3.6.1.2.1.25.2.3.1.5 簇的的数目 hrStorageSize WALK
.1.3.6.1.2.1.25.2.3.1.6 使用多少,跟总容量相除就是占用率 hrStorageUsed WALK
.1.3.6.1.4.1.2021.4.3.0 Total Swap Size(虚拟内存) memTotalSwap GET


端口:   .1.3.6.1.2.1.6.13.1.3

             .1.3.6.1.2.1.6.13.1.3.x.y  可以查出某个主机的某个端口的连接数(x为主机ip,y为端口号)

             snmpwalk -v2c -c public 10.15.44.239 .1.3.6.1.2.1.6.13.1.3.10.15.44.239.80

            用wc -l进行统计即可得出某个端口的连接数

            snmpwalk -v2c -c public 10.15.44.239 .1.3.6.1.2.1.6.13.1.3.10.15.44.239.80|wc -l

进程:   .1.3.6.1.2.1.25.4.2.1.2

目录:   .1.3.6.1.2.1.25.4.2.1.4

挂载点:   .1.3.6.1.2.1.25.3.8.1.3




本文转自 justin_peng 51CTO博客,原文链接:http://blog.51cto.com/ityunwei2017/1790343,如需转载请自行联系原作者

相关文章
|
8天前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
2天前
|
存储 Linux 网络安全
Centos安装Docker的详细安装步骤,Docker相关组件:docker-ce-cli、docker-ce和containerd.io的区别
Centos安装Docker的详细安装步骤,Docker相关组件:docker-ce-cli、docker-ce和containerd.io的区别;CentOS7安装DockerCompose;Docker镜像仓库
|
7天前
|
应用服务中间件 Linux 网络安全
CentOS 7 上安装 Nginx
在 CentOS 7 上安装 Nginx 的步骤包括:添加 EPEL 仓库,安装 Nginx,启动 Nginx,配置防火墙规则,最后通过访问服务器 IP 验证安装是否成功
|
11天前
|
Linux Python
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
【Elasticsearch】linux使用supervisor常驻Elasticsearch,centos6.10安装 supervisor
14 3
|
11天前
|
Ubuntu Linux 虚拟化
VMware安装centos7教程(1)
VMware安装centos7教程(1)
69 1
|
16天前
|
安全 关系型数据库 MySQL
CentOS 8 中安装与配置 MySQL
CentOS 8 中安装与配置 MySQL
78 3
|
16天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
293 1
|
17天前
|
消息中间件 Linux
Centos安装RabbitMQ
Centos安装RabbitMQ
26 3
|
17天前
|
Linux Docker 容器
Centos8安装Docker
Centos8安装Docker
65 1
|
18天前
|
Linux 测试技术 开发工具
CentOS Linux 8使用阿里源(安装jdk11、git测试)
CentOS Linux 8使用阿里源(安装jdk11、git测试)
84 1