SNMP分为三个版本:SNMPv1、SNMPv2c、SNMPv3。其中SNMPv1基本被淘汰,SNMPv3主要是增加了一系列的安全机制和访问控制,这些需求是弹性配置的,当所有的增强功能都不需要时,即体现为SNMPv2c的实现。
我们需要一个配置文件来配置这些信息,包括监听端口号,以方便管理。配置文件定义为snmpTrap_conf.properties,如下
snmpVersion=1
port=162
snmpUser=
authProtocol=
authPassword=
privProtocol=
privPassword=
contextName=
SNMP监听的算法如下:
public static void main(String[] args) {
Initializer.init(进程);
SNMPTarget target = new SNMPTarget(); //POJO类用于存储所需的参数
target = getSnmpCredentials("snmpTrap_conf"); //从配置文件加载所需的参数
System.out.println(target.getPort()); //输出监听端口
SnmpTrapCollector stc = new SnmpTrapCollector(target);
stc.start(); //启动进程
}
1、进程初始化算法
public static void init(String sysName) { initLog(); initConfig(); initDependency(); initDatebaseConnection(); }
2、参数获取算法
private static SNMPTarget getSnmpCredentials(String configuration) { SNMPTarget target = new SNMPTarget(); if (SNMPversion.equals("3")) { target.setPort(...); //listenPort target.setSnmpUser(...); //securityName target.setAuthProtocol(...); target.setAuthPassword(...); target.setPrivProtocol(...); target.setPrivPassword(...); target.setContextName(...); //authoritativeEngineID } else { target.setPort(...); } return target; }
3、SNMP Trap消息采集算法