filebeat自定义日期类型

项目输出日志格式如下:

DEBUG|2022-10-12 17:13:00|maas|test|http|/api/order/orderusedList|d67dae34340e91e37d5a33e23327|2f8416a9-df83-4910-b71f-f534ef1a9d|ssd|request|{"start_id":0,"count":20}

按以下grok收集到es的时候,所有字段都是text类型,现需要将logdate字段转化为date field

      "grok" :{
        "field" : "message",
        "patterns" : ["%{DATA:level}\\|%{DATA:logdate}\\|%{DATA:app}\\|%{DATA:env}\\|%{DATA:type}\\|%{DATA:site}\\|%{DATA:device_id}\\|%{DATA:request_id}\\|%{DATA:from}\\|%{DATA:message}\\|%{DATA:context}"]
      }

在这里插入图片描述


需要使用date对logdate字段进行处理,自定义pipeline如下:

[root@test filebeat]#cat php-log.json
{
  "description" : "php_log",
  "processors" : [
    {
      "grok" :{
        "field" : "message",
        "patterns" : ["%{DATA:level}\\|%{DATA:logdate}\\|%{DATA:app}\\|%{DATA:env}\\|%{DATA:type}\\|%{DATA:site}\\|%{DATA:device_id}\\|%{DATA:request_id}\\|%{DATA:from}\\|%{DATA:message}\\|%{DATA:context}"]
      }
    },
    {
      "date": {
       "on_failure" : [
         {
           "append" : {
             "field" : "error.message",
             "value" : "{{ _ingest.on_failure_message }}"
           }
         }
          ],
        "field": "logdate",   # 需要处理的字段名
        "target_field": "time",  # 这里会新生成一个time字段
        "timezone": "Asia/Shanghai",  # 不加时区结果会相差8小时
        "formats": [
          "yyyy-MM-dd H:m:s"  # 如果时间格式写HH:mm:ss会与实际时间相差9个月
        ]
      }
    }
  ]
}

#更新pipeline
curl -X PUT "http://192.168.0.171:9200/_ingest/pipeline/php-log" -H 'Content-Type: application/json' -d@php-log.json

kibana中修改日期显示格式
在这里插入图片描述


成功将text类型改为date类型
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值