elasticsearch实现按天翻滚索引
最近在做集中式日志,将应用的日志保存到Elasticsearch中,结合kibana实现集中化日志监控和报警。在设计ES存储的时候。考虑到日志的特殊性,打算采用Daily Indices方式。名称为:log-${application}-YYYY.MM.DD。每天会自动创建一个新的索引,类似于log4j的DailyRollingFileAppender,一来减少活跃索引的大小,二来方便存档和删除。
但是这个不是ES内建的功能,需要应用自己实现,方法有很多种。结合ES提供的功能,最简单的方式是采用如下方式:
- indices templates 为 log-* 的index应用同样的settings、mappings和alias
- 启动 automatic index creation,而且支持黑白名单,这样就不需要每次先创建索引了
具体步骤如下:
A.配置 elasticsearch.yml,开启自动创建索引白名单,但是仍然关闭动态mapper:
action.auto_create_index: +log*,-*
index.mapper.dynamic: false
B.为log-*的索引添加如下index-templates:
PUT /_template/log_template
{"template" : "log-*","mappings" : {"loggingMessage": {"properties": {"postDate": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd"},"createTime": {"type": "date","format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd"},"timestamp": {"type": "long"},"env": {"type": "string","index": "not_analyzed"},"type": {"type": "string","index": "not_analyzed"},"host": {"type": "string","index": "not_analyzed"},"application": {"type": "string","index": "not_analyzed"},"threadName": {"type": "string"},"locationInfo": {"type": "string"},"level": {"type": "string","index": "not_analyzed"},"message": {"type": "string"},"stackTrace": {"type": "string"}}}}
}
注:关闭auto_create_index和dindex.mapper.dynamic对Kibana的影响。根据ES的推荐,建议将auto_create_index和dindex.mapper.dynamic都关闭
action.auto_create_index: +log*,-*
index.mapper.dynamic: false
但是Kibana的Dashboard Schema也是存储在ES索引中,而且是动态创建的。这就会导致Kibana的Dashboard无法保存。简单而粗暴的解决方案就是手动创建kibana的索引和mapping:
PUT /kibana-int/dashboard/_mapping
{"dashboard": {"properties": {"title": {"type": "string"},"user": {"type": "string"},"dashboard": {"type": "string"},"group": {"type": "string"}}}
}
参见:http://blog.arganzheng.me/posts/daily-indices-with-elasticsearch.html
elasticsearch实现按天翻滚索引相关推荐
- Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)
Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录
- 高效管理 Elasticsearch 中基于时间的索引——本质是在利用滚动模式做数据的冷热分离,热索引可以用ssd...
高效管理 Elasticsearch 中基于时间的索引 转自:http://stormluke.me/es-managing-time-based-indices-efficiently/ 用 Ela ...
- elasticsearch手动创建和删除索引
elasticsearch手动创建和删除索引 在ElasticSearch没有索引的情况下,插入文档,默认会自动创建索引和索引映射,从而无法使用ik分词器.因此需要手动创建索引,取消默认创建机制. / ...
- ElasticSearch Java Api(二) -检索索引库
一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", &qu ...
- ElasticSearch-Hadoop:从Hadoop到ElasticSearch的产品视图计数索引和客户顶部搜索查询...
这篇文章涵盖了如何使用ElasticSearch-Hadoop从Hadoop系统读取数据并在ElasticSearch中对其进行索引. 它涵盖的功能是在最近n天中为每个客户的产品浏览量计数和热门搜索查 ...
- Elasticsearch是如何做到快速索引的
最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elastic ...
- elasticsearch 主键字段_ElasticSearch 索引 VS MySQL 索引
来自公众号:crossoverJie链接:https://crossoverjie.top/2020/08/24/elasticsearch/ElasticSearch%20VS%20MySQL/ 前 ...
- Elasticsearch:运用 Java 对索引文档进行搜索
这是这个系列文章中的其中一篇文章: Elasticsearch:运用 Java 创建索引并写入数据 Elasticsearch:运用 Java 更新 Elasticsearch 文档 Elastics ...
- Elasticsearch 7.8.1 创建索引,IK分词器的使用
前置知识来自:图解Elasticsearch中的_source._all.store和index属性_1.02^365=1377.41 (Lucene.ES.ELK开发交流群: 370734940, ...
最新文章
- 如何实现搜索列表_图解:如何理解与实现散列表
- 如何在C#里实现端口监视呢?
- 在Linux终端下调用可执行文件时总要加上符号./的原因
- Vue SSR(Vue2 + Koa2 + Webpack4)配置指南
- DesignPattern_Java:Adapter Pattern
- linux7离线安装docker19,centos7离线安装docker
- 洛谷——P1163 银行贷款
- 在Carmaker中建立自己的交通环境
- 惠普win7驱动_hp打印机驱动如何安装 hp打印机驱动安装方法【步骤详解】
- 人工智能深度学习Caffe框架介绍
- CNNIC发布第39次《中国互联网络发展状况统计报告》
- 二十一. 触发器的创建
- matlab画倾斜的椭球_用matlab绘制椭球体x^2/4+y^2/9+z^2/16=1,并通过改变观察点获得它在各个坐标面上的投影。...
- 螺旋线java_java怎么画布画阿基米螺旋线
- Oracle查询数据表数据很少却很慢
- 地图定位技术揭秘(一)
- 学成在线 nuxt.js出现localhost 发送的响应无效。 ERR_INVALID_HTTP_RESPONSE 寻求大佬解决
- Yelp Dataset(Yelp业务-评论-用户数据集)
- 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
- iphone忘记锁屏密码如何解决