如何基于随机字段Logstash管理多行事件

时间:2016-03-04 14:34:36

标签: logstash multiline grok

我最近一直面临与多线活动有关的问题,我需要你的一些帮助。我的syslog服务器正在发送多行事件。单个事件收集多行,并且证明特定事件行是多行事件的一部分的指示符是定义用户连接会话的随机数。这是一个自定义生成的日志文件:

Feb 16 17:29:04 slot1/APM-LTM notice apd[5515]: 01490010:5: 1ec2b273:Username 'cjones'

Feb 16 17:29:04 slot1/APM-LTM warning apd[5515]: 01490106:4: 1ec2b273: AD module: authentication with 'cjones' failed: Preauthentication failed, principal name: cjones@GEEKO.COM. Invalid user credentials. (-1765328360)

Feb 16 17:10:04 slot1/APM-LTM notice apd[5515]: 01490010:5: d8b5a591: Username 'gbridget'

Feb 16 17:10:04 slot1/APM-LTM err apd[5515]: 01490107:3: d8b5a591: AD module: authentication with 'gbridget' failed: Clients credentials have been revoked, principal name: gbridget@GEEKO.COM. User account is locked (-1765328366)

Feb 16 17:29:04 slot1/APM-LTM notice apd[5515]: 01490005:5: 1ec2b273: Following rule 'fallback' from item 'AD Auth' to ending 'Deny'

Feb 16 17:29:04 slot1/APM-LTM notice apd[5515]: 01490102:5: 1ec2b273: Access policy result: Logon_Deny

以上是与以下用户会话定义的两个不同连接相关的行:d8b5a591(用户gbridget)和1ec2b273(用户cjones)。用户会话是将这些行连接到两个不同事件的唯一指标。更不用说线路事件是交织在一起的。

问题是我不知道如何用多线插件解释上面的grok过滤器,知道后者提供的选项太少了。事实上,"之前的概念"和" next"例如,这里的行不能应用,所以grok选项"模式"和"什么"不能使用,因为事件不一定是连续的。

如果有人能够对此有所了解并告诉我至少它是否可行,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我不认为这些是多线事件,而是相关事件。我会将它们作为6个不同的文档加载到elasticsearch中,然后根据需要进行查询。如果您有针对此数据执行的特定查询,则可能会询问有关如何针对多个文档执行这些查询的问题。

一种替代方法是使用session_id作为文档ID,然后您可以在新信息进入时更新初始文档。他们不建议使用您自己的文档ID(出于性能原因,IIRC),以及更新文档涉及删除旧文档并插入新文档,这对性能也不利。