Logstash,grok 过滤器不适用于固定长度字段

     2023-05-08     202

关键词:

【中文标题】Logstash,grok 过滤器不适用于固定长度字段【英文标题】:Logstash, grok filter not working for fixed length fields 【发布时间】:2015-11-13 15:08:37 【问题描述】:

我是 logstash 的新手,我有一个带有固定长度字段的输入文件和一个使用正则表达式配置的 log stash 配置文件,如下所示:

我的日志存储配置文件 first-pipeline.conf 的内容

# The # character at the beginning of a line indicates a comment. Use
# comments to describe your configuration.
input 
    file 
        path => "/Users/priya/sample.log"
        start_position => beginning 
    


filter 
    grok 
        match => ["message", "(?<RECORD_CODE>.1)(?<SEQUENCE_NUMBER>.6)(?<REG_NUMBER>.12)(?<DATA_TYPE>.3)"]
    



output 

    stdout 

我的 sample.log 文件的内容:

50000026311000920150044236080000000026
5000003631100092015005423608000000002
5000004631100092015006615054962

我从日志存储中得到的输出是:

priyas-MacBook-Pro:bin priya$ ./logstash -f first-pipeline.conf
Default settings used: Filter workers: 2
Logstash startup completed

有人可以帮我调试问题并让它工作吗?

感谢和问候, 普里亚

【问题讨论】:

有人能帮帮我吗 - 我不知道出了什么问题,相同的正则表达式模式在 grok 调试器中工作正常 - 但它不在配置文件中。没有日志 - 我不知道如何继续 【参考方案1】:

我认为您的问题不是 grok 表达式本身,而是文件输入读取您的测试文件的方式。

文件输入会记住它上次从日志文件中读取的位置,并在后续运行中继续从该位置读取(它将此索引存储在名为 since_db 的特殊文件中)。 start_position => "beginning" 仅在您第一次启动 logstash 时有效,在随后的运行中,它将从上次结束的位置开始读取,这意味着您不会在控制台中看到任何新行,除非您 a.) 在文件中添加新行或 b.) 手动删除 since_db 文件(sincedb_path => null 在 Windows 下不起作用,至少在我上次尝试时)。

所以恕我直言,您应该首先确保您的 grok 工作正常。只需将 stdin 输入添加到您的输入部分,如下所示:

input 
    stdin 
    

    file 
       path => "/Users/priya/sample.log"
       start_position => beginning 
    

现在您可以手动创建logstash 事件,只需在控制台中输入并按回车即可。这些事件将被解析为常规的 logstash 事件,您还将在控制台中看到生成的 json(由 stdout 输出 fitler 完成)。

确定 grok 正常工作后,您可以检查 logstash 是否按照您的预期获取文件内容。重新启动 logstash 并在 /Users/priya/sample.log 文件中添加新的数据行(不要忘记新行末尾的 newcline/CR 否则不会被拾取)。如果 logstash 选择新行,它应该出现在您的控制台输出中(因为您添加了 stdout 输出过滤器)。

【讨论】:

感谢 Markus - 帮助了!

Logstash 中的 Grok 过滤器错误

】Logstash中的Grok过滤器错误【英文标题】:GrokFilterErrorinLogstash【发布时间】:2017-01-1109:28:42【问题描述】:我的过滤器中有以下内容,出于某种原因,它只打印电子邮件而不是交付状态。但是当我注释掉这封电子邮件时,它会... 查看详情

未找到 logstash grok 过滤器模式

】未找到logstashgrok过滤器模式【英文标题】:logstashgrokfilterpatternnotfound【发布时间】:2015-04-1419:46:12【问题描述】:我一直在尝试为logstash创建一些自定义的grok模式。他们中的大多数工作正常,但有一个让我难过。模式是:WINUSE... 查看详情

Grok 用于日志文件 Logstash

】Grok用于日志文件Logstash【英文标题】:GrokforlogfilesLogstash【发布时间】:2020-04-2212:03:00【问题描述】:我需要编写一个grok模式来检索“****”中的内容-----Startofscriptforserversitboap1at**FriApr1714:24:19**HKT2020---------**user11**8775110Apr16?00:00... 查看详情

logstash笔记-----grok插件的正则表达式来解析日志

(一)简介:   丰富的过滤器插件的存在是logstash威力如此强大的重要因素。名为过滤器,其实提供的不单单是过滤的功能,它们扩展了进入过滤器的原始数据,进行复杂的逻辑处理,甚至可以无中生有的添加新的logs... 查看详情

Logstash 应该只记录 grok 解析的消息

...个ELK堆栈,其中的日志由filebeat传送,在logstash中的一些过滤器之后,它被转发到ES。由于有很多服务器和日志,大量日志正在进入logstash,但我已将过滤器配置为仅处理非常特定类型的日志消息。它做得很好,但是甚 查看详情

Logstash grok 模式过滤自定义日志消息

】Logstashgrok模式过滤自定义日志消息【英文标题】:LogstashgrokpatterntofiltercustomLogmessage【发布时间】:2015-03-1608:40:25【问题描述】:我是logstash的新手,我想从日志消息中过滤文件。这是日志消息:[2015-03-1613:12:05,130]INFO-LogMediatorSe... 查看详情

logstash grok 过滤器忽略消息的某些部分

】logstashgrok过滤器忽略消息的某些部分【英文标题】:logstashgrokfilterignorecertainpartsofmessage【发布时间】:2015-02-2614:27:01【问题描述】:我有一个以syslog开头的drupal看门狗日志文件,例如时间戳等,然后有一个管道分隔的我登录看... 查看详情

logstash grok,用 json 过滤器解析一行

】logstashgrok,用json过滤器解析一行【英文标题】:logstashgrok,parsealinewithjsonfilter【发布时间】:2018-04-2002:54:52【问题描述】:我正在使用ELK(弹性搜索、kibana、logstash、filebeat)来收集日志。我有一个包含以下几行的日志文件,每... 查看详情

过滤数据时出现logstash grok问题

】过滤数据时出现logstashgrok问题【英文标题】:logstashgrokissuewhilefilteringdata【发布时间】:2019-05-2105:26:44【问题描述】:我有一个数据,基本上是通过rm命令删除数据,如下所示。ttmv516,19/05/21,03:59,00-mins,dvcm,dvcm1668204.10.04212736?DN03:... 查看详情

logstash的过滤插件及其应用

...ogstash的过滤插件数据从源传输到存储库的过程中,Logstash过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便进行更强大的分析和实现商业价值。Logstash能够动态地转换和解析数据,不受格... 查看详情

logstash / grok 自定义字段

】logstash/grok自定义字段【英文标题】:logstash/grokcustomfileds【发布时间】:2017-07-1810:37:32【问题描述】:我是ELK堆栈的全新用户。我在从日志中过滤掉特定部分时遇到了一点问题。示例日志:[2017-05-3013:58:09,336]INFO[com.qwerty.test.core... 查看详情

logstash:使用自定义正则表达式模式(代码片段)

...送到“存储”(如Elasticsearch)。Grok是Logstash中的过滤器,用于将非结构化数据解析为结构化和可查询的内容。Regularexpression是定义搜索模式的字符序列。如果你已经在运行Logstash,则无需安装额外的正则表达式库&#... 查看详情

使用 Grok for Logstash 解析 Apache2 错误日志

...解析我的apache2错误日志,但遇到了一些麻烦。它似乎与过滤器不匹配。我很确定时间戳是错误的,但我不确定,我真的找不到任何文档来解决这个问题。另外,有没有办法将fields.errmsg中的内容提供给我@me 查看详情

logstash:日志解析的grok模式示例(代码片段)

...和分析工具中解析日志数据。在这里查看我的Grok教程“Logstash:Grokfilter入门”。但是用Grok解析日志可能会很棘手。本博客将研究一些Grok模式示例,这些示例可以帮助你了解如何解析日志数据。什么是grok?最初的术语实际... 查看详情

logstash:grok模式示例(代码片段)

...查询功能。因此,让我们深入了解如何使用LogstashGrok过滤器处理非结构化数据。理论在CSV文件中,每条记录都有相同的字段列表。这些字段的顺序可预测地重复,以便任何程序以结构化方式读取。自然,这对于Elas... 查看详情

使用logstashfiltergrok过滤日志文件(代码片段)

Logstash提供了一系列filter过滤plugin来处理收集到的logevent,根据logevent的特征去切分所需要的字段,方便kibana做visualize和dashboard的dataanalysis。所有logstash支持的event切分插件查看这里。下面我们主要讲grok切分。Grok基本介绍Grok使用... 查看详情

企业运维之elk日志分析平台(logstash)(代码片段)

ELK日志分析平台--Logstash数据采集介绍与配置1.Logstash简介2.Logstash组成3.Logstash安装与配置3.1运行logstash3.2file输出插件3.3elasticsearch输出插件3.4Syslog输入插件3.5多行过滤插件3.6grok过滤插件1.Logstash简介Logstash是用于日志的搜集、分析、... 查看详情

logstash过滤配置

input{redis{host=>"127.0.0.1"port=>6380data_type=>"list"key=>"phgj-list"}}filter{if[fields][tag]=="ph130-ingcn01"{grok{match=>{"message"=>"[(?<api_time>%{NOTSPACE}%{SPACE}%{NO 查看详情