logstash 推送日志报错解决办法

作者:超级无敌大飞   阅读 (2360)  |  收藏 (0)  |  点赞 (0)

摘要

本文记录了logstash推送数据时报错的解决办法


原文链接:logstash 推送日志报错解决办法

1、object mapping for [host] tried to parse field [host] as object, but found a concrete value

这个错误是由于logstash认为host是一个对象,但是实际传入的是一个值(例如String的巴拉巴拉),对于这个解决办法很简单,只需要将Host变为一个对象就好了,解决办法如下:

在logstash安装根目录下编辑配置文件

vi logstash-nginx-log.conf

中添加如下一段代码即可,如果已经有filter了,就在filter中添加mutate这段代码即可

filter {
  mutate {
    rename => { "host" => "host.name"}
  }
}

修改后,重启Logstash即可

2、Error parsing @timestamp string value=02/Sep/2022:13:12:19 +0800

在我们使用logstash将采集的数据传输到ES中的时候,会发现采集的时间@timestamp的时间和我们本地的不一致,这个主要是因为时区的问题导致的,我们在计算时间的时候需要将这个时间增加8小时,但是这样会很不方便。为了永久解决这个问题,我们可以在logstash中的filter中对该字段进行转换,增加8小时。

filter {
    grok {
      match => {  "message" => "(\s*%{TIMESTAMP_ISO8601:timestamp}\s*\[.*\]\s*%{LOGLEVEL:loglevel}.*%{UUID:traceId})"  }
    }
    ruby {
      code => "event.set('collection_time', event.get('@timestamp'))"
    }
    date {
      match => ["timestamp", "yyyy-MM-dd HH:mm:ss.SSS"]
      target => "@timestamp"
    }
    mutate {
      remove_field => ["timestamp"]
    }
}


分类   杂谈
字数   970

博客标签    logstash 报错解决办法  

评论