ELK生命周期

ELK+kafka

<es生命周期可视化配置界面>

 

一、创建索引模式

根据logstash中的日志规则 匹配对应系统日志

二、创建索引生命周期策略:可以控制生成索引的生命周期

共4个阶段:热阶段——温阶段——冷阶段——删除阶段

阶段1. hot: 索引被频繁写入和查询

阶段2. warm: 索引不再写入,但是仍在查询

阶段3. cold: 索引很久不被更新,同时很少被查询。但现在考虑删除数据还为时过早,仍然有需要这些数据的可能,但是可以接受较慢的查询响应。

阶段4. delete: 索引不再需要,可以删除。

温阶段和冷阶段可选择性增加;

示例:ES生命周期管理 - 知乎

三、创建索引模版:根据模版配置生成对应索引文件

{
  "description": "default logs template installed by x-pack",
  "managed": true
}

四、配置完成索引模版即可,logstash输出数据时,会检测日志文件名是否符合logstash-*,符合则根据配置的模版生成索引文件。
五、测试
1、按照上述流程配置,模拟生成对应索引,查看是否走对应模版;
# 生成索引
PUT logstash-2023.10.11
# 查询索引
GET logstash-2023.10.11
2、若不用可视化配置,也可通过脚本在控制台模拟

1)生成logstash-policy1 生命周期策略

PUT _ilm/policy/logstash-policy1
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "set_priority": {
            "priority": 100
          }
        }
      },
      "delete": {
        "min_age": "10s",
        "actions": {
          "delete": {
            "delete_searchable_snapshot": true
          }
        }
      }
    }
  }
}
  1. policy:这是索引生命周期管理策略的根对象。
  2. phases:这是一个包含不同阶段的对象。在索引生命周期管理策略中,阶段是指按照特定的时间间隔,例如每个小时或每天,执行特定操作的逻辑单元。

在给定的配置中,有两个阶段:

  • hot:这是索引的活跃阶段。在这个阶段,索引处于活动状态并接受新的数据。

    • min_age:这是索引的生命周期开始的时间点。在这里,它设置为"0ms",意味着从创建索引的那一刻开始,该索引就会进入这个阶段。
    • actions:这是在该阶段执行的操作列表。
      • set_priority:这是一个设置索引优先级为100的操作。优先级是一个数值,用于在执行某些操作时确定哪些索引应该首先处理。较高的优先级意味着在处理相同操作的多个索引时,优先级较高的索引将首先被处理。
  • delete:这是删除索引的阶段。

    • min_age:这是索引进入该阶段的时间点。在这里,它设置为"10s",意味着从创建索引开始,10秒后,该索引将进入这个阶段。
    • actions:这是在该阶段执行的操作列表。
      • delete:这是一个删除索引的操作。此外,还有delete_searchable_snapshot属性,设置为true,这意味着在删除索引之前,也会删除与该索引关联的可搜索快照。

简而言之,这个配置定义了一个索引生命周期管理策略,其中新创建的索引首先会被设置为高优先级(100),并在10秒后被删除。

2)生成 logstash_template1 模版

PUT _template/logstash_template1
{
  "index_patterns": [
      "test1-*"
    ],
    "settings": {
      "index": {
        "lifecycle": {
          "name": "logstash-policy1"
        }
      }
    },
    "mappings": {
      "dynamic": "true",
      "dynamic_date_formats": [
        "strict_date_optional_time",
        "yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"
      ],
      "dynamic_templates": [],
      "date_detection": true,
      "numeric_detection": false,
      "properties": {
        "env": {
          "type": "text"
        },
        "index_name": {
          "type": "text"
        },
        "ip": {
          "type": "text"
        },
        "message": {
          "type": "text"
        }
      }
    },
    "aliases": {}
}
  1. PUT _template/logstash_template1:

    • PUT 是一个HTTP方法,用于创建或更新资源。
    • _template/logstash_template1 指定了要创建或更新的资源路径,即索引模板。
  2. {: 开始定义JSON对象。

  3. "index_patterns": ["test1-*"],:

    • 定义了该模板可以应用于哪些索引名称模式。在这里,它适用于所有以test1-开头的索引名称。
  4. "settings": {: 开始定义设置部分,它定义了模板级别的设置。

  5. "index": {: 开始定义索引级别的设置。

  6. "lifecycle": {: 开始定义索引的生命周期策略。

  7. "name": "logstash-policy1"},: 设置索引生命周期策略的名称为logstash-policy1

  8. },: 结束索引生命周期策略的定义。

  9. },: 结束索引级别的设置。

  10. },: 结束设置部分的定义。

  11. "mappings": {: 开始定义索引的映射,即如何存储和检索数据。

  12. "dynamic": "true",: 允许动态映射,即如果字段在文档中不存在,则会自动创建该字段。

  13. "dynamic_date_formats": [: 定义动态日期格式。这些格式告诉Elasticsearch如何解析日期字段。

  14. "strict_date_optional_time", "yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z"],: 定义了两个日期格式,用于解析日期字段。

  15. "dynamic_templates": [],: 定义动态模板,用于处理某些类型的字段。这里为空,表示不定义任何动态模板。

  16. "date_detection": true,: 启用日期检测,使Elasticsearch能够自动检测日期字段。

  17. "numeric_detection": false,: 不启用数字检测,这意味着如果字段是数字,它不会被自动转换为数字类型。

  18. "properties": {: 开始定义字段的属性。

  19. "env": { "type": "text" },: 定义一个名为env的字段,其类型为文本。

  20. "index_name": { "type": "text" },: 定义一个名为index_name的字段,其类型为文本。

  21. "ip": { "type": "text" },: 定义一个名为ip的字段,其类型为文本。

  22. "message": { "type": "text" }: 定义一个名为message的字段,其类型为文本。

  23. },: 结束字段属性的定义。

  24. },: 结束映射部分的定义。

  25. "aliases": {}: 定义索引别名,这里为空,表示没有别名。

  26. }: 结束JSON对象。

3)创建符合模版条件的索引

# 创建索引
PUT test1-000001

# 写入数据
PUT /test1-000001/_doc/1
{  
  "env": "develop",  
  "index_name": "测试",  
  "ip": "127.0.0.1",
  "message": "一个测试",
  "@timestamp" : "2024-01-08T00:03:06.432Z"
}

# 查看索引
GET test1-000001

# 查看索引内容
GET /test1-000001/_mapping?pretty
GET /test1-000001/_search

# 删除索引
DELETE test1-000001

可以在ES中查看索引是否走对应模版:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/304936.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何让ArcGIS Pro启动显示空白页面

刚接触ArcGIS Pro的你是否会觉得在操作上有那么一些不习惯&#xff0c;从一开始软件启动就发现和ArcGIS差距很大&#xff1a;丰富的欢迎页面&#xff0c;加上默认加载的地图让你眼花缭乱&#xff0c;这里教你如何去掉这些繁杂的内容&#xff0c;还你一个干净的启动页面。 跳过…

一文弄懂SpringCloud Stream

目录 SpringCloud StreamSpringCloud Stream相关概念SpringCloud Stream使用 SpringCloud Stream Spring Cloud Stream 是一个构建消息驱动微服务的框架&#xff0c;Spring Cloud Stream 提供了一个抽象层&#xff0c;屏蔽了不同消息中间件之间的差异&#xff0c;使得开发人员…

Python 日志模块 logging 的最佳实践,内容干练简洁

文章目录 1. 引言2. 定义日志类3. 引用日志4. 参考 1. 引言 每次写 python 代码&#xff0c;想找一个日志模块 logging 的最佳实践&#xff0c;都要找一大圈&#xff0c;确不一定可以找到合适的最佳实践。 痛定思痛&#xff0c;我决定下笔记录目前觉得合适的 python 日志的用…

全志R128 SDK架构与目录结构

R128 S2 是全志提供的一款 M33(ARM)C906(RISCV-64)HIFI5(Xtensa) 三核异构 SoC&#xff0c;同时芯片内部 SIP 有 1M SRAM、8M LSPSRAM、8M HSPSRAM 以及 16M NORFLASH。本文档作为 R128 FreeRTOS SDK 开发指南&#xff0c;旨在帮助软件开发工程师、技术支持工程师快速上手&…

基于uniapp封装的card容器 带左右侧两侧标题内容区域

代码 <template><view class"card"><div class"x_flex_header"><div><title v-if"title ! " class"title" :title"title" :num"num"></title></div><div><s…

x-cmd pkg | magick - 开源图像处理工具

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 magick 是由 ImageMagick 提供的一个功能强大且多功能的开源图像处理工具&#xff0c;可以灵活高效地处理图像文件&#xff0c;例如格式转换、图像大小调整、图像裁减、图像拼接、图像色彩校正和图像合成等常见的图像…

云化XR技术于农业领域中的表现

随着科技的不断发展和应用的深入&#xff0c;农业领域也在逐渐引入新技术来优化生产效率和成本、改进管理和监控等。云化XR&#xff08;CloudXR&#xff09;作为一种融合了云计算、虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;等技术的解决方案&am…

【教程】代码混淆详解

【教程】代码混淆详解 本文将对代码混淆进行详细解释&#xff0c;并介绍ProGuard代码混淆器以及Ipa Guard工具的使用方法。首先&#xff0c;我们将了解代码混淆的概念和作用&#xff0c;然后深入讨论ProGuard混淆文件的参数设置以及代码混淆的方法。接着&#xff0c;我们将介绍…

【node link】Node命令中的node link命令的使用,还有CLI全局命令的使用,开发命令行工具必不可少的部分

&#x1f601; 作者简介&#xff1a;一名大四的学生&#xff0c;致力学习前端开发技术 ⭐️个人主页&#xff1a;夜宵饽饽的主页 ❔ 系列专栏&#xff1a;NodeJs &#x1f450;学习格言&#xff1a;成功不是终点&#xff0c;失败也并非末日&#xff0c;最重要的是继续前进的勇气…

【RabbitMQ】3 RabbitMQ使用及交换机

目录 代码示例交换机概述无名交换机绑定&#xff08;binding&#xff09;交换机的类型FanoutDirectTopic 官网地址&#xff1a;https://www.rabbitmq.com/getstarted.htm 代码示例 先来看下如何使用rabbitmq&#xff1a; 使用 Java 编写两个程序&#xff0c;发送单个消息的生…

10年工作经验老程序员推荐的7个开发类工具

做.NET软件工作已经10年了&#xff0c;从程序员做到高级程序员&#xff0c;再到技术主管&#xff0c;技术总监。见证了Visual Studio .NET 2003,Visul Studio 2005, Visual Studio Team System 2008, Visual Studio 2010 Ultimate,Visual Studio 2013一系列近5个版本的变化与亲…

了解vcruntime140.dll文件,有效解决vcruntime140.dll的方法丢失

vcruntime140.dll丢失是一个常见的问题&#xff0c;一旦出现关于vcruntime140.dll丢失的错误弹窗就会导致各种应用程序无法正常启动或运行。本篇文章小编将带大家了解vcruntime140.dll文件&#xff0c;从vcruntime140.dll文件的来源到属性&#xff0c;一一给大家介绍&#xff0…

选择智能酒精壁炉,拥抱环保与未来生活

保护环境一直是我们共同的责任和目标&#xff0c;而在这场争取保护环境的斗争中&#xff0c;选择使用智能酒精壁炉而非传统壁炉成为了一种积极的行动。这不仅仅是对环境负责&#xff0c;更是对我们自身生活质量的关照。 传统壁炉与智能酒精壁炉的对比 传统壁炉常常以木柴、煤炭…

SpringBoot从数据库读取数据数据源配置信息,动态切换数据源

准备多个数据库 首先准备多个数据库&#xff0c;主库smiling-datasource&#xff0c;其它库test1、test2、test3 接下来&#xff0c;我们在主库smiling-datasource中&#xff0c;创建表databasesource&#xff0c;用于存储多数据源相关信息。表结构设计如下 创建好表之后&#…

高德地图vue-amap实现区域掩膜卫星图且背景为灰色

vue-amap高德1.4.4&#xff0c;区域掩膜效果 区域掩膜区域内展示卫星图&#xff0c;区域外背景灰色–>实现原理&#xff0c;先用灰色样式&#xff0c;当区域掩膜实现之后再添加卫星图层 效果如下&#xff1a; 代码如下&#xff1a; <template><div><div c…

使用kubesphere的devops部署SpringCloud项目

devops部署SpringCloud项目 环境说明部署流程创建DevOps工程填写流水线信息创建流水线jenkinsfileDockerfiledeploy.yaml 环境说明 已经安装kubesphere的devops组件安装教程可参考官方文档:https://v3-1.docs.kubesphere.io/zh/docs/pluggable-components/devops/ 部署流程 创…

【服务器数据恢复】Raid5热备盘同步失败导致lvm结构损坏的数据恢复案例

服务器数据恢复环境&#xff1a; 两组由4块磁盘组建的raid5磁盘阵列&#xff0c;两组raid5阵列划分为lun并组成了lvm结构&#xff0c;ext3文件系统。 服务器故障&#xff1a; 一组raid5阵列中的一块硬盘离线&#xff0c;热备盘自动上线并开始同步数据。在热备盘完成同步之前&am…

Python(32):字符串转换成列表或元组,列表转换成字典小例子

1、python 两个列表转换成字典 字符串转换成列表 列表转换成字典 column "ID,aes,sm4,sm4_a,email,phone,ssn,military,passport,intelssn,intelpassport,intelmilitary,intelganghui,inteltaitonei,credit_card_short,credit_card_long,job,sm4_cbc,sm4_a_cbc" …

IDEA的lombok失效导致工程代码编译build失败的问题处理

今天也是奇了怪了&#xff0c;打包工程&#xff0c;编译始终失败&#xff0c;明明代码符号存在的 解决办法就是&#xff1a;-Djps.track.ap.dependenciesfalse

three.js实现信号波效果

three.js实现信号波效果 图例 步骤 创建平面&#xff0c;添加贴图&#xff0c;平移几何体缩放 代码 <template><div class"app"><div ref"canvesRef" class"canvas-wrap"></div></div> </template><…