Kibana展示的日志时间与真实的日志不一致

2019年5月14日10:55:36 2 9,914 views

背景:之前搭建ELK时候经常听开发人员反馈说日志的数据和服务器的日志顺序不一致, 看日志给他们带来许多烦恼.

问题分析:kibana向es(elasticsearch)发送请求的时候默认排序为@timestamp字段,然而@timestamp字段的精度是毫秒, 也就是说如果同一毫秒内输出多条日志则在kibana展示的日志就会出现和服务器日志不一致的问题。
Kibana展示的日志时间与真实的日志不一致

一、datafiler 插件

datafiler插件的作用是把timestamp转换为@timestamp的格式并存入@timestamp内,并把timestamp删除

@timestamp" => 2018-06-20T14:50:05.061Z,        #获取日志时间

timestamp" => "20/Jun/2018:22:50:04 +0800        #日志用户访问时间

Kibana展示的日志时间与真实的日志不一致

logstash 示例:

Kibana展示的日志时间与真实的日志不一致
Kibana展示的日志时间与真实的日志不一致

input {
  beats {
    port => 5044
  }
}
filter {
    date {
       match => ["timestamp","yyyy-MM-dd HH:mm:ss"] #根据上面日志格式确定
       remove_field => "timestamp"  #移除老的timestamp
     }
}
output {
if [fields][log_source] == "client-qyt" {
    elasticsearch {
        hosts => "es服务器内网地址:9200"
        index => "client_qyt-%{+YYYY.MM.dd}"
      }
}

重启logstash

nohup /usr/local/logstash/bin/logstash -f /usr/local/logstash/config/01-syslog.conf & >/dev/null

查看效果
Kibana展示的日志时间与真实的日志不一致

解决日志排序问题

Kibana展示的日志时间与真实的日志不一致

  • QQ精品交流群
  • weinxin
  • 微信公众号
  • weinxin
admin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • avatar 裘悦 1

      兄弟,我的友情链接你做了,但是我的名字你写错了,不是裘月,是裘悦,能否改下,谢谢,另外你的我也做好了

        • avatar admin Admin

          @裘悦 不好意思,我打字水平一般,您见谅~~~