Logstash聚合插件,任务id跨多行
我正在尝试根据进程id聚合事件。进程id没有顺序,跨越多行。以下是其中一个样本—Logstash聚合插件,任务id跨多行,logstash,logstash-grok,Logstash,Logstash Grok,我正在尝试根据进程id聚合事件。进程id没有顺序,跨越多行。以下是其中一个样本— 2019 Apr 23 14:01:44:870 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Main Process has started^M 2019 Apr 23 14:01:44:870 GMT +000
2019 Apr 23 14:01:44:870 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Main Process has started^M
2019 Apr 23 14:01:44:870 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Main Process has started^M
2019 Apr 23 14:01:44:878 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Ending ODS query Process to create enterprise message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Send Message Process has finished at : 1556028104882 for flight 1206 departing on 2019-04-24 from EWR to CLT of type Leg Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Send Message Process has finished at : 1556028104882 for flight 1206 departing on 2019-04-24 from EWR to CLT of type Flight Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Send Message Process has begun at : 1556028104882 for flight 1196 departing on 2019-04-24 from CUN to ORD of type Leg Level Message^M
2019 Apr 23 14:01:44:883 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Send Message Process has begun at : 1556028104882 for flight 1196 departing on 2019-04-24 from CUN to ORD of type Flight Level Message^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526635 Main Process is ending for flight 1206 departing on 2019-04-24^M
2019 Apr 23 14:01:44:882 GMT +0000 BW.EnterpriseFlifoFormatter-EnterpriseFlifoFormatter USER [BW-User] - Interface Name : EFF: Process ID :674526636 Main Process is ending for flight 1206 departing on 2019-04-24^M
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
因此,进程id不是按顺序排列的,我们如何使用logstash聚合筛选器将属于同一进程id的所有消息关联并发送为单个事件,我建议您对此进行检查,以跟踪一对开始/结束事件,并使用其时间戳来计算它们之间的运行时间,因此根据您需要的id,它标识一个“开始”事件并等待其相关的“结束”事件。下面是一个简单的使用方法
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
调整这个插件以满足您的需要可能会很有用,因为它已经处理超时、等待基于特定字段的事件等
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
但您还需要注意以下几点:
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
- 知道何时停止,直到何时需要累积事件
- 在内存中潜在地积累大量事件可以吗
- 什么时候暂停
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
编辑:
我很快检查了插件,我的建议基本上是将所有需要的信息添加到“统一事件”中
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
假设您需要从所有事件中获取“我的字段”的内容。
您可以更新第167行:
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
上次编辑:
这个插件应该适合你
我建议您检查这个选项,它跟踪一对开始/结束事件,并使用它们的时间戳来计算它们之间经过的时间,因此根据您需要的id,它会识别一个“开始”事件并等待相关的“结束”事件。下面是一个简单的使用方法
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
调整这个插件以满足您的需要可能会很有用,因为它已经处理超时、等待基于特定字段的事件等
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
但您还需要注意以下几点:
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
- 知道何时停止,直到何时需要累积事件
- 在内存中潜在地积累大量事件可以吗
- 什么时候暂停
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
编辑:
我很快检查了插件,我的建议基本上是将所有需要的信息添加到“统一事件”中
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
假设您需要从所有事件中获取“我的字段”的内容。
您可以更新第167行:
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))
上次编辑:
这个插件应该适合你
多亏了你的问题,我发现这个插件应该适合你!我在下面留下了我的答案并进行了编辑。多亏了你的问题,我发现这个插件应该适合你!我在下面留下我的答案并进行编辑。
return add_elapsed_info(event, elapsed, unique_id, start_event.get("@timestamp"), start_event.get("my_field"))