用SNMP协议实现系统监控Word文件下载.docx
《用SNMP协议实现系统监控Word文件下载.docx》由会员分享,可在线阅读,更多相关《用SNMP协议实现系统监控Word文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
![用SNMP协议实现系统监控Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-10/9/25845363-f9b2-4d0e-bb61-c15e891e4f7f/25845363-f9b2-4d0e-bb61-c15e891e4f7f1.gif)
除了监测的内容需要尽量全面之外,同时我们还希望所使用的监测解决方案能够灵活和具备更多扩展功能。
例如有效地支持IT架构的变化和扩展,在监测量增加的情况下能够尽可能少地占用资源,拥有强大的事件通知机制等等。
今天本文所涉及的内容,主要是针对操作系统以及软件环境的监测,而且尤其是针对Linux操作系统的运行情况监测。
尽管目前有很多的商用软件以及解决方案来实现相关的功能,但是实际上我们也有很多开源的解决方案可以起到相同的作用,而且效果也非常不错。
下面的内容中,我们将会对这些解决方案的实现方法进行详细描述。
b.基于Linux上系统监测的基本原理以及种类:
在Linux系统上的系统监测所采用的方式基本上有两种:
第一种,通过SNMP协议结合数据采集软件来实现:
这种方法所涉及的架构一般包括两部分,其中一部分是被监测服务器,另外一部分则是网管工作站。
至于实现方法具体来说就是在Linux服务器上启动SNMP简单网络管理协议的进程snpmd来动态提供服务器在软件甚至硬件各方面的运行参数,这样服务器就成为了一个被监测的节点。
然后在其他的网管工作站上的客户端软件应该具备两个功能:
采集SNMP数据以及汇总统计信息。
在绝大多数情况下,网管工作站上的监测软件都会基于Web页面方式提供系统运行状态图,而且涵盖了各种运行指标。
同时新的状态信息能够动态更新到Web页面。
这种类型的监测所获得的数据格式标准而且全面,配置简单,所以从综合监测的角度看是一个不错的方案。
第二种,通过编写脚本调用系统状态监测的命令,并结合数据采集软件来实现:
在某些情况下SNMP协议的配置会相对比较麻烦,而且获取SNMP信息往往需要考虑选择不同的监测软件。
从另外一个角度讲,其实Linux操作系统本身就提供了很多非常好用的状态获取工具,如sar(可实现多个指标的监测),iostat(专用于I/O使用率监测),vmstat(专用于cpu和内存使用情况监测)以及free命令等工具。
这些工具都可以通过结合系统任务计划以及自编脚本进行周期性调用,这就给监测提供了相当的便利。
因为可以将这些命令嵌入到脚本中以周期性生成系统监测软件所需要的数据,最终一样可以通过这些数据结合绘图软件绘制出直观的统计图。
这种类型的监测所获得的信息更加灵活和精确,对于一些熟悉脚本编程的用户来说,使用起来更是得心应手。
另外采用这种方式的情况下,利用命令监测可以无限制扩展,用户可以通过各种管道来获得和定制自己的监测脚本。
所以综上所述,这两种监测方案各有优势。
因此我们会在下文中针对两种方案各提供一些案例和操作方法由易到难分别进行说明和演示。
各种系统监测手段在企业中部署和实现方法:
a.snmp协议的配置以及在Linux下和Windows上的测试方法:
首先我们来介绍一下第一种方法,即通过SNMP协议和数据采集软件来实现的系统运行监测方案。
因为在相当多的情况下绝大多数企业都倾向于选择通过SNMP来获取服务器运行的各种信息,毕竟因为SNMP协议是业界实现监测的重要标准。
因此我们花点时间来介绍一下SNMP协议的基本概念以及工作原理。
简单网络管理协议SNMP是一种广泛用于监测网络设备(计算机、路由器)甚至其他设备(例如UPS)的网络协议,也是专门设计用于在IP网络管理网络节点(包括服务器、工作站、路由器、交换机及HUBS等)的一种标准,属于应用层协议。
SNMP使网络管理员能够管理网络效能,发现并解决网络问题以及规划网络增长。
通过SNMP接收随机消息(及事件报告),网络管理系统将获知网络出现的各种问题。
SNMP管理的网络有三个主要组成部分:
被管理的设备(ManagedDevice)、代理(Agent)和网络管理系统(NetworkManagementStation即NMS)。
被管理的设备是一个网络节点,包含ANMP代理并处在管理网络之中,有时也称为网络单元,用于收集并存储网络信息,通过SNMP、NMS能得到这些信息。
被管理的设备可能是路由器、访问服务器,交换机和网桥、HUBS、主机或打印机等。
SNMP代理是被管理设备上的一个网络管理软件模块。
SNMP代理拥有本地的相关管理信息,并将他们转换成与SNMP兼容的格式。
NMS运行应用程序以实现监测被管理设备。
此外,NMS还为网络管理提供了大量的处理程序及必须的储存资源。
任何受管理的网络至少需要一个或多个NMS。
目前,SNMP有3种不同的版本:
SNMPv1、SNMPv2和SNMPv3。
第1版和第2版没有太大差距,但SNMPv2是增强版本,包含了其他协议操作。
前两种snmp协议主要使用基于团体名称(community)的方式来实现网管工作站对代理的访问认证,与前两种相比SNMPv3则包含更多安全机制和远程配置手段,在认证方面可以使用基于某种对称和非对称加密协议来加密的用户名和密码来实现网管工作站对代理的访问认证。
而且为解决不同SNMP版本间的不兼容问题,RFC3584定义了三者共存策略。
另外SNMP协议包括了四种基本的动作:
Get:
如果网络管理系统需要获得被监测的设备信息,则会执行get动作。
GetNext:
如果要获得的某个项目信息是一个项目列表中多个项目之一,网络管理系统会执行getnext获得相关所有项目信息。
Set:
网络管理系统使用set命令来改变被管理项目的某个值。
Trap:
如果被管理设备需要通知网络管理系统某些信息,需要执行trap命令。
最后需要说明的一点是在RedHatEnterpriseLinux中已经提供了SNMP相关的所有软件包,在这些软件包中提供了全部的MIB信息,信息文件存储于/usr/share/snmp/mibs。
所谓MIB是关于某个设备层次化的数据库(ManagementInformationBase)。
而且对于这个设备的每个值都采用唯一的ObjectIdentifier即OID表示,OID格式包括可用名称,前缀或者数字。
如果在系统中安装了net-snmp-utils包,则snmp中的MIB和OID信息可以通过snmptranslate命令来显示出整个MIB树以及其上OID的信息(如图所示)
snmptranslate主要用于转换以文字名称或者数字ID显示的OID信息以及列出snmp的MIB结构树。
刚才我们已经用不少的篇幅介绍了SNMP简单网络管理协议的基本原理和组成。
现在我们即将以红帽最新的企业版操作系统RedHatEnterpriseLinux5Update8(简称RHEL5u8)为例来演示如何配置和实现SNMP服务。
在RHEL5u8中提供了一个叫做net-snmp的rpm包,net-snmp是在IPv4和IPv6上执行SNMP的v1,v2和v3版本协议的一组程序。
需要特意说明一下的是,由于在大多数环境下针对企业应用都会使用稳定版本的RedHatEnterpriseLinux操作系统,所以后面所有操作所使用的Linux平台也都是RHEL,但是那些对技术体验感兴趣的用户也可以使用Fedora或者其他类型的Linux发行版来实现上述所有的操作。
在该例子中,假设服务器192.168.1.10是被监测的系统,我们将在其上分别配置和启用基于v1和v3版本的snmp服务,而另外一台主机192.168.1.100权充当管理工作站,并且用snmp命令来获得被监测系统的详细信息。
在服务器192.168.1.10上,基本信息如下图所示(如图所示)
首先配置v1版本的SNMP协议:
挂载DVD安装光盘,并从光盘中安装snmp相关的软件包:
lm_sensor,net-snmp,snmp-utils。
关于net-snmp包的作用刚才已介绍,而至于net-snmp-utils主要提供了使用snmp协议管理网络的一系列工具(如图所示)。
装完所需要的软件包之后,我们可以直接修改snmp的主配置文件/etc/snmp/snmpd.conf并重启服务来直接启用SNMPv1。
所做的修改如图所示:
(如图所示)。
采用SNMPv1版本的重要标志之一就是使网络管理设备访问代理时需要使用基于Community的团体的验证方式。
这里的Community使用默认的public,当然也可以根据自己的需求去修改为任意一个字符串。
完成之后保存该档并运行命令重启服务:
#servicesnmpdstart[Enter]#chkconfigsnmpdon[Enter]
为了监测是否能够正确获得整个系统中每个MIB的OID值,可以运行snmpwalk命令以获得响应的结果(Screenshot07.png),snmpwalk命令可通过snmp的GETNEXT动作自动获得MIB树上的管理信息。
例如,在这种情况下执行如下信息,表示获取全部mib和oid信息:
#snmpwalk–v1–cpublic192.168.1.10[Enter]
至此为止,被监测对象上的snmp就算配置完成了。
为了说明结果,我找了一个运行于Windows的操作系统上的利用snmp协议的监测软件来看看效果。
在Windows平台上能够实现该功能的软件有很多,例如Whatsup,Solawins等等。
这里以Whatsup为例,我的监测主机上操作系统选用的是WindowsServer2003EnterpriseEdition。
IP地址是192.168.1.100。
按照图示的步骤安装Whatsup软件,方法很简单,只要秉承Windows软件的安装风格——一路回车即可搞定(如图所示)。
由于我安装的是一个30天的免费试用版本,所以需要在启动产品的时候选择“ActivateLater”(如图所示)
并且在“DeviceDiscoveryMethod”中选择“IPRangeScan”(如图所示)。
之后起始地址都填入被监测设备的地址192.168.1.10(如图所示)
按照在/etc/snmp/snmpd.conf档中的内容输入团体名称“public”按照下图确定扫描内容并开始扫描,扫描时间需要根据设备的数量决定(如图所示)。
在“ActionPolicySelection”中选择“DoNotApplyanActionPolicy”并结束扫描(如图所示)。
最后通过“ReportView”标签选择“DeviceReports”并最终获得所有设备的Health状况(如图所示)。
在众多的系统监测软件中Whatsup的功能相对比较强大,而且设置方便,界面友好。
在很多企业的服务监测中是一个不错的选择,而且Whatsup的其