gpt4 book ai didi

logging - 如何使用 FileBeat 从日志行设置字段

转载 作者:可可西里 更新时间:2023-11-01 11:18:19 27 4
gpt4 key购买 nike

在 Windows 服务器上,我有一个 FileBeat 进程,它获取我所有的 NCSA 日志(NCSA 格式的 HTTP 请求)并将它们发送到我们的 Redis 数据库(用于 ELK 堆栈的缓冲区)。

我第一次执行 FileBeat 进程时,它获取了我所有的日志并将它们发送到 Redis,非常完美,除了 @timestamp 是在执行当天设置的,而不是日志本身的日期(我有 6 个月历史)。这在 Kibana 中看起来不太好,因为 6 个月的日志历史记录出现在同一时间(分钟)。

我每天有一个文件,我想知道是否可以在 filebeat 配置中从日志文件本身提取时间戳以设置 @timestamp,以便每一行/文件都有正确的时间?

日志行如下所示:

172.16.70.18 -  -  [03/Dec/2016:09:24:24 +0000] "GET /svc/product/v2/IDCDN8QH00?sid=mobile HTTP/1.1" 404 411 "-" "Jakarta Commons-HttpClient/3.1"
172.16.70.18 - - [03/Dec/2016:13:00:52 +0000] "GET /svc/asset/v2/560828?sid=mobile HTTP/1.1" 200 6670 "-" "Jakarta Commons-HttpClient/3.1"
172.16.82.232 - - [03/Dec/2016:15:15:55 +0000] "GET /svc/store/v1?sid=tutu&lang=en&lang=fr HTTP/1.1" 200 828 "-" "Apache-HttpClient/4.5.1 (Java/1.7.0_51)"
172.16.82.235 - - [02/Dec/2016:15:15:55 +0000] "GET /svc/asset/v1?sid=tutu&size=1 HTTP/1.1" 200 347 "-" "Apache-HttpClient/4.5.1 (Java/1.7.0_51)"
172.16.82.236 - - [02/Dec/2016:15:16:02 +0000] "GET /svc/product/v2?sid=tutu HTTP/1.1" 200 19226 "-" "Apache-HttpClient/4.5.1 (Java/1.7.0_51)"
172.16.82.237 - - [02/Dec/2016:15:16:14 +0000] "GET /svc/catalog/v2?sid=tutu HTTP/1.1" 200 223174 "-" "Apache-HttpClient/4.5.1 (Java/1.7.0_51)"
172.16.82.238 - - [02/Dec/2016:15:16:26 +0000] "GET /svc/store/v1?sid=tutu&lang=en&lang=fr HTTP/1.1" 200 3956 "-" "Apache-HttpClient/4.5.1 (Java/1.7.0_51)"
172.16.70.15 - - [01/Dec/2016:15:53:42 +0000] "GET /svc/product/v2/IDAB062200?sid=mobile HTTP/1.1" 200 5400 "-" "Jakarta Commons-HttpClient/3.1"
172.16.70.17 - - [01/Dec/2016:15:53:42 +0000] "GET /svc/product/v2/IDAB800851?sid=mobile HTTP/1.1" 200 3460 "-" "Jakarta Commons-HttpClient/3.1"
172.16.70.18 - - [01/Dec/2016:16:35:36 +0000] "GET /svc/product/v2/IDAB601071?sid=mobile HTTP/1.1" 404 400 "-" "Jakarta Commons-HttpClient/3.1"
172.16.70.18 - - [01/Dec/2016:16:35:36 +0000] "GET /svc/product/v2/IDCDN8QH00?sid=mobile HTTP/1.1" 401 400 "-" "Jakarta Commons-HttpClient/3.1"

此外,我想知道我是否可以使用处理器来执行,例如使用第一列的内容创建一个新字段“IP”。

我看到一个similar post但它看起来只能与 ElasticSearch 直接集成。我的 FileBeat 输出是 Redis。

最佳答案

Filebeat 唯一的解析能力是 JSON 日志。因此,如果您可以将服务器更改为以 JSON 格式写入数据,则无需触及管道的其余部分(Redis -> Logstash -> Elasticsearch)即可完成此操作。

否则在将数据写入 Redis 之前,您需要使用 Logstash 进行解析。您可以运行 Filebeat -> Logstash -> Redis 或只运行 Logstash -> Redis。

或者如果您可以修改上游 Logstash 配置,您可以在那里进行解析。

关于logging - 如何使用 FileBeat 从日志行设置字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462045/

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