关于Logstash和snmp-trap事件
来源:互联网 发布:进存销软件哪些免费 编辑:程序博客网 时间:2024/06/03 23:49
目前SNMP 主要版本有 v1、v2、v3三个版本,根据SNMP 版本的不同,报文格式会有不同。但是总体上主要是 HEAD + PDU。其中PDU主要携带数据,若干 OID(NAME/VALUE 值对)。
1. Logstash 的input插件 snmptrap ( logstash-input-snmptrap ),主要功能:
(1) 接收 SNMP v1 和 v2c 版本的 TRAP ,v3版本不支持
(2) TRAP数据的解析
(A) 提取 HEAD 和 PDU 中的数据,形成“字段/值”列表
(B) 尝试通过 mibs 库,翻译“字段/值”列表中的 OID 到 OID NAME
2. 对于 input解析后的TRAP数据,需要根据后续处理的目的,通过 filter ,进行近一步 enrich 和过滤处理,为后续的数据使用进行数据结构化和规范。
3. 对于 filter 阶段 enrich 后的最终结构化数据,可以通过 output ,将数据输出到其它目的环节。
因此,对于snmp trap 这种数据,通过 logstash-input-snmptrap 插件,仅仅是解析并简单提取的相关数据,后续可处理环节:
1. Logstash: logstash 的filter
2. Elasticsearch: elasticsearch api (JSON DSL)
3. 实时流数据处理框架(Storm, Spark 等)
至于放在以上哪个环节进行数据处理,以及数据需要加工成什么样子,需要根据实际应用的需要进行设计。如果是在 filter 中进行处理,可以根据复杂度进行现有filter插件应用或自有filter插件的开发。
对于厂商的mib,需要先转换成 yaml 格式,然后导入 logstash 中,相关信息:
1. OS需要安装smi 库:apt-get install smitools 或 yum install libsmi
2. Logstash 的 默认mibs 库路径:path/to/logstash/vendor/bundle/jruby/x.x.x/gems/snmp-1.2.0
3. 可以使用 ruby-snmp 项目的 import.rb 进行转换导入工作(https://github.com/hallidave/ruby-snmp/blob/master/import.rb)
这是几条模拟的snmp-trap日志:
<?xml version="1.0" encoding="UTF-8"?><traps> <!-- ibm trap test v1(ibmSpTrapHdC) --> <!-- altDateTime, altSpTxtId, altSysUuid, altSysSern, altMsgID, altMsgIDPrefix, altPriority, altMsgText, altHostContact, altHostLocation --> <trap id="1" enabled="true" version="v1" enterprise=".1.3.6.1.4.1.2" agent-address="192.168.200.1" community="public"> <var oid=".1.3.6.1.4.1.2.6.158.5.1.1">02:39:33 10/27/2017</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.3">SN#99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.5">76F49C9AFE3A11E191298C8C8CBBBBBB</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.6">99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.10">178</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.11">PLAT</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.8">4</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.9">Rebuild in progress for Array in system SN# 99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.12">IBM_3.128</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.13">192.168.3.128</var> </trap> <!-- ibm trap test v2c(ibmSpTrapHdC) --> <!-- altDateTime, altSpTxtId, altSysUuid, altSysSern, altMsgID, altMsgIDPrefix, altPriority, altMsgText, altHostContact, altHostLocation --> <trap id="2" enabled="true" version="v2c" trap-oid=".1.3.6.1.4.1.2.6.158.5.1.0" agent-address="192.168.200.1" community="public"> <var oid=".1.3.6.1.4.1.2.6.158.5.1.1">02:39:33 10/27/2017</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.3">SN#99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.5">76F49C9AFE3A11E191298C8C8CBBBBBB</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.6">99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.10">178</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.11">PLAT</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.8">4</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.9">Rebuild in progress for Array in system SN# 99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.12">IBM_3.128</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.13">192.168.3.128</var> </trap> <!-- ibm trap test v3(ibmSpTrapHdC) --> <!-- altDateTime, altSpTxtId, altSysUuid, altSysSern, altMsgID, altMsgIDPrefix, altPriority, altMsgText, altHostContact, altHostLocation --> <trap id="3" enabled="true" version="v3" trap-oid=".1.3.6.1.4.1.2.6.158.5.1.0" agent-address="192.168.200.1" level="authPriv" security-name="user" auth-protocol="MD5" auth-passphrase="password1" privacy-protocol="DES" privacy-passphrase="password2" > <var oid=".1.3.6.1.4.1.2.6.158.5.1.1">02:39:33 10/27/2017</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.3">SN#99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.5">76F49C9AFE3A11E191298C8C8CBBBBBB</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.6">99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.10">178</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.11">PLAT</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.8">4</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.9">Rebuild in progress for Array in system SN# 99M4876</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.12">IBM_3.128</var> <var oid=".1.3.6.1.4.1.2.6.158.5.1.13">192.168.3.128</var> </trap> <!-- huawei trap test v1(hwOEMEvent) --> <!-- hwTrapSeq, hwTrapEvent, hwTrapSeverity, hwTrapServerIdentity, hwTrapLocation, hwTrapTime --> <trap id="4" enabled="true" version="v2c" trap-oid=".1.3.6.1.4.1.2011.2.235.1.1.500.10.1.1" agent-address="192.168.200.1" community="public"> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.1">1</var> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.3">This is a huawei trap test(hwOEMEvent).</var> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.4">1</var> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.8">ModelA</var> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.9">192.168.200.1</var> <var oid=".1.3.6.1.4.1.2011.2.235.1.1.500.1.10">02:39:33 10/27/2017</var> </trap> <trap id="1" enabled="true" version="v2c" trap-oid=".1.3.6.1.2.1.25" agent-address="10.153.200.1" community="public"> <var oid=".1.3.6.1.2.1.25.3">This is a huawei trap test(hwOEMEvent).</var> <var oid=".1.3.6.1.2.1.25.9">192.168.200.1</var> <var oid=".1.3.6.1.2.1.25.1.2">02:39:33 10/27/2017</var> </trap> <trap id="2" enabled="true" version="v2c" trap-oid=".1.3.6.1.2.1.25.3.8.1" agent-address="10.153.200.2" community="public"> <var oid=".1.3.6.1.2.1.25.3.8.1.3">This is a huawei trap test(hwOEMEvent).</var> <var oid=".1.3.6.1.2.1.25.9">192.168.200.1</var> <var oid=".1.3.6.1.2.1.25.1.2">02:39:33 10/27/2017</var> </trap> </traps>
SNMPv1 中没有 trap-oid
SNMPv2中定义了两个固定OID,一个是 sysUpTime, 一个是 snmpTrapOID。其中 snmpTrapOID 的内容是以给实际的TRAP OID标识,对应mib中的唯一个trap定义。
Snmptrap的模拟发送:
1. 可以使用net-snmp工具,windows下的版本安装使用, Linux下的安装使用。
2. 你也可以使用snmp4j去模拟发送。
- 关于Logstash和snmp-trap事件
- 什么是 SNMP Agent 和 SNMP Trap
- 关于Snmp-Trap日志报文分析
- SNMP Trap
- SNMP trap
- SNMP trap
- SNMP Trap
- SNMP TRAP
- snmp trap
- SNMP陷阱(SNMP Trap)
- zenoss snmp trap 事件添加事件oid描述的解决方法
- collectd和logstash及snmp 的整合
- NET-SNMP发Trap
- PySNMP扩展snmp-trap
- snmp++ Trap实现
- snmp++ trap详解
- SNMP4J实现SNMP TRAP
- SNMP4J实现SNMP TRAP
- C++ 写数据到Excel
- python中的一些函数
- logstash入门之工作流程
- [编程思想]面向逼格编程-从零开始的函数式编程(Functional Programming)
- c作业
- 关于Logstash和snmp-trap事件
- 为工程添加异常捕获记录(本地app-debug.arr包)
- C# 生成二维码,解析二维码
- Elasticsearch 优化建议
- 深入理解js的变量提升和函数提升
- oracle sql 关联操作
- 渣打银行、阿联酋RAK银行分别借助瑞波技术实现对印度的实时跨境支付
- 菲律宾监管机构考虑发布比特币交易所和ICO监管规则
- 【免费报名】ConsenSys开发者工具核心团队首次亮相中国:如何构建高质量的以太坊DApp?