最近在做集中式日志,将应用的日志保存到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实现按天翻滚索引相关推荐

  1. Python读取多个excel文件(删除字段、数据格式转换、dataframe多表合并)并写入ElasticSearch实战(自动创建索引、写入ElasticSearch、探索性数据分析)

    Python读取多个excel文件(删除字段.数据格式转换.dataframe多表合并)并写入ElasticSearch实战(自动创建索引.写入ElasticSearch.探索性数据分析) 目录

  2. 高效管理 Elasticsearch 中基于时间的索引——本质是在利用滚动模式做数据的冷热分离,热索引可以用ssd...

    高效管理 Elasticsearch 中基于时间的索引 转自:http://stormluke.me/es-managing-time-based-indices-efficiently/ 用 Ela ...

  3. elasticsearch手动创建和删除索引

    elasticsearch手动创建和删除索引 在ElasticSearch没有索引的情况下,插入文档,默认会自动创建索引和索引映射,从而无法使用ik分词器.因此需要手动创建索引,取消默认创建机制. / ...

  4. ElasticSearch Java Api(二) -检索索引库

    一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", &qu ...

  5. ElasticSearch-Hadoop:从Hadoop到ElasticSearch的产品视图计数索引和客户顶部搜索查询...

    这篇文章涵盖了如何使用ElasticSearch-Hadoop从Hadoop系统读取数据并在ElasticSearch中对其进行索引. 它涵盖的功能是在最近n天中为每个客户的产品浏览量计数和热门搜索查 ...

  6. Elasticsearch是如何做到快速索引的

    最近在参与一个基于Elasticsearch作为底层数据框架提供大数据量(亿级)的实时统计查询的方案设计工作,花了些时间学习Elasticsearch的基础理论知识,整理了一下,希望能对Elastic ...

  7. elasticsearch 主键字段_ElasticSearch 索引 VS MySQL 索引

    来自公众号:crossoverJie链接:https://crossoverjie.top/2020/08/24/elasticsearch/ElasticSearch%20VS%20MySQL/ 前 ...

  8. Elasticsearch:运用 Java 对索引文档进行搜索

    这是这个系列文章中的其中一篇文章: Elasticsearch:运用 Java 创建索引并写入数据 Elasticsearch:运用 Java 更新 Elasticsearch 文档 Elastics ...

  9. Elasticsearch 7.8.1 创建索引,IK分词器的使用

    前置知识来自:图解Elasticsearch中的_source._all.store和index属性_1.02^365=1377.41 (Lucene.ES.ELK开发交流群: 370734940, ...

最新文章

  1. 如何实现搜索列表_图解:如何理解与实现散列表
  2. 如何在C#里实现端口监视呢?
  3. 在Linux终端下调用可执行文件时总要加上符号./的原因
  4. Vue SSR(Vue2 + Koa2 + Webpack4)配置指南
  5. DesignPattern_Java:Adapter Pattern
  6. linux7离线安装docker19,centos7离线安装docker
  7. 洛谷——P1163 银行贷款
  8. 在Carmaker中建立自己的交通环境
  9. 惠普win7驱动_hp打印机驱动如何安装 hp打印机驱动安装方法【步骤详解】
  10. 人工智能深度学习Caffe框架介绍
  11. CNNIC发布第39次《中国互联网络发展状况统计报告》
  12. 二十一. 触发器的创建
  13. matlab画倾斜的椭球_用matlab绘制椭球体x^2/4+y^2/9+z^2/16=1,并通过改变观察点获得它在各个坐标面上的投影。...
  14. 螺旋线java_java怎么画布画阿基米螺旋线
  15. Oracle查询数据表数据很少却很慢
  16. 地图定位技术揭秘(一)
  17. 学成在线 nuxt.js出现localhost 发送的响应无效。 ERR_INVALID_HTTP_RESPONSE 寻求大佬解决
  18. Yelp Dataset(Yelp业务-评论-用户数据集)
  19. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
  20. iphone忘记锁屏密码如何解决

热门文章

  1. 分享:bbed修改数据文件头推进scn与其他数据文件相同
  2. 在java项目中加载IEDriverServer.exe引用路径
  3. 浅谈jsp的7个动作
  4. ARC在Release与Debug模式中内存释放的坑
  5. 20170608-BOM
  6. webstorm配置ESLint 一直
  7. VC CListCtrl 第一列列宽自适应
  8. 10款无需编程的App DIY开发工具
  9. (C#)如何利用Graphics画出一幅图表
  10. python exec