ELK生命周期

news2024/11/19 9:39:06

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中查看索引是否走对应模版:

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Maintaining Performance with Less Data(待补)

文章目录 AbstractIntroductionPrevious WorkIncreasing data useReducing data useVariable data useContribution MethodsDatasetsHardwarePerformance MetricsNetwork Architecture ExperimentationBenchmarkData stepobserve Data IncrementData Cut DiscussionConclusion …

竞赛保研 基于深度学习的动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

java解析json复杂数据的第三种思路

文章目录 一、概述二、数据预览1. 接口json数据2. json转xml数据 三、代码实现1. pom.xml2. 核心代码3. 运行结果 四、源码传送 一、概述 接上篇 java解析json复杂数据的两种思路 我们已经通过解析返回json字符串得到数据,现在改变思路, 按照如下流程获取数据: #mermaid-svg-k…

如何使用 Helm 在 K8s 上集成 Prometheus 和 Grafana|Part 2

在 Part 1 中&#xff0c;我们一起了解了什么是 Prometheus 和 Grafana&#xff0c;以及使用这些工具的前提条件和优势。在本部分&#xff0c;将继续带您学习如何安装 Helm 以及如何使用 Prometheus Helm Charts。 开始使用 Helm 和 Helm Chart ArtifactHub 为 Helm Chart 提供…

cctalk录屏去水印翻录过检测教程

最近在上cctalk的网课时候&#xff0c;遇到了这种情况&#xff0c;无法打开录屏工具&#xff0c;打开了录屏软件会被播放器检测&#xff0c;无法正常播放网课视频&#xff0c;可以用这个工具&#xff0c;就可以随便录了&#xff0c;而且可以去用户名水印。 使用方法也很简单&a…

WPS Office找回丢失的工作文件

WPS office恢复办公文件方法有两种. 1.通过备份中心可以查看近期编辑 office 历史版本进行恢复. 2.缓存备份目录可以查看编辑过的 office 文件的历史版本&#xff0c;新版本 WPS 可以在配置工具-备份清理找到&#xff0c;2019 年旧版本 WPS 可以在新建任意 office 文件-文件-选…

北京大学漏洞报送证书

获取来源&#xff1a;edusrc&#xff08;教育漏洞报告平台&#xff09; url&#xff1a;教育漏洞报告平台(EDUSRC) 兑换价格&#xff1a;30金币 获取条件&#xff1a;北京大学任意中危或以上级别漏洞

为什么你的手机需要更大的内存

可以确定的是&#xff0c;手机已经先于电脑开启了AI计算时代&#xff0c;新发布的手机几乎都集成了AI处理器&#xff0c;那为什么你还需要更大的内存呢&#xff0c;下面我们来探讨下这个问题。 虽然目前新发布的手机并不都集成了AI处理器&#xff0c;但AI处理器已经成为了一种趋…

SpringMVC 的入门

SpringMVC 的入门 1环境搭建 1.1.创建工程 1.2.添加web支持 右键项目选择Add framework support... 2.添加web支持 ​ 3.效果 注意&#xff1a; 不要先添加打包方式将web目录要拖拽到main目录下&#xff0c;并改名为webapp 1.3.pom.xml <?xml version"1.0&q…

LabVIEW在旋转机械故障诊断中的随机共振增强应用

在现代工业自动化领域&#xff0c;准确的故障诊断对于保障机械设备的稳定运行至关重要。传统的故障检测方法往往因噪声干扰而难以捕捉到微弱的故障信号。随着LabVIEW在数据处理和系统集成方面的优势日益凸显&#xff0c;其在旋转机械故障诊断中的应用开始发挥重要作用&#xff…

钉钉审批流程解读

组织机构 部门 部门可以创建下级部门部门可以设置部门主管&#xff0c;可以是多人部门可以默认构建&#xff0c;沟通群可以设置部门信息&#xff0c;比如电话、简介可以设置部门的可见性&#xff0c;比如隐藏本部门&#xff0c;本部门将不会在组织机构、搜索&#xff0c;个人…

聚焦DDoS安全,分享防御DDoS攻击的几大有效方法

当下在混合云、多云环境中&#xff0c;不论任何人、任何部门以及组织都依赖互联网进行运作&#xff0c;分布式拒绝服务&#xff08;DDoS&#xff09;攻击是正在面临的最大威胁之一。当DDoS攻击汹涌而至&#xff0c;缺失详细的保护预案&#xff0c;企业很可能会陷入数小时或数天…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -创建图文投票实现

锋哥原创的uniapp微信小程序投票系统实战&#xff1a; uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

【海康威视】场景中遇到的那些问题

文章目录 问题一&#xff1a;DOM 遮挡问题描述解决 问题二&#xff1a;切换过快时&#xff0c;页面出现白块解决 前言&#xff1a;在使用 海康威视 插件进行做视频接入时&#xff0c;出现的一些奇奇怪怪的问题&#xff0c;今天整理一下吧&#xff01;&#xff01;&#xff01; …

Kubernetes-准入控制

一. 准入控制 Webhook 官方demo 默认准时控制器 NamespaceLifecycleLimitRangerServiceAccountTaintNodesByConditionPriorityDefaultTolerationSecondsDefaultStorageClassStorageObjectInUseProtectionPersistentVolumeClaimResizeRuntimeClassCertificateApprovalCertifica…

若依项目的table列表中对每一个字段增加排序按钮(单体版和前后端分离版)

一、目标&#xff1a;每一个字段都添加上下箭头用来排序 只需要更改前端代码&#xff0c;不需要更改后端代码&#xff0c;后面会讲解原理 二、单体版实现方式&#xff1a; 1.在options中添加sortable:true 2.在需要排序的字段中添加sortable:true 三、前后端分离版 1.el-tab…

RHCE9学习指南 第17章 进程管理

17.1 进程介绍 在Windows下打开任务管理器就可以查看到系统所有进程&#xff0c;如图17-1所示。 图17-1 Windows下的任务管理器 这里列出了系统中所有的进程。不过也可以使用命令行工具来查看进程。每个进程都会有一个process ID&#xff0c;简称为pid。 17.2 查看进程 也可…

使用numpy处理图片——镜像翻转和旋转

在《使用numpy处理图片——基础操作》一文中&#xff0c;我们介绍了如何使用numpy修改图片的透明度。本文我们将介绍镜像翻转和旋转。 镜像翻转 上下翻转 from PIL import Image import numpy as np img Image.open(example.png) data np.array(img)# axis0 is vertical, a…

B端产品经理学习-权限管理

目录 权限管理的原则 常见的权限管理模型 总结 对企业而言&#xff0c;最重要的一个资源就是有价值的专有信息&#xff0c;也就是自己知道&#xff0c;而其他企业不知道的信息&#xff0c;因此&#xff0c;专有信息是企业的重要竞争力&#xff0c;权限管理的价值体现在专有信…

Spring基于注解的AOP控制事务

首先在.xml中开启sprong对注解事务的支持 applicationContext.xml <tx:annotation-driven transaction-manager"transactionManager"/> 然后再Service中加上注解 service Service Transactional(readOnlytrue,propagation Propagation.SUPPORTS) public cl…