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,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 Ubuntu Linux
VMware-安装CentOS系统教程及安装包
虚拟机相当于是一个独立于你电脑的环境,在这个环境上面,你可以安装Linux、Windows、Ubuntu等各个类型各个版本的系统,在这个系统里面你不用担心有病读等,不用担心文件误删导致系统崩溃。 虚拟机也和正常的电脑系统是一样的,也可以开关机,不用的时候,你关机就可以了,也不会占用你的系统资源,使用起来还是比较方便 这里也有已经做好的CentOS 7系统,下载下来解压后直接用VMware打开就可以使用
414 69
|
1月前
|
Ubuntu Linux 索引
Centos 7、Debian及Ubuntu系统中安装和验证tree命令的指南。
通过上述步骤,我们可以在CentOS 7、Debian和Ubuntu系统中安装并验证 `tree`命令。在命令行界面中执行安装命令,然后通过版本检查确认安装成功。这保证了在多个平台上 `tree`命令的一致性和可用性,使得用户无论在哪种Linux发行版上都能使用此工具浏览目录结构。
218 78
|
2月前
|
Linux 网络安全 Apache
针对在Centos/Linux安装Apache过程中出现的常见问题集锦
以上每个问题的解决方案应深入分析错误日志、系统消息和各种配置文件,以找到根本原因并加以解决。务必保持系统和Apache软件包更新到最新版本,以修复已知的bugs和安全漏洞。安装和管理Web服务器是一项需要细致关注和不断学习的任务。随着技术的发展,推荐定期查看官方文档和社区论坛,以保持知识的更新。
172 80
|
24天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
115 10
|
1月前
|
运维 网络协议 Linux
CentOS下Bind服务的安装与故障排查
通过以上的步骤,您应该能够在CentOS系统上安装并配置BIND DNS服务,并进行基本的故障排查。
171 0
|
2月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
253 2
|
3月前
|
机器人 Linux
CentOS 7系统中安装特定版本CMake 3.21.2的方法。
到这里,过程已经全部完成。如果你跟随上面的步骤来,那么你现在已经拥有了一个全新的CMake版本在你的CentOS 7系统上了。这个过程就像是你通过一系列仪式,唤醒了一个沉睡已久的古老机器人,它现在完全按照你的意愿来帮你构建和编译软件了。
217 18
|
3月前
|
安全 Linux
安装EPEL Repository Centos 7.9
记住,行走在Linux的世界,把“学习”作为你不可或缺的随身宝典。今天你学会了如何将EPEL这座外来的宝库接入你的系统,明天,你或许就能在这座宝库中发现一款能领你走向Linux大师之路的神器。
191 5
|
4月前
|
Kubernetes Linux 开发者
在CentOS 7.8上使用kubeadm安装k8s 1.26
至此,你已经在CentOS 7.8上使用kubeadm成功安装了k8s 1.26。你可以通过输入 `kubectl get nodes`来查看节点状态,如果显示为Ready,那么恭喜你,你的Kubernetes集群已经准备好了。
200 23