zoukankan      html  css  js  c++  java
  • ELK时间戳

    ELK时间戳

    在我们使用ELK过程中,总会遇到时间戳的问题。首先logstash如果没有加以处理的话,那么它默认使用的是采集的时间戳,然后存入ES。那么这样的话时间显示的是错误的,再接着因ES默认使用的是UTC时间,那么我们在看数据的时候,看到的时间与实际的时间也是慢8小时的,但Kibana默认使用的是你浏览器的时区,所以这一块问题不是很大,如果在你logstash时间处理是正常的情况下,kibana看的时候发现时间不正常的话,那么我们只需在web界面修改一下时区即可达到时间正确的目的。接下来我就logstash时间问题来看一下相关配置。

    例子,我就拿我前几天部署的mysql慢日志来做例子吧,yaml文件如下:

    input {
        redis {
            host => "10.228.81.51"
            port => 6379
            password => "123456"
            db => "1"
            data_type => "list"
            key => "mysqllog"
        }
    }
    filter {
        json {
            source => "message"
        }
    
        grok {
            match => [ "message" , "(?m)^#s+User@Host:s+%{USER:user}[[^]]+]s+@s+(?:(?<clienthost>S*) )?[(?:%{IPV4:clientip})?]s+Id:s+%{NUMBER:row_id:int}
    #s+Query_time:s+%{NUMBER:query_time:float}s+Lock_time:s+%{NUMBER:lock_time:float}s+Rows_sent:s+%{NUMBER:rows_sent:int}s+Rows_examined:s+%{NUMBER:rows_examined:int}
    s*(?:use %{DATA:database};s*
    )?SETs+timestamp=%{NUMBER:timestamp};
    s*(?<sql>(?<action>w+).*;)s*(?:
    #s+Time)?.*$" ]
        }
        date {  # 将日志的 timestamp 时间字段,转成UNIX格式后,并赋值给默认的时间戳
            locale => "en"
            match => ["timestamp","UNIX"]
            target => "@timestamp"
        }
        
        ruby { ##设置一个自定义字段'timecode'[这个字段可自定义],将默认时间戳中的值加8小时后并重新赋值给 timecode
            code => "event.set('timecode', event.get('@timestamp').time.localtime + 8*3600)"
        }
        #ruby {#设置一个自定义字段 'time' 字段,然后将上一步自定义 ‘timecode’ 时间字段中的值重新赋给 time 自定义字段
        # 因生成环境需要,所我不需要将默认时间戳加八小时
        # 如果需要es展示的就是加八小时的时间戳的话,那么可以直接将 date 字段中的内容注释掉,然后打开这一块内容。并将 'time' 字段修改成 '@timestamp' 字段。那么logstash所看到的时间戳则是 加八小时后的时间
        #    code => "event.set('time',event.get('timecode'))"
        #}
    #    mutate {
    #        remove_field => ["timecode"]
    #    }
    }
    
    output {
       #stdout {
       #   codec => rubydebug
       #}
       if [tags][0] == "mysql-slow-log" {
            elasticsearch {
            hosts => ["10.228.81.51:9200"]
            index => "%{[tags][0]}-%{+YYYY.MM.dd}"
          }
       }
    }
    

    参考文档

  • 相关阅读:
    Base64编码原理分析
    对 js 高程 Preflighted Reqeusts 的理解
    js 跨域 之 修改服务器配置-XAMPP-Apache (nginx 拉到最后!)
    js 模拟 select 的 click 事件
    串讲-解释篇:作用域,作用域链,执行环境,变量对象,活动对象,闭包
    js 匿名函数-立即调用的函数表达式
    Java I/O流输入输出,序列化,NIO,NIO.2
    Java8Lambda表达式
    设计模式之适配器模式
    设计模式之装饰器设计模式
  • 原文地址:https://www.cnblogs.com/98record/p/elk-shi-jian-chuo.html
Copyright © 2011-2022 走看看