- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络设备主动告警系统之snmp告警实现
网络设备主动告警系统之snmp告警实现
一般主动告警系统的告警信息采集主要有5种方法:
1. 在告警服务器ping各种设备, 判断设备是否存活与掉包率
2. 接收设备发过来的系统日志(syslog), 并通过相应的规则库(正则表达式)匹配判断是否需要告警
3. 接收设备发过来的snmp Trap信息, 进行判断告警
4. 提取网管系统的告警信息
5. 通过snmp协议, 取回相应oid的值, 进行判断告警
什么是snmp:
Simple Network Management Protocol (SNMP)提供了一些简单的操作, 允许你更容易的监控与管理网络设备, 例如路由器,交换机,服务器,打印机等等. 通过snmp你可以监控很多信息, 例如端口流量, 路由器里面的温度, cpu使用率等等. 学习snmp其实并不是特别简单, 请通过别的资料学习更多的方面, 特别是mib,oid之类的概念.
推荐学习Essential SNMP, 2nd Edition这本书.
如何收集数据:
如果安装了NET-SNMP, 可以从/获取NET-SNMP的RPM包以及源代码。下载
解压后
su -
cd ucd-snmp-4.2.3
./configure --prefix=/usr -- 缺省是/usr/local
make clean all
make install
snmpget target public system.sysDescr.0
应该可以看到一个关于系统的简短描述,类似这样:
system.sysDescr.0 = Sun SNMP Agent, Ultra-60
上述命令中的public可以理解为SNMP agent的口令,术语叫做community string。
许多网络设备、操作系统都用public做为缺省community string,潜在带来安全
问题。应该修改这个缺省community string。
上述命令还可以写成:
snmpget target public ...0
system.sysDescr.0只是...0的另一种表述方式,最终还是要转
换成数字形式的OID(对象标识符)。
snmpget返回一个值, 类型可以是数值或者字符串等, 还有一个snmpwalk的操作, 大概就是返回一个数组的结果.
本系统使用java语言实现, 在网上下载了一个开源的snmp实现, 假设有以下工具类:
public class Poller
{
public Poller( String host, String community, int version )
throws IOException
{
//
}
public String get( String oid )
throws IOException
{
//
return null;
}
public MapString, String walk( String base, int startIndex,
int indexCount )
{
//
return null;
}
public void close()
{
}
public static void main( String[] args )
{
Poller poller = new Poller(); // 该ip对应的设备是cisco-6509
// 1. cpu告警
String cpuStr = poller.get( ...1.5.9 ); // cisco-6509的CPU使用率
long cpu = Long.parseLong( valueStr );
if ( cpu 85 )
{
System.out.println( 告警! cisco-6509的CPU使用率超过85% ) ;
}
// 2. 板卡告警
String statusStr = poller.get( .4.1.9.a.1.10.1 ); // cisco-6509的第一个板卡状态
long status
您可能关注的文档
最近下载
- 室外给水排水管道及设施安装-08SS523 建筑小区塑料排水检查井.pdf VIP
- ihi trx寿力离心空压机操作手册使用说明书.pdf
- 2024全新婴幼儿喂养ppt课件.pptx VIP
- 开幕式活动方案.docx VIP
- 冠脉介入治疗术后并发症护理及预防.doc VIP
- 中职语文拓展模块教学计划.docx VIP
- 中职《新时代劳动教育教程》课程标准.docx VIP
- 中国传媒大学-实用播音教程-普通话语音和播音发声(一)-课件.pptx VIP
- 人教版2025高中地理选择性必修一用“芯”解读青藏高原的时光变迁——自然环境的整体性 课件.pptx VIP
- 密闭式吸痰操作规范.docx VIP
文档评论(0)