一、问题描述

搭建ELK收集docker日志供开发人员定位问题,为了开发人员更好的实时查看日志,安装了logtrail插件。真正投入使用后,开发人员反馈日志排序有问题。经过仔细对比,logtrail实时刷新的日志和docker logs实时刷新的日志确实在同一毫秒产生的日志是随机排序的,如下图所示
logtrail日志显示日志
在这里插入图片描述
docker logs显示日志
在这里插入图片描述

二、问题解决

收集日志使用的是filebeat,而filebeat采集日志的时候会增加一个属性叫做offset字段, offset字段标识所读取日志的偏移量(行数),添加offset二级排序即可。

修改logtrail配置,配置logtrail.json二级排序
"secondary_sort_field": "offset"

{
  "version" : 2,
  "index_patterns" : [
    {      
      "es": {
        "default_index": "docker-localhost*"
      },
      "tail_interval_in_seconds": 1,
      "es_index_time_offset_in_seconds": 0,
      "display_timezone": "local",
      "display_timestamp_format": "MMM DD HH:mm:ss",
      "max_buckets": 500,
      "default_time_range_in_days" : 1,
      "max_hosts": 100,
      "max_events_to_keep_in_viewer": 5000,
      "default_search": "",
      "fields" : {
        "mapping" : {
            "timestamp" : "@timestamp",
            "hostname" : "container.name",
            "program": "machine.os",
            "message": "message"
        },
        "message_format": "{{{message}}}",
        "keyword_suffix" : "keyword",
        "secondary_sort_field": "offset"
      },
      "color_mapping" : {
        "field": "loglevel",
          "mapping": {
              "ERROR": "#FF0000",
              "WARN": "#FFEF96",
              "DEBUG": "#B5E7A0",
              "TRACE": "#CFE0E8",
              "INFO": "#339999"
          }
      }
    }
  ]
}

不足之处就是,刷新页面后排序仍然混乱
参考:https://github.com/sivasamyk/logtrail/pull/337/commits/d2bbc74d7c2e7c71d75d4a7d085a1a986c9b4395

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐