交换机临时项目支持
- 实现websocket服务,用于实时通信
- 实现http server,用于获取历史1分钟的数据,目标为1小时
- 实现udp server,用于交换机log推送
- 实现交换机端口流量获取代码,缓存在内存中,定时刷新到磁盘
- 实现交换机日志解析,缓存ip列表到缓存中,定时刷新到磁盘
-
防火墙的日志记录,src地址获取 + 最后一次更新的时间戳 + 统计次数, 所有src总统计次数, 缓存一段时间间隔。定时删除超过最大超时时间的数据. map[ip]AccessIP
-
流量数据直接存储在rrd中,根据起始和结束时间,返回一段时间的历史数据.
- 定时获取入口流量和出口流量,分别写入各自的rrd文件中,根据intervald定时器触发获取的步骤
- 查询流量数据时,同时分别获取出口流量和入口流量,并且整合成一个对象,返回给前台。
3. 同时支持流量存储在rrd和内存中,两种方式.
-
模板内容
- cpu使用率 (默认%)
- mem使用率 (默认%)
- 上行端口速率(默认单位kbps)
- 下行端口速率 (默认单位kbps)
- 指定端口速率 (默认单位kbps)
- 指定端口状态 (默认0/1)
- ping 可达检测(默人0/1)
- 指定端口错误包数(int)
- 系统描述 (字符串)
- ping 延时
-
扩展模板内容
-
主配置文件(config.json)
{
"udp" : {
"enable": true,
"addr" : "0.0.0.0:514"
},
"http" : {
"enable": true,
"addr" : "0.0.0.0:8080"
},
"trap" : {
"enable": true,
"addr" : "0.0.0.0:1622"
},
"template" : {
"path" : "/opt/switch/templates"
},
"switch" : {
"path": "/opt/switch/devices"
}
"expire" : 3600,
"interval": 10
}
templates ----h3c --------h3c-v1 --------h3c-v2 ----huawei --------huawei-v1 ----ciso --------ciso-v1 ----other --------other1
说明: 程序启动的时候,应该加载template配置目录下的所有交换机类型和对应的模板。
{
"class" : "h3c",
"type" : "h3c-v1",
"metric" : {
"cpu使用率(%)" : {
"oid" : ".1.1.1.1..1.1.1.1.1",
"interval" : 10,
},
"内存使用率"(%)" : {
"oid" : ".1.1.1.1.1.1.1.1.2",
interval: 10,
},
"ping检测(0/1)" : {
"oid" : ".1.1.1.1.1.1.1.1.1.15",
"interval" : 10,
},
"ping延时(ms)" : {
"oid" : ".1.1.1.1.1.1.1.1.1.16",
"interval" : 10,
}
},
"info" : {
"系统名称" : {
"oid" : ".1.1.11.1..11.1.13",
"interval" : 10
},
"系统描述" : {
"oid" : ".1.1.1.1.1.1.11.17",
"interval" : 10
}
},
"multimetric":{
"interface" : {
"上行端口速率(kbps)" : {
"oid" : ".1.1.1.1.1.1.1.13",
"interval" : 10
}
"下行端口速率(kbps)" : {
"oid" : ".1.1.1.1.1.1.1.14",
"interval" : 10
}
}
},
"multiinfo":{
"interface" : {
"端口状态(0/1)" : {
"oid" : ".1.1.1.1.1.1.1.13",
"interval" : 10
}
"端口描述" : {
"oid" : ".1.1.1.1.1.1.1.13",
"interval" : 10
}
}
}
"timeout": 1000,
"interval": 10
}
{
"ip" : "10.0.20.254",
"community": "huayun.2017",
"template" : {
"class" : "h3c",
"type" : "h3c-v1"
}
"extension" : {
"enable" : true,
"metric" : {
"风扇状态" : {
"oid" : ".1.1.1.1.1.1.1.13",
"interval" : 10
}
},
"info" : {
"网络接口数" : {
"oid" : ".1.1.1.15.1.2.1.1.4",
"interval" : 10
}
},
"multimetric":{
"interface" : {
}
},
"multiinfo": {
"interface" : {
"错误丢包数" : {
"oid" : ".1.1.1.1.1.1.1.14",
"interval" : 10
}
}
},
"multiinfo": {
"interface" : {
"端口速率" : {
"oid" : ".1.1.1.1.1.1.1.15",
"interval" : 10
}
}
}
}
}