zoukankan      html  css  js  c++  java
  • logstash中date的时间处理方式总结

    1、直接在配置文件中自定义的时间格式

    这是tomcat配置文件中的一段日志时间配置,按照这样的配置,那么输出的日志是这样子的:

     "timestamp" : "2019-12-11 10:11:12 +0800"

     然后你继续在logstash中这样子配置

    date {
      match => [ "timestamp", "yyyy-MM-dd HH:mm:ss Z"]
      target => "@timastamp"
    }

    此时logstash就不会报"_dateparsefailed"错误了。

    这种形式在nginx、apache等web服务器中配置是最好的,也比较方便分析。

    2、第二种,带有中括号的

    [07/Feb/2018:16:24:19 +0800]

     那么在grok插件中这样子定义就行:

    [%{HTTPDATE:timestamp}]

    date插件可以直接转换,如下:

    date {
        match => ["timestamp","dd/MM/yyy:HH:mm:ss Z"]
    target => "@timastamp" }

    3、ISO8601形式1

    在日志文件中原生日志是这个样子的

    2019-03-19 13:08:07.782

    重点是后面的”.782“,后面附加以毫秒为单位的。

    那么grok插件中可以这样子定义匹配的规则:

    
    
    grok {
      match => { "message" => "%{TIMESTAMP_ISO8601:log_create_time}" }
    }

    date插件这样匹配

    date {
      match => [ "log_create_time", "MMM d HH:mm:ss", "MMM DD HH:mm:ss", "ISO8601"]
      target => "@timestamp" 
    }

    或者这样,推荐使用这个,更加简介

    date {
      match => [ "log_create_time", "yyyy-MM-dd HH:mm:ss.SSS" ]
      target => "@timestamp"
    }

    4、ISO8601形式2

    时间 date 中带 T,日志原文如下:

    2019-12-11T17:06:33 +08:00

    此时, grok 可以这样写:

    grok {
      match => { "message" => "%{TIMESTAMP_ISO8601}:log_create_time" }
    }

    而 date 插件 转存到 @timestamp 中可以这样匹配:

    date {
      match => [ "log_create_time", "yyyy-MM-dd'T'HH:mm:ss ZZ" ]
      target => "@timestamp"
    }

    也可以用更简洁的写法:

    date {
      match => [ "log_create_time", "ISO8601" ]
      target => "@timestamp"
    }

    4、Unix时间戳形式

    典型的如 MySQL 的慢查询日志,日志原文:

    # Time: 2019-12-11T01:50:21.123793Z //舍弃这个时间
    # User@Host: root[root] @ elk-master01 Id: 4
    # Quert Time: 4.650893 Lock time: 0.000000 Rows_sent: 1 Rows_examined: 0
    SET timestamp=1554342621; // 需要的是这个
    selecet sleep(4.65);

     在 grok 中这样匹配:

    %{NUMBER:timestamp_mysql_slowquery}

    在 date 插件中这样匹配:

    date {
      match => [ "timestamp_mysql_slow_query", "UNIX" ]
      target => "@timestamp"
    }
  • 相关阅读:
    使用cordova开发移动app时用form表单的submit时遇到的问题
    收藏链接
    Hibernate总结
    MyBatis基本应用
    Java中字符串(String)总结
    SpringMVC
    SpringIOC----注解
    栈与堆的区别
    IOS模型
    Java Web容器的启动过程
  • 原文地址:https://www.cnblogs.com/fat-girl-spring/p/13044570.html
Copyright © 2011-2022 走看看