ELK:Logstash6.7版本配置记录及格式化时间

一、背景

项目统一升级ELK,原来的版本已经不适配新的集群,需要升级elk版本,升级的过程中很多配置改变,记录下相关操作。

这里只记录logstash的相关配置。

二、相关配置

我们都知道logstash配置文件的主要格式如下

input {
       
}

filter {

}

output {

} 

原来项目使用的是2.3.4版本的logstash,升级到新版本后相关的配置发生了改变。

2.3.4版本input

input {
    kafka{
            group_id => "group_id"
            auto_offset_reset => "smallest"
            topic_id => "topic_id "
            zk_connect => "zk地址"
            codec => "json"
    }
}

6.7版本input

input { 
    kafka{
            group_id => "group_id"
            auto_offset_reset => "earliest"
            topics => ["topics"]
            bootstrap_servers => "kafka集群地址"
            codec => "json"
        }

}

6.7版本时区问题

由于需要统一时间解析格式(“yyyy-MM-dd’T’HH:mm:ss.SSS’+08:00’”),所以添加了 timestamp 字段

我们可以参考ruby相关的格式化文档

ruby时间格式化 strftime

Ruby 日期 & 时间(Date & Time)

 code => "event.set('timestamp', event.get('@timestamp').time.localtime.strftime('%Y-%m-%dT%H:%M:%S.%3N%:z'))"

我们可以看到time字段格式化为需要的格式了。
在这里插入图片描述
同时为了解决偏移8小时时区的问题,添加了 index_date 字段,通过gsub将该字段变换为
yyyy.MM.dd格式的显示

        ruby { 
            code => "event.set('index_date', event.get('@timestamp').time.localtime + 8*60*60)" 
        }

在这里插入图片描述
我们看下完整的filter格式

filter {
        
        #增加偏移时区,设置新字段 index_date  
        ruby { 
            code => "event.set('index_date', event.get('@timestamp').time.localtime + 8*60*60)" 
        }

        ruby {
	        code => "event.set('timestamp', event.get('@timestamp').time.localtime.strftime('%Y-%m-%dT%H:%M:%S.%3N%:z'))"
        }
        
        mutate {
            convert => ["index_date", "string"]
            gsub => ["index_date", "T([\S\s]*?Z)", ""]
            gsub => ["index_date", "-", "."]
        }
}

在output中使用上面新生成的field

output {      
	elasticsearch {
                hosts => "127.0.0.1:9200"
                index => "myindex-%{index_date}"
                user => "elastic"
                password => "changeme"
	}

    stdout {
        codec => rubydebug
    }
} 

简单的配置就完成了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值