gpt4 book ai didi

logstash - Logstash 过滤器入门

转载 作者:行者123 更新时间:2023-12-04 01:00:25 28 4
gpt4 key购买 nike

寻求一些入门帮助...我已经安装了 Logstash(以及 ElasticSearch),但我正在为我的第一个过滤器而苦苦挣扎。

作为测试,我将其配置为从包含 6 行的修剪日志文件中读取,每行以时间戳开头,例如 [2013 年 11 月 5 日 4:09:21:327 PST] 其次是一堆其他数据。

现在我已经设置了我的 conf 文件来读取这个文件,我正在尝试做一个非常基本的 grok 过滤器来匹配这些行,也许是为了获取时间戳,然后是其余的数据(从那里我可以开始拆分它)。

这是我所拥有的:

input {
file {
type => "chris"
path => "/home/chris/Documents/test.log"
}
}
filter {
grok {
type => "chris"
pattern => "%{GREEDYDATA:logline}"
}
}
output {
stdout {debug => true debug_format => "json"}
}

我有点期待(希望)当我运行 Logstash 时,它会匹配每一行并输出它,然后我可以开始分解行并过滤我调整的模式,但因为我无法让第一个基本位工作我有点难住了。

有没有人有类似的conf文件他们可以分享?我能找到的大多数例子都更高级,我似乎被困在试图走出大门。

谢谢,

克里斯。

最佳答案

开始删除过滤器的内容。

logstash grok 过滤器插件的当前版本(1.3.2)的文档在这里
http://logstash.net/docs/1.3.2/filters/grok

确保您正在查看与您下载的 logstash 版本对应的文档的正确版本。

Grok 过滤器示例如下:

filter {
grok {
match => [ "message", "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" ]
}
}

但这不太可能与您的数据相符。

“消息”是整个日志最终出现的默认字段,因此对您来说也可能是一个不错的选择。

下一部分通过读取日志行和匹配部分与预定义的 Grok 模式(例如 IP、WORD 等)来创建 5 个新字段、客户端、方法、请求、字节和持续时间。您需要对此进行更改。

开始
filter {
grok {
match => [ "message", "%{GREEDYDATA:logline}" ]
}
}

这实际上只是将消息字段复制到单独的日志行字段中,但可以从某个地方开始。当您向过滤器添加更多 Grok 模式时,日志行字段将仅包含任何未 groked 的内容。

你可以在这里测试你的 Grok 模式
http://grokdebug.herokuapp.com/

您可能希望使用 grok 过滤器将时间戳记入其自己的字段,然后使用日期过滤器实际将其用作日志时间戳。
filter {
grok {
match => [ "message", "%{TIMESTAMP_ISO8601:syslog_timestamp} %{GREEDYDATA:syslog5424_msg}" ]
}
date {
match => [ "syslog_timestamp", "ISO8601" ]
}
}

TIMESTAMP_ISO8601 以非常详细的格式( http://grokdebug.herokuapp.com/patterns# )匹配时间戳,这可能对您不起作用。

ISO8601 与为日期过滤器预先指定的格式相同,您可能需要在此处手动指定日期格式。
查看文档:
http://logstash.net/docs/1.3.2/filters/date

关于logstash - Logstash 过滤器入门,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20637956/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com