logstash 写入数据到elasticsearch 索引相差8小时解决办法
问题说明
Logstash用的UTC时间, logstash在按每天输出到elasticsearch时,因为时区使用utc,造成每天8:00才创建当天索引,而8:00以前数据则输出到昨天的索引
# 使用logstash写入elasticsearch时的配置
output {
elasticsearch {
id => "logstash-%{+YYYY.MM.dd}"
}
}
1
2
3
4
5
6
logstash和elasticsearch是按照UTC时间的,kibana却是按照正常你所在的时区显示的,是因为kibana中可以配置时区信息。
解决问题
添加一个字段
该字段利用logstash的fileter进行生成,由多种方式实现,新生成的字段为timestamp如下
# ruby 插件实现
ruby {
code => "event.set('timestamp', event.get('@timestamp').time.localtime + 8*60*60)"
}
# grok 从日志正则匹配得到
grok {
match => {"message"=> "%{TIMESTAMP_ISO8601:timestamp}"}
}
# date 把日志时间重写为@timestamp
#date {
# match => ["message", "^\[(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}.\d{3})"]
# target => "@timestamp"
# timezone => "+08:00"
#}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
用mutate插件对数据进行转换,提取想要的日期字段
# convert转换为string类型,gsub只处理string类型的数据,在用正则匹配,最终得到想要的日期
mutate {
convert => ["timestamp", "string"]
gsub => ["timestamp", "T([\S\s]*?)Z", ""]
gsub => ["timestamp", "-", "."]
}
1
2
3
4
5
6
配置output
elasticsearch {
hosts => ["localhost:9200"]
index => "log-%{timestamp}"
}
1
2
3
4
注意:在使用grok进行正则匹配是,可以使用的方法可以参考这里
https://github.com/logstash-plugins/logstash-patterns-core/blob/master/patterns/grok-patterns
https://www.elastic.co/guide/en/logstash/current/plugins-filters-grok.html
grok 测试平台
http://grokdebug.herokuapp.com/
————————————————
版权声明:本文为CSDN博主「40kuai」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012881331/article/details/88313045
logstash 写入数据到elasticsearch 索引相差8小时解决办法的更多相关文章
- docker之容器日志输出与系统时间相差8小时解决办法
参考:https://blog.csdn.net/eumenides_/article/details/94719944 https://muguang.me/it/2658.html 使用doc ...
- logstash 读取MySQL数据到elasticsearch 相差8小时解决办法
logstash和elasticsearch是按照UTC时间的,kibana却是按照正常你所在的时区显示的,是因为kibana中可以配置时区信息. 具体看这个: logstash 的配置文件添加 fi ...
- 第三百六十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中
第三百六十七节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中 前面我们讲到的elasticsearch( ...
- 四十六 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)scrapy写入数据到elasticsearch中
前面我们讲到的elasticsearch(搜索引擎)操作,如:增.删.改.查等操作都是用的elasticsearch的语言命令,就像sql命令一样,当然elasticsearch官方也提供了一个pyt ...
- 《从0到1学习Flink》—— Flink 写入数据到 ElasticSearch
前言 前面 FLink 的文章中我们已经介绍了说 Flink 已经有很多自带的 Connector. 1.<从0到1学习Flink>-- Data Source 介绍 2.<从0到1 ...
- 使用Logstash同步数据至Elasticsearch,Spring Boot中集成Elasticsearch实现搜索
安装logstash.同步数据至ElasticSearch 为什么使用logstash来同步,CSDN上有一篇文章简要的分析了以下几种同步工具的优缺点:https://blog.csdn.net/la ...
- Flink 之 写入数据到 ElasticSearch
前面 FLink 的文章中我们已经介绍了说 Flink 已经有很多自带的 Connector. 1.<从0到1学习Flink>—— Data Source 介绍 2.<从0到1学习F ...
- Mysql删除数据后磁盘空间未释放的解决办法【转】
转自 Mysql删除数据后,磁盘空间未释放的解决办法 - 今日头条(TouTiao.com)http://toutiao.com/a6303087712678412546/?tt_from=mobil ...
- PHP date函数时间相差8个小时解决办法
php中date时间相差8个小时的解决办法 作者: PHP中文网|标签:|2016-7-25 08:46 在Windows上,在默认的PHP配置下,date函数返回的时间值和当地时间总是相差8小时,即 ...
随机推荐
- JavaScript This 的六道坎
鉴于this风骚的运作方式,对this的理解是永不过时的话题,本文试图通过将其大卸六块来钉住这个磨人的妖精. 首先 this is all about context. this说白了就是找大佬,找拥 ...
- [SQLAlchemy] synchronize_session参数
- 安全框架Shiro和SpringSecurity的比较
来自:https://www.cnblogs.com/zoli/p/11236799.html 两个基本的概念 安全实体:系统需要保护的具体对象数据 权限:系统相关的功能操作,例如基本的CRUD Sh ...
- vue 中 弹幕的播放
前言 最近在搞弹幕的问题,小程序上的和vue上的,不想使用插件,于是自己摸索了一下,其实包括 2中弹幕形式 有序和无序的 直接上代码吧 <!-- 弹幕 --> <template v ...
- django之路由层(反向解析)总结
表关系的建立方式 表与表之间的关系就三种 一对一 OneToOne(to='') # to后面可以跟字符串的表名 也可以直接跟变量名表名(该表名必须在上面提前定义出来) 一对多 ForeignKey( ...
- Mybaist 注解 foreach 嵌套循环实现批量插入
第一种写法(#使用占位符推荐): @Insert("<script>" + " insert into ${tb} " +" <fo ...
- Oracle数据库体系结构-Shared Pool
Oracle数据库简单介绍 对象关系型数据库 重点:一致性+性能 一致性优于性能 处理模型:C/S模型 Client:用户和用户进程 Server:服务器进程,实例,数据库本身 ...
- layui的数据表格加上操作
数据表格加上操作. <script type="text/html" id="barDemo"> <a class="layui-b ...
- JavaScript 输出的四种方法
JavaScript 没有任何打印或者输出的函数. ㈠JavaScript 显示数据 ⑴使用 window.alert() 弹出警告框. ⑵使用 document.write() 方法将内容写到 HT ...
- K8S容器探针
容器探针 探针是由 kubelet对容器执行的定期诊断.要执行诊断, kubelet 调用由容器实现的 Handler .有三种类型的处理程序: ExecAction :在容器内执行指定命令 ...