服务器状态监控之snmp

合集下载

snmp是什么协议

snmp是什么协议

snmp是什么协议SNMP是一种网络管理协议,全称是Simple Network Management Protocol,它是一种应用层协议,用于网络设备之间的管理和监控。

SNMP协议可以帮助网络管理员实时监控网络设备的状态、性能和运行情况,从而及时发现和解决网络故障,保障网络的稳定运行。

首先,我们来了解一下SNMP协议的基本原理。

SNMP协议的核心是管理信息库(MIB)和代理器。

MIB是一种数据库,存储了网络设备的各种管理信息,如设备的型号、厂商、配置信息、运行状态等。

而代理器则是安装在网络设备上的软件,负责收集设备的管理信息,并响应来自网络管理系统的请求。

通过SNMP协议,网络管理系统可以向代理器发送请求,获取设备的管理信息,也可以向代理器发送命令,对设备进行配置和管理。

SNMP协议主要由三个部分组成,管理站、代理器和MIB。

管理站是指网络管理系统,它负责监控和管理网络设备。

代理器是安装在网络设备上的软件,负责收集设备的管理信息,并响应管理站的请求。

MIB是存储在代理器中的数据库,包含了设备的各种管理信息。

管理站通过SNMP协议与代理器通信,获取设备的管理信息,也可以向代理器发送命令,对设备进行管理和配置。

SNMP协议采用客户端-服务器模式,管理站充当客户端,代理器充当服务器。

管理站可以向代理器发送GET请求,获取设备的管理信息;也可以向代理器发送SET请求,修改设备的配置信息。

代理器收到管理站的请求后,会根据请求的内容,从MIB中获取相应的管理信息,然后返回给管理站。

通过这种方式,管理站可以实时监控和管理网络设备,保障网络的稳定运行。

除了GET和SET请求外,SNMP协议还定义了TRAP和INFORM消息。

TRAP消息是代理器向管理站发送的通知消息,用于告知管理站设备的异常情况或重要事件。

而INFORM消息则是代理器向管理站发送的确认消息,用于确认管理站发送的SET请求已经被成功执行。

通过这些消息,管理站可以及时了解设备的运行情况,从而及时发现和解决网络故障。

基于SNMP的服务器性能监控技术

基于SNMP的服务器性能监控技术

第31卷 增刊Vol 131 Suppl广西大学学报(哲学社会科学版)Journal of Guangxi University (Philosophy and Social Science )2009年4月Apr 1,2009作者简介:黄艳阳(1976-),广西柳州人,工程师,广西大学学院控制理论与控制工程硕士研究生;杨学明(1975-),广西上林人,工程师,广西大学环境保护毕业。

基于SNMP 的服务器性能监控技术黄艳阳,杨学明(广西大学人事处,广西南宁530004)[摘 要] SNMP 是基于管理工作站/代理的结构,它提供一种系统地监控和管理计算机网络的方法,可以管理局域网和广域网中的各种网络设备,包括路由器、交换机和PC 机、服务器等,为服务器性能监控提供一个可行的方案。

[关键词] 简单网管协议;代理;基于视图的访问控制;管理信息库;转发代理[中图分类号] TP301 文献标识码:A 文章编号:100128182(2009)增20189202 引言一套完备的服务器系统追求出色的性能,服务器的工作性能直接影响着网络应用的响应时间。

当一个服务器性能下降,例如服务器遭遇拒绝服务攻击(DoS ,DenialofService )时,网络性能再好也没有意义[3],因此监视服务器的性对网络管理有着重要的意义[9]。

为了了解服务器的运行状况,必须有一套足够智能、足够完善的监控与管理方案,帮助管理员侦测系统的状态[4]。

归纳起来,管理可从两方面着手,一是硬件方面,包括CPU 温度、阀值、电压侦测等等,另一方面是软件的性能检测,防止一些应用程序阻塞而不能提供正常的服务[5]。

虽然引起服务器性能变差的原因有多种,但其症状表现基本一致:设备CPU 利用率居高不下、系统可用内存剧减。

因此,可以通过监视服务器的CPU 利用率、系统可用内存等参数,监视服务器的性能[8]。

本文结合简单网络管理协议的特点,提出了一种基于SNMP 的服务器软件监控模型。

SNMP的工作原理

SNMP的工作原理

SNMP的工作原理SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络设备管理的协议。

它允许网络管理员通过监控和控制网络设备来实现网络的可管理性。

本文将详细介绍SNMP的工作原理。

一、SNMP的基本概念和组成1. 管理站(Manager):管理站是指负责监控和管理网络设备的计算机或者服务器。

它通过SNMP协议与被管理的设备进行通信,并获取设备的状态信息。

2. 代理(Agent):代理是指安装在被管理设备上的软件或者硬件模块。

它负责采集设备的状态信息,并将这些信息发送给管理站。

代理还可以接收来自管理站的指令,并执行相应的操作。

3. MIB(Management Information Base,管理信息库):MIB是一种数据库,用于存储设备的状态信息。

它由一组层次化的对象标识符(OID)组成,每一个OID对应一个特定的状态信息。

二、SNMP的工作流程1. 管理站发送请求:管理站向被管理设备发送SNMP请求,请求获取设备的某个状态信息。

请求中包含了要获取的状态信息的OID。

2. 代理响应请求:代理收到请求后,根据请求中的OID,从MIB中找到对应的状态信息,并将其封装成响应报文发送给管理站。

3. 管理站处理响应:管理站接收到代理的响应后,解析响应报文,提取出设备的状态信息,并进行相应的处理,如显示、存储或者分析。

4. 管理站发送指令:管理站可以向代理发送指令,要求代理执行某个操作,如修改设备的配置或者重启设备。

5. 代理执行指令:代理收到管理站的指令后,根据指令的内容执行相应的操作,并将执行结果封装成响应报文发送给管理站。

6. 管理站处理响应:管理站接收到代理的响应后,解析响应报文,提取出执行结果,并进行相应的处理,如显示、存储或者分析。

三、SNMP的协议结构SNMP的协议结构分为两个部份:管理信息结构(PDU)和传输协议。

1. 管理信息结构(PDU):PDU是SNMP协议中传输数据的基本单位。

SNMP简介

SNMP简介

SNMP简介⽬前⽹络中⽤得最⼴泛的⽹络管理协议是SNMP(Simple Network Management Protocol,简单⽹络管理协议)。

SNMP是被⼴泛接受并投⼊使⽤的⼯业标准,⽤于保证管理信息在⽹络中任意两点间传送,便于⽹络管理员在⽹络上的任何节点检索信息、修改信息、定位故障、完成故障诊断、进⾏容量规划和⽣成报告。

SNMP采⽤轮询机制,只提供最基本的功能集,特别适合在⼩型、快速和低价格的环境中使⽤。

SNMP的实现基于⽆连接的传输层协议UDP,因此可以实现和众多产品的⽆障碍连接SNMP的⼯作机制SNMP分为NMS和Agent两部分:NMS(Network Management Station,⽹络管理站)是运⾏客户端程序的⼯作站,⽬前常⽤的⽹管平台有QuidView、Sun NetManager和IBM NetView。

Agent是运⾏在⽹络设备上的服务器端软件。

NMS可以向Agent发出GetRequest、GetNextRequest和SetRequest报⽂,Agent接收到NMS的这些请求报⽂后,根据报⽂类型进⾏Read或Write操作,⽣成Response报⽂,并将报⽂返回给NMS。

Agent在设备发⽣异常情况或状态改变时(如设备重新启动),也会主动向NMS发送Trap报⽂,向NMS汇报所发⽣的事件。

SNMP的版本⽬前,设备中的SNMP Agent⽀持SNMP v3版本,兼容SNMP v1版本、SNMP v2C版本。

SNMP v3采⽤⽤户名和密码认证⽅式。

SNMP v1、SNMP v2C采⽤团体名(Community Name)认证,⾮设备认可团体名的SNMP报⽂将被丢弃。

SNMP团体名⽤来定义SNMP NMS和SNMP Agent的关系。

团体名起到了类似于密码的作⽤,可以限制SNMP NMS访问设备上的SNMP Agent。

⽤户可以选择指定以下⼀个或者多个与团体名相关的特性:1.定义团体名可以访问的MIB视图。

SNMP协议详解网络设备监控和管理的通信协议

SNMP协议详解网络设备监控和管理的通信协议

SNMP协议详解网络设备监控和管理的通信协议SNMP(Simple Network Management Protocol)是一种用于网络设备管理的通信协议,它允许管理者实时监控以及远程配置网络设备。

本文将详细介绍SNMP协议的工作原理、相关概念以及应用实例。

一、SNMP协议的工作原理SNMP协议通过网络管理系统和被管理设备之间的交互,实现了网络设备的监控和管理。

在SNMP协议中,存在三个主要的组件:管理端、代理代理器和被管理设备。

管理端是指网络管理系统中的软件或硬件,它通过SNMP协议向代理代理器发送命令,获取设备的状态信息以及进行配置操作。

代理代理器是网络设备中的软件或硬件模块,负责接收来自管理端的命令,并执行相应的操作。

被管理设备是指需要进行管理的网络设备,如交换机、路由器、服务器等。

这些设备通过代理代理器与管理端进行通信。

SNMP协议使用了一种基于对象的数据模型,这个模型被称为MIB (Management Information Base)。

MIB定义了一组规范,描述了设备上的各种对象及其属性。

每个对象都有一个唯一的标识符,称为OID (Object Identifier)。

管理端通过OID来获取设备的状态信息。

SNMP采用了客户-服务器模型。

管理端作为客户端发出请求,而代理代理器作为服务器端响应请求。

管理端通过SNMP协议向代理代理器发送请求,代理代理器根据请求执行相应的操作,并将结果返回给管理端。

二、SNMP协议的相关概念1. 管理信息库(MIB)管理信息库(MIB)是SNMP协议中用于描述网络设备上所有可管理对象及其属性的数据库。

MIB定义了一组层次化的对象,每个对象都有一个唯一的标识符(OID)。

管理端通过OID来获取设备的状态信息。

2. 管理器(Manager)管理器是指网络管理系统中的软件或硬件,负责监控和配置网络设备。

管理器通过SNMP协议与代理代理器进行通信,获取设备的状态信息以及进行配置操作。

配置网络设备的SNMP功能实现远程监控

配置网络设备的SNMP功能实现远程监控

配置网络设备的SNMP功能实现远程监控在网络设备的配置中,SNMP(Simple Network Management Protocol)是一项非常重要的功能。

通过配置SNMP功能,可以实现对网络设备的远程监控和管理,方便管理员实时了解设备的状态并及时采取相应的措施。

本文将介绍如何配置网络设备的SNMP功能,并探讨其实现远程监控的作用和意义。

一、SNMP简介SNMP是一种用于网络管理的协议,通过使用SNMP协议,可以实现对网络设备的监控、配置和控制。

SNMP协议是基于客户-服务器模型的,其中包括管理站点(Manager)和受管设备(Agent)两个主要组件。

管理站点负责向受管设备发送或请求管理信息,而受管设备则提供管理信息,并对来自管理站点的请求作出响应。

SNMP协议主要由以下几个组成部分组成:1. 管理信息基础架构(Management Information Base,MIB):用于定义网络设备中可供管理的对象和属性;2. 网络管理站点(Management Station):用于管理和监控网络设备的工作站或服务器;3. 代理(Agent):安装在受管设备上,负责收集和发送管理信息;4. SNMP协议引擎(SNMP Engine):负责解析和处理SNMP消息的模块。

二、配置网络设备的SNMP功能配置网络设备的SNMP功能需要以下几个步骤:1. 确定SNMP版本:SNMP主要有SNMPv1、SNMPv2c和SNMPv3三个版本,不同版本的特点和功能略有不同,根据需要选择适合的版本;2. 配置SNMP Community:SNMP Community(社区)用于标识SNMP管理站点和SNMP代理之间的身份验证和访问控制。

可以通过配置Community String(社区字符串)来实现,一般包括读取(Read)和写入(Write)两种权限;3. 启用SNMP代理:在网络设备上启用SNMP代理,使得设备可以接收和处理来自管理站点的SNMP请求和命令;4. 配置SNMP Trap(陷阱):SNMP Trap是一种主动上报的机制,网络设备可以将特定事件或状态信息主动发送给管理站点。

SNMP的功能及使用

SNMP的功能及使用

SNMP的功能及使用SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。

它提供了一套标准的操作和管理网络设备的方法,使得网络管理员能够从远程位置监视、配置和控制网络设备。

首先,SNMP具备设备发现的功能。

通过SNMP,网络管理员可以发现网络中所连接的设备,包括路由器、交换机、服务器等等。

管理员可以通过SNMP协议检测并识别网络设备的信息,如设备型号、IP地址、操作系统版本等。

其次,SNMP可以用于设备状态监控。

通过SNMP协议,网络管理员可以实时地监控网络设备的状态。

这包括CPU利用率、内存利用率、带宽利用率等系统性能指标,以及设备的连接状态、接口的流量统计、错误统计等网络状态。

管理员可以根据这些信息来评估网络设备的工作情况,及时发现并解决问题。

SNMP还可以进行配置管理。

管理员可以通过SNMP协议远程配置网络设备的各种参数和选项,如添加、修改和删除用户、设置访问控制列表、配置路由和VLAN等。

通过SNMP,管理员可以远程管理网络设备,而无需直接登录到设备上进行配置。

此外,SNMP还可以进行性能监测。

通过SNMP协议,管理员可以收集网络设备的性能数据,如流量、延迟、错误率等。

这些数据可以被用于进行性能分析和优化,以确保网络设备的正常运行和提高网络的可用性。

最后,SNMP还具备故障管理的功能。

管理员可以通过SNMP协议监测设备的健康状态,并在设备出现故障时及时采取措施。

SNMP可以向管理员发送警报,提醒其设备的故障情况,并提供相关的故障信息,以便管理员进行故障排查和修复。

关于SNMP的使用,通常有两个角色:SNMP管理端和SNMP代理。

SNMP管理端是指网络管理员使用的管理工具。

这些工具可以是专门的SNMP管理软件,也可以是支持SNMP的网络管理系统。

管理员通过这些工具与网络设备建立SNMP连接,并获取设备的信息、配置设备、监控设备等。

SNMP协议

SNMP协议

介绍SNMP协议的概念和作用SNMP(Simple Network Management Protocol)是一种用于网络管理的协议。

它被设计用于监控和管理网络设备、系统和应用程序,以确保网络的正常运行和高效性能。

SNMP协议的概念SNMP协议是一种基于客户端/服务器模型的协议,它允许管理者通过网络收集和管理网络设备的信息。

它采用了轻量级、简单和灵活的方法,使得网络设备可以通过标准化的方式提供管理信息。

SNMP协议的作用SNMP协议具有以下主要作用:1.监控:SNMP协议允许管理者实时监控网络设备的状态和性能。

通过收集各种指标,如CPU利用率、内存使用情况、网络流量等,管理者可以了解设备的运行情况并采取相应的措施。

2.配置管理:SNMP协议允许管理者对网络设备进行配置和管理。

管理者可以通过SNMP协议发送命令和配置信息,实现对设备的远程配置和管理,如修改设备的参数、启用/禁用功能等。

3.故障诊断与排除:SNMP协议提供了一种方式来检测和诊断网络设备的故障。

管理者可以通过获取设备的告警信息、错误日志和事件通知,快速定位和解决网络故障,提高网络的可用性和稳定性。

4.性能优化:通过定期收集和分析设备的性能数据,管理者可以了解设备的负载情况和瓶颈所在,并采取优化措施,提升网络的性能和效率。

5.安全管理:SNMP协议提供了安全机制,如身份验证和访问控制,以确保管理信息的机密性和完整性。

管理者可以对SNMP协议进行安全配置,防止未经授权的访问和恶意攻击。

总之,SNMP协议是网络管理的重要工具,它提供了一种标准化的方式来监控、配置和管理网络设备。

通过使用SNMP 协议,管理者可以实现对网络的全面控制,确保网络的可靠性、稳定性和安全性。

解释SNMP协议的工作原理和架构SNMP(Simple Network Management Protocol)协议是一种用于网络管理的协议,它采用了客户端/服务器模型来实现网络设备的监控和管理。

如何使用SNMP来监控Linux服务器

如何使用SNMP来监控Linux服务器

如何使用SNPM 来监控Linux服务器作者: icefired (*********************)2005-9-16[Keywords] SNMP, Linux, Orion NPM, MRTG, Net-SNMP [Objects] Using SNMP to monitor a Linux server[准备]1.Net-SNMP 5.1.2 或 UCD-SNMP 4.2.3下载:/download.html2.A Linux Server: Redhat Linux 7/8/9,RHEL 3/4 或其他Linux 发行版。

3.SNMP Tool: Solarwinds toolset V8.2或 Orion Network Performance Monitor V7.8, 其他支持SNMP监控的工具如HP OpenView, IBM NetView, SNMPC V7均可以。

[步骤]1.安装Net-SNMP 或UCD-SNMP. (三种方法)1.1安装Linux系统时自动安装安装Linux系统的时候选择 UCD-SNMP 和 SNMP-Utility两个安装包就可以了。

1.2使用RPM包来安装,这里以Redhat 9为例来说明。

先检查有无安装旧的版本: rpm –q ucd-snmp全新安装:#rpm –ivh net-snmp-5.1.2-1.rh9.i386.rpm#rpm –ivh net-snmp-devel-5.1.2-1.rh9.i386.rpm1.3使用原代码来安装#wget /sourceforge/net-snmp/net-snmp-5.1.3.1.tar.gz#tar –xzvf net-snmp-5.1.3.1.tar.gz#cd net-snmp-5.1.3.1#./configure# make & make install如果没什么问题则顺利完成安装,Linux的安装和命令使用不在本文讨论范围,请大家查询相关手册。

利用SNMP和监控宝实现linux vps 服务器性能监控

利用SNMP和监控宝实现linux vps 服务器性能监控

利用SNMP和监控宝实现linux vps服务器性能监控在我们管理服务器时候windosw系统较为直观,cpu使用多少,内存用了多少带宽等等只要在远程桌面里的任务管理器一目了然。

但是在linux环境下就没那么轻松了,尤其服务器或者vps上运行的是大型网站,如果不能及时发现服务器性能消耗,很有可能导致网站在访问高峰期,出现卡死都不知道什么情况。

今天介绍下如何利用SNMP加监控宝实现vps性能监控,测试平台CentOS。

1.我们需要安装一个组件 NET-SNMP 命令如下:yum install net-snmp net-snmp-devel net-snmp-utils输入命令后有个提示按y2.安装完成后先停止NET-SNMPservice snmpd stop3.创建一个帐号如帐号密码 123456789 注意密码需要8位及以上net-snmp-config --create-snmpv3-user -ro -A 123456789 -a MD54.启动NET-SNMPservice snmpd start5.设置为开机启动chkconfig snmpd on6.测试下是否正常snmpwalk -v 3 -u -a MD5 -A "123456789" -l authNoPriv 127.0.0.1 sysDescr如运行正常则会返回你的服务器或vps名字等信息7.如果服务器或vps开启了iptables则需要在规则中加入监控宝SNMP的监控IP地址命令为iptables -I INPUT -p udp -s 60.195.252.107 –dport 161 -j ACCEPTiptables -I INPUT -p udp -s 60.195.252.110 –dport 161 -j ACCEPT8.上述服务器方面就设置好了,可以进入监控宝创建监控项目了(监控宝百度一下注册个帐号)9.创建服务器性能监控项目10.图片所示填写你自己的IP以及之前创建的帐号密码信息11.选需要监控的项目,如果是OpenVZ架构的vps最后一项不要勾选否则会报错.通过以上步骤就完成了服务器或vps的性能监控配置了,配置中还可以设置报警如果性能超出正常范围会自动给你发邮件.可以让你第一时间去调整服务器或者vps升级.确保网站能正常运行来源老鹰博客:/319.html文章来源于:/article-26265-1.html。

SNMP协议详解

SNMP协议详解

SNMP协议详解一、引言SNMP(Simple Network Management Protocol,简单网络管理协议)是一种用于网络管理的协议。

它允许网络管理员通过网络监控和管理网络设备,以确保网络的正常运行。

本协议详细介绍了SNMP协议的定义、功能、工作原理以及实现方式。

二、定义SNMP协议是一种基于互联网标准的网络管理协议,用于管理和监控网络中的设备。

它定义了一套规则和格式,用于实现网络设备之间的通信和数据交换。

SNMP协议提供了一种简单、高效的方式,使网络管理员能够监控和管理网络中的设备。

三、功能1. 设备发现:SNMP协议允许网络管理员发现网络中的设备,并获取设备的基本信息,如设备类型、IP地址等。

2. 状态监测:SNMP协议可以监测设备的运行状态,包括CPU利用率、内存使用率、网络流量等。

管理员可以通过监测这些指标来判断设备是否正常运行。

3. 配置管理:SNMP协议可以通过远程方式配置设备的参数,如修改设备的IP 地址、开启或关闭某些功能等。

4. 故障诊断:SNMP协议可以监测设备的错误日志,并提供告警功能,管理员可以通过这些信息来诊断问题并采取相应的措施。

5. 性能优化:SNMP协议可以收集设备的性能数据,如响应时间、吞吐量等。

管理员可以通过分析这些数据来优化网络的性能。

四、工作原理SNMP协议基于客户端/服务器模型,包括三个主要组件:管理站点、代理和设备。

管理站点是网络管理员用于监控和管理网络的工作站,代理是网络设备上运行的SNMP软件,设备是需要被管理的网络设备。

1. 管理站点向代理发送请求:管理站点通过SNMP协议向代理发送请求,请求获取设备的信息或执行某些操作。

2. 代理处理请求:代理接收到请求后,根据请求的类型执行相应的操作,如获取设备信息、修改设备配置等。

3. 代理向管理站点发送响应:代理处理完请求后,将结果封装成响应消息,并通过SNMP协议将响应发送回管理站点。

4. 管理站点解析响应:管理站点接收到代理发送的响应后,解析响应消息,并根据需要进行相应的处理。

SNMP协议详解

SNMP协议详解

SNMP协议详解协议概述:Simple Network Management Protocol(简单网络管理协议,SNMP)是一种用于管理和监控网络设备的应用层协议。

它提供了一种标准的方法,使网络管理员能够监控网络设备的状态、收集性能统计数据以及配置网络设备。

协议功能:1. 网络设备的监控和管理:SNMP允许网络管理员监控网络设备的状态,例如路由器、交换机和服务器等。

管理员可以通过SNMP获取设备的基本信息,如设备名称、硬件信息和固件版本等。

2. 性能统计数据的收集:SNMP可以收集网络设备的性能统计数据,如带宽利用率、流量统计和错误报告等。

这些数据对于网络规划和优化非常重要。

3. 配置网络设备:SNMP可以用于配置网络设备的参数,如IP地址、路由表和访问控制列表等。

管理员可以通过SNMP发送命令来修改设备的配置。

协议结构:SNMP协议由两个主要部分组成:管理站和代理代理。

1. 管理站:管理站是网络管理员使用的工具,用于监控和管理网络设备。

管理站可以是一个单独的计算机或一个管理系统。

它通过SNMP协议与代理代理通信,并收集设备信息、发送命令和接收响应。

2. 代理代理:代理代理是网络设备上运行的软件模块,负责响应管理站的请求并提供设备信息。

代理代理可以是路由器、交换机、服务器或其他网络设备。

它们通过SNMP 协议与管理站通信,并根据请求提供设备状态和性能统计数据。

协议操作:SNMP协议定义了一组操作,用于管理站与代理代理之间的通信。

以下是SNMP协议中最常用的操作:1. Get操作:Get操作用于从代理代理获取设备的特定信息。

管理站发送一个Get请求,指定所需的信息,代理代理则返回相应的值。

例如,管理站可以发送一个Get请求来获取设备的名称或接口状态。

2. Set操作:Set操作用于向代理代理发送命令,以配置设备的参数。

管理站发送一个Set请求,指定要修改的参数和新的值,代理代理则根据请求进行相应的配置。

RHEL&FreeBSD性能监控-SNMP-配置说明

RHEL&FreeBSD性能监控-SNMP-配置说明

RHEL&FreeBSD性能监控-snmp-配置说明在下面的说明中,将用来监控其它服务器性能的服务器称为monitor server,被监控的服务器称为monitor client。

注: 在安装配置时,需要修改的地方,请参照蓝色字体的提示。

monitor client 的配置一、RHEL的配置1安装软件将本文件夹的rpm目录下的snmp目录下的软件拷贝至系统的/usr/local/src/目录下:(1)安装net-snmp-libs-5.1.2-11.i386.rpm# rpm -ivh net-snmp-libs-5.1.2-11.i386.rpm(2)安装lm_sensors-2.8.7-2.i386.rpm# rpm -ivh lm_sensors-2.8.7-2.i386.rpm(3)安装net-snmp-5.1.2-11.i386.rpm# rpm -ivh net-snmp-5.1.2-11.i386.rpm2 配置(1)将本文件夹的conf目录下的snmpd.conf 文件拷贝至monitor client的/etc/snmp/目录下。

(2)启动snmpd# service snmpd start(3)配置snmpd开机自动运行# chkconfig snmpd on3 IPtables的设置为了使monitor server能够获得client上的数据,monitor client需要开放如下端口:161, 允许udp连接二、FreeBSD的配置1 安装SNMP利用FreeBSD的ports安装snmp,命令如下:# cd /usr/ports/net-mgmt/net-snmp# make# make install# make clean2 配置snmp安装完成后编辑/etc/rc.conf文件,加入下面的内容snmpd_enable="YES"snmpd_flags="-p /var/run/snmpd.pid将snmpd.conf 拷贝至/usr/local/share/snmp/启动snmp# /usr/local/etc/rc.d/snmpd.sh startmonitor server 的配置1安装软件将本文件夹的rpm目录下的mrtg目录下的软件拷贝至monitor server的/usr/local/src/目录下:gd-2.0.28-4.i386.rpmmrtg-2.10.15-1.i386.rpm(1)安装gd-2.0.28-4.i386.rpm# rpm -ivh gd-2.0.28-4.i386.rpm(2)安装mrtg-2.10.15-1.i386.rpm# rpm -ivh mrtg-2.10.15-1.i386.rpm2 配置mrtg(1)将本目录下的conf目录下的client-monitor文件夹拷贝至monitor server的apache的web根目录下。

计算机snmp的名词解释

计算机snmp的名词解释

计算机snmp的名词解释SNMP(Simple Network Management Protocol)是一种网络管理协议,它被广泛应用于计算机网络中的设备监控和管理。

在网络世界中,各种设备和系统能够互联互通,需要一种有效的协议来实现对这些设备的监控和管理,而SNMP就是满足这一需求的重要协议。

首先,我们来解释一下SNMP的基本概念。

SNMP是一种基于TCP/IP协议的应用层协议,它定义了管理站点和被管理站点之间的通信方式和数据格式。

管理站点(通常为网络管理员所在的主机)通过SNMP协议向被管理站点(如路由器、交换机、服务器等)发送管理请求,并接收被管理站点返回的响应信息。

这些信息主要包括被管理设备的状态、性能指标、配置参数等。

SNMP协议采用客户端/服务器架构,其中管理站点充当客户端,被管理站点则充当服务器。

SNMP的核心组件包括管理站点、被管理站点和MIB(Management Information Base)。

管理站点是指负责监控和管理网络设备的主机或服务器。

管理站点通过SNMP协议向被管理站点发送一些特定的管理请求,例如获取设备状态、设置配置参数等。

管理站点通过收集和分析SNMP信息,可以及时发现网络设备故障,并采取相应的措施予以解决。

被管理站点则是指需要进行监控和管理的网络设备,如路由器、交换机、服务器等。

这些设备通常都配备了SNMP代理程序,负责处理来自管理站点的请求,并返回相应的管理响应。

被管理站点通过SNMP协议与管理站点进行通信,将设备的状态、性能指标等信息传递给管理站点。

MIB是SNMP协议中非常重要的一个概念,是指对被管理设备的描述和定义。

MIB以层次结构的方式组织设备的各种信息,采用对象标识符(OID)来唯一标识每个设备信息。

MIB定义了各种管理信息的类型、格式以及获取和设置的方式。

在SNMP中,常用的MIB有MIB-II、RMON、IF-MIB等。

除了上述的核心概念外,SNMP还定义了几种重要的消息类型和协议版本。

了解SNMP协议网络设备管理与监控的基本原理

了解SNMP协议网络设备管理与监控的基本原理

了解SNMP协议网络设备管理与监控的基本原理SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。

它提供了一种标准化的方式,使得管理者能够远程管理和监控网络中的设备,如路由器、交换机、服务器等。

本文将介绍SNMP协议的基本原理,包括其工作方式、组成部分和常见应用。

一、SNMP协议的工作方式SNMP协议使用客户端-服务器模型进行管理和监控,其中管理者作为客户端发送请求给网络设备作为服务器进行响应。

SNMP协议通过Get、Set、Trap等操作对设备上的数据进行管理和监控。

具体而言,SNMP协议通过以下几个步骤完成工作:1. 管理者发送Get请求:管理者向特定设备发送Get请求,请求获取设备上的特定信息,如接口状态、CPU利用率等。

2. 设备响应Get请求:设备接收到Get请求后,通过SNMP协议将请求的数据打包发送给管理者。

3. 管理者发送Set请求:管理者向设备发送Set请求,请求修改设备上的特定配置,如更改路由器的IP地址。

4. 设备响应Set请求:设备接收到Set请求后,根据请求进行相应的配置修改,并将结果通过SNMP协议发送给管理者。

5. 陷阱通知:设备在特定事件发生时,可以主动向管理者发送陷阱通知,以便管理者及时发现并处理问题。

二、SNMP协议的组成部分SNMP协议由以下几个核心组成部分构成:1. 管理信息库(MIB):MIB是SNMP协议中的一个重要概念,它定义了设备上可管理的对象和属性,如接口的状态、报文的流量等。

管理者可以通过MIB来获取和修改设备上的信息。

2. SNMP管理器:SNMP管理器是指实现了SNMP协议的软件或硬件,其作为客户端与网络设备进行通信,发送请求并接收响应。

常见的SNMP管理器有Zabbix、Nagios等。

3. SNMP代理:SNMP代理是指实现了SNMP协议的设备,如路由器、交换机等。

SNMP代理接收并处理管理者的请求,并将结果返回给管理者。

网络协议知识:SNMP协议的功能和使用方法

网络协议知识:SNMP协议的功能和使用方法

网络协议知识:SNMP协议的功能和使用方法SNMP协议是一种网络管理协议,用于监控网络设备和服务器的状态。

SNMP协议可以通过简单的网络管理协议接口,获取和设置网络设备中的数据。

SNMP协议由两部分组成:管理站和代理。

管理站是网络管理员使用的GUI(图形用户界面)或CLI(命令行界面)界面,用于监控网络设备的状态。

代理是网络设备或服务器上的软件,用于向管理站提供网络设备的状态信息。

SNMP协议的主要功能包括:1.发现网络设备:SNMP协议可以快速发现网络中的设备,包括路由器、交换机、服务器等。

2.接收网络设备状态信息:SNMP协议可以接收网络设备发送的状态信息,包括CPU使用率、内存使用率、磁盘空间利用率、网络带宽利用率等。

3.监控网络设备状态:SNMP协议可以对网络设备的状态进行监控,可以通过设置警报和阈值来检测网络设备的异常状况。

4.远程控制网络设备:SNMP协议可以远程控制网络设备,包括重启设备、配置网络参数、更新软件等。

SNMP协议的使用方法:SNMP协议有三个版本,分别为SNMPv1、SNMPv2和SNMPv3。

不同版本的SNMP协议具有不同的优缺点,在选择使用的版本时需要根据实际情况进行选择。

使用SNMP协议需要满足以下条件:1.网络设备或服务器需要支持SNMP协议。

一些网络设备和服务器默认开启SNMP协议,但有些需要管理员手动开启。

2.需要安装SNMP协议的管理软件,如Zabbix、Nagios等。

这些软件可以对网络设备进行监控和管理,可以自动化地进行异常检测和警报通知。

3.需要进行SNMP协议的配置和管理。

SNMP协议的配置和管理需要管理员掌握一定的网络知识和技能,可以通过学习相关课程和培训来掌握。

SNMP协议的优缺点:SNMP协议的优点是其简单、易用、可靠性高、可扩展性强,可以快速定位网络问题并进行解决。

但同时SNMP协议也存在一些缺点,如易受到攻击、安全性不够高、需要额外的管理软件等。

SNMP协议解析网络设备管理与监控的标准协议

SNMP协议解析网络设备管理与监控的标准协议

SNMP协议解析网络设备管理与监控的标准协议SNMP(Simple Network Management Protocol)是一种用于网络设备管理与监控的标准协议。

本文将对SNMP协议进行解析,以便更好地理解其在网络设备管理与监控中的作用。

一、SNMP协议概述SNMP协议是一种应用层协议,用于网络设备的远程管理和监控。

它定义了网络设备与网络管理系统之间的通信协议,使得管理者可以获取设备的状态信息、配置设备参数以及监控设备的性能。

二、SNMP协议的工作原理1. 管理者与代理之间的通信SNMP协议中,管理者与代理之间通过SNMP消息进行通信。

管理者可以向代理发送请求消息,代理根据请求返回相应的信息。

2. SNMP消息格式SNMP协议使用的消息格式包括消息头和消息体。

消息头中包含了消息的类型、版本号、安全参数等。

消息体中包含了具体的请求或响应。

3. SNMP协议操作SNMP协议定义了一系列的操作,常见的操作包括:- Get:用于获取设备的某个或多个管理信息变量(MIB)的值。

- Set:用于设置设备的某个或多个MIB的值。

- Trap:当设备出现异常状况时向管理者发送通知。

- GetNext:用于获取下一个MIB的值。

三、SNMP协议的组成1. 管理器(Manager)管理器是网络管理系统中的一部分,负责与代理进行通信,并对网络设备进行管理与监控。

管理器可以通过SNMP协议获取设备的信息、配置设备参数以及监控设备的性能。

2. 代理(Agent)代理是网络设备中的一部分,负责与管理器进行通信,并代表设备向管理器提供设备的信息。

代理会根据管理器的请求返回相应的信息,也会主动向管理器发送通知。

3. 管理信息库(MIB)MIB是SNMP协议中的重要概念,它定义了设备所支持的管理信息的结构和属性。

每个设备都有一个MIB,其中包含了设备的各种信息,例如系统设置、接口状态、网络流量等。

四、SNMP协议的应用SNMP协议广泛应用于网络设备管理与监控领域,其中主要包括以下几个方面:1. 设备配置与管理:通过SNMP协议,管理者可以方便地对设备进行配置和管理,包括修改设备参数、激活/禁用设备功能等。

SNMP卡网络监控的技术方案

SNMP卡网络监控的技术方案

SNMP卡网络监控的技术方案SNMP卡网络监控的技术方案简介随着数字化转型的加速,网络信息技术在企业中的应用越来越广泛。

而随着网络应用范围的扩大,网络设备也日益增加。

因此,如何有效地管理和监控这些复杂的网络设备成为了亟待解决的问题。

SNMP(Simple Network Management Protocol)卡是一种监控网络设备的有效解决方案,本文将介绍SNMP卡的技术方案,以便企业更好地管理和维护网络设备。

SNMP卡的概念SNMP是一种网络管理协议,用于管理和监控网络设备。

SNMP代理可以安装在网络设备上(如路由器、交换机、服务器等),并可通过网络连接到SNMP管理系统以进行监控和管理。

SNMP卡是一种插卡式设备,可以插入到服务器或其他设备中,使其可以连接到SNMP协议网络,方便管理和监控。

SNMP卡的优势SNMP卡是网络设备管理的最佳工具之一。

以下是它的一些优势:1. 提高管理效率:SNMP卡使管理员能够远程管理和监控网络设备,从而提高管理效率,避免时间和资源浪费。

2. 实时监控:SNMP卡可以实时监控网络设备的状态,帮助管理员及时识别潜在问题,保障网络设备的健康运行。

3. 预警机制:SNMP卡具有预警机制,能自动发出警报,提醒管理员注意潜在的故障,进而采取有效措施。

4. 提高安全性:SNMP卡可以通过防火墙等安全措施加固,保障网络设备的安全性。

技术方案SNMP卡的技术方案包括以下几个环节:1. 硬件准备首先,需要准备SNMP卡和支持SNMP协议的网络设备,如路由器、交换机、服务器等。

SNMP卡应与网络设备的操作系统兼容。

SNMP卡应插入到要监控的设备上并正确接线。

2. 配置SNMP卡安装好SNMP卡后,需要对其进行配置。

此环节配置包括设置SNMP管理系统的IP地址和端口号、SNMP版本、SNMP管理系统的名称和位置等信息。

在SNMP卡上运行的软件应在配置成功后自动连接到SNMP管理系统。

snmp介绍

snmp介绍

什么是SNMP协议简单网络管理协议(SNMP)首先是由Internet工程任务组织(Internet Engineering Task Force)(IETF)的研究小组为了解决Internet上的路由器管理问题而提出的。

许多人认为SNMP在IP上运行的原因是Internet运行的是TCP/IP协议,然而事实并不是这样。

SNMP被设计成与协议无关,所以它可以在IP,IPX,AppleTalk,OSI以及其他用到的传输协议上被使用。

SNMP是一系列协议组和规范(见下表),它们提供了一种从网络上的设备中收集网络管理信息的方法。

S NMP也为设备向网络管理工作站报告问题和错误提供了一种方法。

名字说明MIB 管理信息库SMI 管理信息的结构和标识SNMP 简单网络管理协议从被管理设备中收集数据有两种方法:一种是只轮询(polling-only)的方法,另一种是基于中断(interrupt -based)的方法。

如果你只使用只轮询的方法,那么网络管理工作站总是在控制之下。

而这种方法的缺陷在于信息的实时性,尤其是错误的实时性。

你多久轮询一次,并且在轮询时按照什么样的设备顺序呢?如果轮询间隔太小,那么将产生太多不必要的通信量。

如果轮询间隔太大,并且在轮询时顺序不对,那么关于一些大的灾难性的事件的通知又会太馒。

这就违背了积极主动的网络管理目的。

当有异常事件发生时,基于中断的方法可以立即通知网络管理工作站(在这里假设该设备还没有崩溃,并且在被管理设备和管理工作站之间仍有一条可用的通信途径)。

然而,这种方法也不是没有他的缺陷的,首先,产生错误或自陷需要系统资源。

如果自陷必须转发大量的信息,那么被管理设备可能不得不消耗更多的时间和系统资源来产生自陷,从而影响了它执行主要的功能(违背了网络管理的原则2)。

而且,如果几个同类型的自陷事件接连发生,那么大量网络带宽可能将被相同的信息所占用(违背了网络管理的原则1)。

尤其是如果自陷是关于网络拥挤问题的时候,事情就会变得特别糟糕。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

服务器状态监控之snmp&ipmi一、ipmi1、简介IPMI(Intelligent Platform Management Interface)即智能平台管理接口是使硬件管理具备“智能化”的新一代通用接口标准开源的免费标准、跨不同操作系统监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源供应及机箱入侵等核心部件:BMC(Baseboard Management Controller),一种嵌入式微控制器,整个平台管理的大脑,ipmi所有功能都是通过BMC发送命令来完成,BMC接受并在系统事件日志中记录事件消息,维护描述系统中传感器情况的传感器数据,支持远程访问BMC具有以下功能:1.通过系统的串行端口进行访问2. 故障日志记录和SNMP 警报发送3.访问系统事件日志(System Event Log ,SEL) 和传感器状况4.控制包括开机和关机5.独立于系统电源或工作状态的支持6.用于系统设置、基于文本公用程序和操作系统控制台的文本控制台重定向基于BMC,最大优势:独立于CPU BIOS和OS,无论是开机还是关机状态下,接通电源就可以实现对服务器的监控2、使用ipmi的先决条件(1)服务器硬件本身提供对ipmi的支持目前惠普、戴尔和NEC 等大多数厂商的服务器都支持IPMI 2.0,但并不是所有服务器都支持,所以应该先通过产品手册或在BIOS 中确定服务器是否支持ipmi,也就是说服务器在主板上要具有BMC 等嵌入式的管理微控制器。

(2)操作系统提供相应的ipmi驱动通过操作系统监控服务器自身的ipmi 信息时需要系统内核提供相应的支持,linux 系统通过内核对OpenIPMI(ipmi 驱动)的支持来提供对ipmi 的系统接口。

在使用驱动之前,请先启动该驱动:service ipmi start 或者启动模块:modprobe ipmi_msghandlermodprobe ipmi_devintfmodprobe ipmi_simodprobe ipmi_poweroffmodprobe ipmi_watchdog(3)ipmi管理工具选择的是Linux 下的命令行方式的ipmi 平台管理工具ipmitool,开源的还有很多,如:ipmiutilipmitool通过OpenIPMI接口来访问BMC,实现对服务器的两种管理方式:(1)通过OS 监控本地服务器;(2)通过网络监控远程服务器本地服务管理:系统结构监控本地命令格式:ipmitool -I open command,其中-I Opencommand有以下项:a) raw:发送一个原始的IPMI请求,并且打印回复信息。

b) lan:配置网络(lan)信道(channel)c) chassis :查看底盘的状态和配置电源d) event:向BMC发送一个已定义的事件(event),可用于测试配置的SNMP是否成功e) mc:查看MC(Management Contollor)状态和各种允许的项f) sdr:打印传感器仓库中的任何监控项和从传感器读取到的值。

g) sensor:打印周详的传感器信息。

h) Fru:打印内建的Field Replaceable Unit (FRU)信息i) sel:打印System Event Log (SEL)j) pef:配置Platform Event Filtering (PEF),事件过滤平台用于在监控系统发现有event 时候,用PEF中的策略进行事件过滤,然后看是否需要报警。

k) sol/isol:用于配置通过串口的Lan进行监控l) user:配置BMC中用户的信息。

m) channel:配置Management Controller信道。

监控远程服务器系统架构ipmitool -H 10.6.77.249 -U root -P changeme -I lan command 配置IP、NetMask、gateway二、snmp1、简介SNMP(Simple Network Management Protocol)简单网络管理协议,是由互联网工作组定义的一套网络管理协议。

TCP/IP协议簇的一个应用层协议监视网络状态、修改网络设备配置、接受网络事件告警等2、工作原理客户机/服务器模式,即代理/管理站模型。

对网络的管理与维护是通过管理工作站与SNMP 代理间的交互完成的。

SNMP代理回答SNMP管理工作站对代理MIB定义信息的查询。

应用场景管理站和代理端使用MIB进行接口统一,MIB定义了设备中的被管理对象。

管理站和代理都实现相应的MIB对象,使得双方可以识别对方的数据,实现通信。

管理站向代理请求MIB 中定义的数据,代理端识别后,将管理设备提供的相关状态或参数等数据转换成MIB定义的格式,最后将该信息返回给管理站,完成一次管理操作。

一套完整的SNMP系统主要包括管理信息库(MIB)、管理信息结构(SMI)及SNMP报文协议。

(1)管理信息库MIB任何一个被管理的资源(cpu、内存)都表示成一个对象,成为被管理的对象。

MIB是被管理对象的集合。

定义了被管理对象的一系列属性:对象的名称、对象的访问权限和对象的数据类型等。

每一个SNMP设备(Agent)都有自己的MIB。

MIB可以看成NMS(网管系统)和Agent之间的沟通桥梁。

NMS、Agent和MIB的关系MIB文件是一种分级的树的结构,如图,第一级有三个节点:ccitt、iso、iso-ccitt。

低级的对象ID分别由相关组织分配。

一个特定对象的标识符可通过由根到该对象的路径获得。

一般网络设备取iso节点下的对象内容。

如名字空间ip结点下一个名字为ipInReceives的MIB 变量被指派数字值3,因而该变量的名字为.dod.internet.mgmt.mib.ip.ipInReceives相应的数字表示(对象标识符OID,唯一标识一个MIB对象)为:1.3.6.1.2.1.4.3(2)管理信息结构(SMI)关于MIB的一套公用的结构和表示符号(3)SNMP报文协议SNMP中定义了五种消息类型:Get-Request、Get-Response、Get-Next-Request、Set-Request 和Trap 。

(1)Get-Request 、Get-Next-Request与Get-ResponseSNMP 管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。

Get-Next- Request用于和Get-Request组合起来查询特定的表对象中的列元素。

(2)Set-RequestSNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

(3)TrapSNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生,如接口UP/DOWN,IP地址更改等。

上面五种消息中Get-Request、Get-Next-Request和Set-Request是由管理站发送到代理侧的161端口的;后面两种Get-Response和Trap 是由代理进程发给管理进程的,其中Trap 消息被发送到管理进程的162端口,所有数据都是走UDP封装。

SNMP工作流程如图2:SNMP报文格式SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。

SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。

SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。

在实际网络传输环境下,SNMP报文的长度取决于其所采用的编码方式。

SNMP统一采用BER(Basic Encoding Rule)的编码规则,同时在正式SNMP规范中使用的是ASN.1语法,定义了很多数据类型。

SNMP报文在传输层是封装在UDP报文中的,而UDP又是基于IP网络的,因此,我们可以得到完整的报文描述结构,如下图所示:SNMP TrapSNMP Trap 就是被管理设备主动发送消息给NMS 的一种机制SNMP Trap 是SNMP 的一部分,当被监控段出现特定事件,可能是性能问题,甚至是网络设备接口宕掉等,代理端会给管理站发告警事件。

假如在特定事件出现的时刻,不是由Agent 主动通知NMS,那么NMS 必须不断地对Agent 进行轮询。

这是非常浪费计算资源的方法,正如人们用中断通知CPU 数据的到达,而不是让CPU 进行轮询一样。

Trap 通知是更加合理的选择。

NET-SNMP一种开放源代码的SNMP 协议实现,也包含SNMP Trap的所有相关实现实战演练AgentNMS实现过程获取CPU占用率// 空闲CPU占用百分比void get_cpu_idle(unsigned int clientreg, void *clientarg){char buffer[80];const char* cpu_cmd = "mpstat -u -P ALL |grep all | awk '{print $12}'";executeCMD(cpu_cmd, buffer);float cpu_idle = atof(buffer);// 获取CPU阈值std::string max_cpu_idle_per_str;int max_cpu_idle_per = -1;if (get_section_val("cpu", "max_cpu_idle_per",max_cpu_idle_per_str) == 0)max_cpu_idle_per =atoi(max_cpu_idle_per_str.c_str());float cpu_util_rate = 100 - cpu_idle;if (cpu_util_rate > max_cpu_idle_per &&max_cpu_idle_per > 0){// 发送告警信息String msg;msg.format("Warning: CPU utilization rate(%%) is %.2f%%", cpu_util_rate);send_msg(msg);}}注册定时器// 注册定时器snmp_alarm_register(SEND_WARNING_TIME, /* seconds ,可自行设置时间间隔*/SA_REPEAT, /*repeat. */get_cpu_idle, /* our callback */NULL /* no callback data needed */);配置文件netsnmp.conf;;netsnmp配置文件#session配置[session]#网络管理端口 ip 地址#peername = 172.29.16.104peername = 172.29.4.181community = publicretries = 3timeout = 2000sessid = 0# 发送警告信息间隔时间(s),默认10分钟send_trap_time = 600# cpu配置[cpu]# 最大空闲CPU占用百分比max_cpu_idle_per = 80# 内存配置[memory]# 最大内存使用率(小数表示)max_memory_used_per = 1# 磁盘配置[disk]# 是否记录磁盘信息(1:是,0:否),默认为0is_record_disk_info = 0# oid配置(不要轻易修改)[oid]# 企业 oidoid_enterprise = 1,3,6,1,4,1,2021,251,1# 发送信息oidoid_send_msg = 1,3,6,1,2,1,1,6,0# 信息 oidoid_msg = .1.3.6.1.6.3.1.1.4.1.105发送告警信息:sent_msgint send_traps(oid* oid_msg_para, size_t oid_msg_para_len, const char msg_type, const char* msg){String oid_enter = oid_enterprise;vector<String> oid_enter_vec;oid_enter.split(",", oid_enter_vec);oid* objid_enterprise = new oid[oid_enter_vec.size()];int i = 0;for (vector<String>::iterator iter = oid_enter_vec.begin(); iter != oid_enter_vec.end(); ++iter, ++i){String num = *iter;int i_num = atoi(num.getCStr());objid_enterprise[i] = i_num;}printf("oid_enterprise_len: %d\n",(int)oid_enter_vec.size());oid objid_snmptrap[] = { 1, 3, 6, 1, 6, 3, 1, 1, 4, 1, 0 };// const char * msg_oid_ = ".1.3.6.1.6.3.1.1.4.1.1";netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID,NETSNMP_DS_LIB_DEFAULT_PORT, SNMP_TRAP_PORT);netsnmp_session* sess = snmp_open(&session);if (NULL == sess){snmp_sess_perror("snmptraps", &session);}// 这里应该抛给应用端来判断是否超过预期值,发送告警信息netsnmp_pdu* pdu;pdu = snmp_pdu_create(SNMP_MSG_TRAP2);pdu->enterprise = (oid *) malloc(sizeof(objid_enterprise));memcpy(pdu->enterprise, objid_enterprise,sizeof(objid_enterprise));pdu->enterprise_length = oid_enter_vec.size();snmp_add_var(pdu, objid_snmptrap, sizeof(objid_snmptrap) / sizeof(oid), MSG_OID, oid_msg_.c_str());snmp_add_var(pdu, oid_msg_para, oid_msg_para_len, msg_type, msg);int status = snmp_send(sess, pdu) == 0;if (NULL != sess){snmp_close(sess);}if (status == STAT_SUCCESS){return SNMP_SUCESS;}return SNMP_FAILED;}// 发送告警信息void send_msg(String& msg){String oid_msg_local = oid_send_msg;vector<String> oid_msg_vec;oid_msg_local.split(",", oid_msg_vec);oid *oid_msg = new oid[oid_msg_vec.size()];int i = 0;for (vector<String>::iterator iter = oid_msg_vec.begin(); iter != oid_msg_vec.end(); ++iter, ++i){String num = *iter;int i_num = atoi(num.getCStr());oid_msg[i] = i_num;}printf("oid_msg_len: %d\n", (int)oid_msg_vec.size());size_t oid_msg_len =oid_msg_vec.size();//OID_LENGTH(oid_msg);send_traps(oid_msg, oid_msg_len, MSG_STR,(char*)msg.getCStr());}小结结合ipmi和snmp实现服务器告警系统。

相关文档
最新文档