filebeat-自定义timestamp

本文介绍如何在Filebeat 7.16版本中通过timestamp processor配置来自定义日志的时间戳字段@timestamp,以实现精确的日志时间记录,并提供了一个能够处理多种日志格式的示例配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义timestamp

在filebeat采集日志时,会需要将日志中的具体时间用于@timestamp字段,供后续的时间查找等等,在7.16版本中可以使用timestamp processor:https://www.elastic.co/guide/en/beats/filebeat/current/processor-timestamp.html 来进行处理

"2022-01-26 06:43:31.632 | log message"		
1.1.1.1 - - [27/Jan/2022:17:08:47 +0800] "GET xxxx"

要注意的是layouts必须使用固定的时间来进行表示,之前没认真看文档,导致时间一直是错误时间

以下配置可以同时处理上述日志格式,获取到真实的日志实时作为timestamp字段存储到es中
- script:
      lang: javascript
      id: timestamp_filter
      tag: enable
      source: >
        function process(event) {
            var str=event.Get("message");
            var logPath=event.Get("log.file.path");
            if(logPath.indexOf("nginx") != -1){
                var time=str.match(/\[(.+?)\]/g);
                if (time !== null) {
                   time = time[0];
                   if (time !== null) {
                      time= time.substring(1, time.length - 1)
                   }
                }
            } else {
                var time=str.substr(0,23);
            }
            event.Put("log_time",time);
        }
- timestamp:
      field: log_time
      timezone: Asia/Shanghai
      layouts:
        - '2006-01-02 15:04:05'
        - '2006-01-02 15:04:05.999'
        - '02/Jan/2006:15:04:05 +0800'
      test:
        - '2020-08-05 16:21:51.824'
        - '26/Jan/2022:15:06:12 +0800'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值