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天前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
137 26
|
10天前
|
Kubernetes Linux 网络安全
CentOS 7.8下使用kubeadm安装Kubernetes 1.26
这就是所有的前线报告,冒险家们,你们已经做好准备,开始在CentOS 7.8上通过Kubeadm安装Kubernetes 1.26的挑战了吗?走上这段旅程,让你的代码飞翔吧。
57 16
|
18天前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
48 10
|
1月前
|
Linux 虚拟化 Windows
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
### 安装VMtools的作用及步骤 安装VMtools可以实现Windows与CentOS之间的字符串和命令粘贴、文件夹共享等操作。在CentOS中,通过VMware菜单栏选择“VMware Tools”,将下载的压缩包拷贝到`/opt`目录并解压。接着进入终端,使用`./vmware-install.pl`命令完成安装。安装后重启系统,即可实现Windows与CentOS之间的字符和文件共享。具体步骤包括解压文件、启动命令行终端、安装VMtools以及配置文件共享。
95 16
VMware隐藏黑科技!CentOS安装这个神器效率翻倍 文件互传竟比U盘还快?
|
19天前
|
Linux 网络安全 数据安全/隐私保护
在CentOS 7.9中安装sshpass教程
如果在控制台显示出sshpass的使用方法,那就说明我们的大餐已经准备好,sshpass已经成功安装。 以上就是在 CentOS 7.9 中安装 sshpass 的彩色步骤,专业而生动,就像大厨在厨房一样顺利。
54 8
|
1月前
|
存储 IDE Linux
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
本文详细介绍了在VMware虚拟机中安装CentOS 6.8的全过程。首先,需确保已安装VMware并开启V-CPU虚拟化功能,可通过BIOS设置或使用LeoMoon CPU-V工具检测。接着,下载CentOS镜像文件,并在VMware中新建虚拟机,配置CPU、内存、硬盘等参数。最后,加载ISO镜像启动虚拟机,按照提示完成CentOS的安装,包括语言、键盘、存储方式、地区、密码设置及硬盘分区等步骤。安装完成后,以root用户登录即可进入系统桌面,开始学习Linux命令和操作。
160 12
零基础保姆级教程!手把手教你免费玩转Linux CentOS安装+学习环境搭建(附避坑指南)
|
1月前
|
存储 Linux 网络安全
如何从CentOS7升级到8?CentOS8最新安装教程
从CentOS 7升级到8只需三步:清理系统、更换软件包及存储库、安装新内核与发布版本。首先确保系统最新并清理冗余包,接着替换基础系统包为CentOS 8版本,最后通过DNF工具完成内核更新与系统同步。整个过程需在终端执行,建议升级前备份VPS快照以防数据丢失。此方法可避免重装系统导致的数据清除问题,实现平滑升级。
115 6
|
2月前
|
缓存 Ubuntu Linux
Linux中yum、rpm、apt-get、wget的区别,yum、rpm、apt-get常用命令,CentOS、Ubuntu中安装wget
通过本文,我们详细了解了 `yum`、`rpm`、`apt-get`和 `wget`的区别、常用命令以及在CentOS和Ubuntu中安装 `wget`的方法。`yum`和 `apt-get`是高层次的包管理器,分别用于RPM系和Debian系发行版,能够自动解决依赖问题;而 `rpm`是低层次的包管理工具,适合处理单个包;`wget`则是一个功能强大的下载工具,适用于各种下载任务。在实际使用中,根据系统类型和任务需求选择合适的工具,可以大大提高工作效率和系统管理的便利性。
258 25
|
2月前
|
监控 Linux
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
82 13
yum install -y net-snmp-devel 安装不成功 zabbix项目安装,Errors during downloading metadata for repository ‘extras-common’:问题解决方案-优雅草卓伊凡
|
2月前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
101 20