首页 > 其他分享 >ELK 日志保留三天

ELK 日志保留三天

时间:2023-12-07 14:13:54浏览次数:26  
标签:ELK filebeat 生命周期 策略 三天 索引 policy 日志 模板

如果你希望只保留3天的日志数据,你可以通过使用Elasticsearch的索引生命周期管理(ILM)功能来实现。ILM允许你定义自动化的索引生命周期策略,包括日志数据的保留时间。

以下是一个示例,演示如何配置针对每个项目的3天日志保留策略:

1. 首先,确保你的Elasticsearch版本支持索引生命周期管理(5.x及以上版本)。

2. 创建索引模板:在Kibana Dev Tools或通过Elasticsearch API中,执行以下请求来创建一个索引模板,用于自动应用日志索引的生命周期策略:

```json
PUT _template/log_template
{
"index_patterns": ["filebeat-*"],
"settings": {
"index.lifecycle.name": "log_policy",
"index.lifecycle.rollover_alias": "{project}-logs"
}
}
```

上述请求将创建一个名为`log_template`的索引模板,它适用于所有以`filebeat-`开头的索引。该模板定义了一个名为`log_policy`的生命周期策略,并使用`{project}-logs`作为滚动别名。

3. 创建生命周期策略:执行以下请求来创建生命周期策略,定义3天的保留期:

```json
PUT _ilm/policy/log_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "1d",
"max_size": "50gb"
}
}
},
"delete": {
"min_age": "3d",
"actions": {
"delete": {}
}
}
}
}
}
```

上述请求将创建一个名为`log_policy`的生命周期策略,其中定义了`hot`阶段和`delete`阶段。在`hot`阶段,当索引达到1天(`max_age`)或50GB(`max_size`)时,将进行滚动。在`delete`阶段,索引在过去3天(`min_age`)后将被删除。

4. 应用生命周期策略:执行以下请求来应用生命周期策略到相应的索引别名(`{project}-logs`):

```json
POST {project}-logs/_ilm/retry
```

使用上述请求时,将`{project}`替换为你的项目名称(例如`assistant-logs`、`qfzs-shop-logs`等),以应用相应的生命周期策略。

配置完成后,Elasticsearch会根据生命周期策略自动管理索引,并根据保留期限定滚动和删除日志数据。

请注意,以上示例仅供参考,你可以根据具体需求进行调整,例如调整保留期限、大小限制等。

希望这可以帮助你配置日志数据的保留时间。如有要配置只保留3天的日志数据,你可以使用Elasticsearch的索引生命周期管理(ILM)功能。ILM允许你定义自动化的索引生命周期策略,包括索引的保留期限。

以下是一个示例的索引生命周期策略配置,将日志保留3天并自动删除过期的索引:

1. 创建索引模板

首先,我们需要创建一个索引模板,用于应用索引生命周期策略。在Kibana Dev Tools或使用Elasticsearch API执行以下请求来创建一个索引模板(假设索引名称以"filebeat-"开头):

```json
PUT _template/filebeat-ilm-template
{
"index_patterns": ["filebeat-*"],
"settings": {
"index.lifecycle.name": "filebeat-ilm-policy",
"index.lifecycle.rollover_alias": "filebeat"
}
}
```

在上面的请求中,我们将索引模板与`filebeat-*`匹配样式关联,并为该模板配置了一个名称为`filebeat-ilm-policy`的索引生命周期策略。

2. 创建索引生命周期策略

接下来,我们创建一个索引生命周期策略,设置保留期限为3天。

```json
PUT _ilm/policy/filebeat-ilm-policy
{
"policy": {
"phases": {
"hot": {
"min_age": "0ms",
"actions": {}
},
"delete": {
"min_age": "3d",
"actions": {
"delete": {}
}
}
}
}
}
```

在上面的请求中,我们定义了两个阶段的索引生命周期策略:

- `hot`阶段:此阶段没有最小年龄限制,因此索引立即进入此阶段。我们没有定义任何操作,因为我们希望索引保持活动状态("hot")。

- `delete`阶段:我们设置了一个最小年龄为3天,在3天之后,索引将进入此阶段。我们定义了一个"delete"操作,用于删除满足条件的索引。

3. 关联索引生命周期策略

接下来,我们将索引生命周期策略与索引模板关联起来。执行以下请求:

```json
PUT filebeat/_settings
{
"index": {
"lifecycle": {
"name": "filebeat-ilm-policy",
"rollover_alias": "filebeat"
}
}
}
```

以上请求将索引`filebeat`与之前定义的索引生命周期策略和别名关联起来。这意味着新创建的索引将自动应用索引生命周期策略,并使用`filebeat`作为rollover别名。

现在,Elasticsearch会根据索引生命周期策略管理每个项目的索引,并在满足保留期限(3天)后自动删除已过期的索引。

请注意,如果你已经在配置中手动创建了要配置Elasticsearch中索引的数据保留时间,你可以使用索引生命周期管理(ILM)功能。下面是一个示例,展示如何配置索引生命周期来保留最近3天的日志数据:

1. 首先,你需要创建一个索引模板,定义索引的设置和映射。使用以下命令创建一个索引模板:

```json
PUT _index_template/filebeat_template
{
"index_patterns": ["filebeat-*"],
"template": {
"settings": {
"index.lifecycle.name": "3days",
"index.lifecycle.rollover_alias": "filebeat"
},
"mappings": {
"properties": {
"timestamp": {
"type": "date"
}
}
}
},
"version": 1
}
```

在上面的示例中,我们创建了一个名为`filebeat_template`的索引模板,并将其应用于所有以"filebeat-"开头的索引。我们设置了一个生命周期名称为"3days",并将rollover别名设置为"filebeat"。

2. 接下来,你需要创建一个索引生命周期策略。使用以下命令创建一个策略:

```json
PUT _ilm/policy/3days_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "1d"
}
}
},
"delete": {
"min_age": "3d",
"actions": {
"delete": {}
}
}
}
}
}
```

在上面的示例中,我们创建了一个名为"3days_policy"的策略。在"hot"阶段,我们配置了一个"max_age"为1天的rollover操作。在"delete"阶段,我们配置了一个"min_age"为3天的删除操作。

3. 最后,将策略应用于索引模板。使用以下命令将策略应用于模板:

```json
PUT _index_template/filebeat_template/_meta
{
"index.lifecycle.name": "3days_policy"
}
```

这将为模板配置索引生命周期策略。

通过上述配置,新创建的索引将在1天后进行rollover,并根据策略在3天后自动删除。

请注意,在配置完成后,只有新创建的索引才会受到索引生命周期策略的影响。对于现有的索引,你需要手动将其重新索引到满足新策略的索引别名。

希望这个示例可以帮助你配置索引生命周期管理来保留最近3天的日志数据。如有任何进一步的问题,请随时提问。

 

 

 

 


为了保留最近三天的数据并删除超过三天的数据,你可以调整索引生命周期策略的配置。以下是一个示例配置,实现这个需求:

1. 创建索引模板:
首先,你需要创建一个索引模板,定义索引的设置和映射,并与索引生命周期策略关联。使用以下命令创建一个索引模板:

```json
PUT _index_template/filebeat_template
{
"index_patterns": ["filebeat-*"],
"template": {
"settings": {
"index.lifecycle.name": "3days",
"index.lifecycle.rollover_alias": "filebeat"
},
"mappings": {
"properties": {
"timestamp": {
"type": "date"
}
}
}
},
"version": 1
}
```

在上述示例中,我们创建了一个名为`filebeat_template`的索引模板,并将其应用于以"filebeat-"开头的所有索引。我们设置了一个生命周期名称为"3days",并将rollover别名设置为"filebeat"。

2. 创建索引生命周期策略:
接下来,你需要创建一个索引生命周期策略,具体定义在3天之后删除索引的操作。使用以下命令创建策略:

```json
PUT _ilm/policy/3days_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_age": "1d"
}
}
},
"delete": {
"min_age": "3d",
"actions": {
"delete": {}
}
}
}
}
}
```

在上述示例中,我们创建了一个名为"3days_policy"的策略。在"hot"阶段,我们配置了一个"max_age"为1天的rollover操作。在"delete"阶段,我们配置了一个"min_age"为3天的删除操作,意味着超过3天的索引将被删除。

3. 将策略应用于索引模板:
最后,将策略应用于索引模板。使用以下命令来应用策略:

```json
PUT _index_template/filebeat_template/_meta
{
"index.lifecycle.name": "3days_policy"
}
```

这将为模板配置索引生命周期策略。

通过上述配置,新创建的索引将在1天后进行rollover,并根据策略在3天后自动删除。这样,只有最近三天的数据会被保留下来。

需要注意的是,对于现有的索引,这个策略不会自动应用。你需要手动将这些索引重新索引到满足新策略的索引别名,或者使用Curator等工具进行批量删除操作。

希望这个示例可以帮助你配置索引生命周期管理,实现保留最近三天数据并删除超过三天的索引。如果有进一步的问题,请随时提问。

标签:ELK,filebeat,生命周期,策略,三天,索引,policy,日志,模板
From: https://www.cnblogs.com/JIKes/p/17881855.html

相关文章

  • nginx中增加自定义的header,并且在nginx的日志中显示这个header的具体的值
    1、需求说明有的时候,为了进行某些特性的调试,需要增加自定义的header。 那么,要去测试这个header是否真的加成功了,后面某些的设置,需要使用这个值。 怎么办呢? 使用日志的方式,看nginx到底,有没有获得这个值。 2、配置过程 2.1谷歌浏览器使用插件,增加header 插件......
  • P6入门:项目初始化4-项目详情之预算日志及汇总Budget
    前言使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等,在接下来的博文中,我将结合官方帮助介绍这些基本设置,希望给对P6感兴趣的人带来帮助。涉及P6 项目详情设置包括:G......
  • .NET 6 (C#) Microsoft.Extensions.Logging 日志框架的使用
    .NET6中的日志框架主要是基于Microsoft.Extensions.Logging,这是一个通用的、可扩展的日志记录接口,允许使用不同的日志提供程序(例如控制台、文件、第三方库等)进行日志记录。本文主要介绍.NET6(C#)中Microsoft.Extensions.Logging日志框架的使用,以及相关的示例代码。1......
  • .NET 6 (C#) Serilog 日志框架的使用
    ​Serilog是.NET6中常用的日志框架之一,用于记录和管理应用程序的日志信息。它具有灵活的配置选项和丰富的扩展功能,使开发人员能够轻松地集成日志记录功能到他们的应用程序中。Serilog是一个用于.NET应用程序的诊断日志库。它易于设置,具有清晰的API,并且可以在所有最新的.NET平台上......
  • kibana上发现很多ERROR日志换行情况
    我们在部署elk完后,在kibana上发现很多ERROR日志换行情况,结果会在kibana上看到多行的error日志我们常出现的ERROR日志如下[INFO][2020-03-2222:37:05,064][org.apache.commons.httpclient.HttpMethodDirector]Retryingrequestjava.net.ConnectException:拒绝连接(Connection......
  • Java Spring Boot logback 日志配置与使用总结
    在项目开发中,日志是必不可少的,没有日志,怎么排查bug,而且日志也有助于我们看到相关的输入输出,总的来说,日志是日常项目开发必须要有的。今天我们学习SpringBoot中集成logback日志,这里主要会涉及到日志的配置和简单实现,更多的细节请移步官方文档,自己品读,此文档有助于初涉Sprin......
  • Abp vNext 禁用数据库日志
    AbpvNext禁用数据库日志使用AbpvNext6.0在abp创建的数据库里有四张表是跟日志有关的AbpAuditLogs:审计日志,记录网络请求的AbpSecurityLogs:安全日志,记录登录日志的OpenIddictAuthorizations:OpenIddict记录登录操作的OpenIddictTokens:OpenIddict记录token的,access_token和......
  • python第三天
    引入随机数:random1)random.randit(1,10)随机生成1.10之间的整数2)random.uniform(1,10)随机生成1.10之间的浮点数3)random.getstate(),获取fandom的种子改进的小游戏,print('---------------------------------来玩一个游戏吧----------------------------')importrandomanswe......
  • .NET 6 使用Nlog 记录日志到本地并写入SQLserver数据库
    1.安装Nlog对应Nuget包版本NLog:5.0.4NLog.Database:5.0.4NLog.Web.AspNetCore:5.1.4Microsoft.Data.SqlClient:5.0.0(写入SQLServer数据库用的)2.建表SQLCREATETABLE[dbo].[NLog]( [Id][bigint]IDENTITY(1,1)NOTNULL, [Application][nvarchar](50)NOTNULL, [Lo......
  • 定时清理docker容器日志
    场景:docker容器启用一段时间之后日志会逐渐累积,越来越臃肿,可能高达几十个G,我们需要定期自动清理此容器日志1.创建文件夹,创建文件写入命令,更改可执行权限:mkdir-p/opt/docker-shcat>/opt/docker-sh/clean_docker_log.sh<<EOF#!/bin/shecho"========startclean......