使用snmp4j实现trap告警
Snmp4j的trap处理的文章在网上看了一些不过都是浅尝辄止,基本都是大概的讲述了一下如何接收trap等简单的技术。但是这些对于企业级的开发往往是不够的,随着纳入trap接收服务器的设备增加其接收到的trap信息也是成级数增加的。这里就需要我们对于这种大数据量的trap处理进行管理。本文不对trap的各种名词进行解释,需要有一定的snmp基础知识及java编程知识理解。
一、整体设计思路
由于trap可能瞬时数据量特别的大,所以我们可以采用接收与处理相互分离的设计方法。即开启一个线程专门接收trap,接收到trap后不做任何处理直接放入一个队列中。然后开启另一个线程从队列中取数据,将取得的数据派发给多线程的处理接口处理。符合我们上报条件的trap向前台推送告警并让前台页面展现。具体流程如下图。
二、示例程序搭建
本程序采用myeclipse开发,所以直接引用myeclipse的spring包即可。此外还需要snmp4j包,这里就不提供下载地址了。
实例项目第一版的目录结构如下图