首页 > 解决方案 > 我正在寻找创建每日指数的流程。可以每天生成日志报告

问题描述

我正在使用 Kibana 6.4.3,我想保留几个月的日志,但直到我设置了每日索引。需要一个过程来设置每日指数的自动生成。

标签: elasticsearchlogstashelastic-stackkibana-4

解决方案


您需要实施Rollover Index

我建议您参考链接以了解如何完成。基本上你可以简单地执行下面的查询来实现和测试这个Rollover Index特性

第 1 步:创建初始索引

PUT /logs-000001
{
  "aliases": {
    "logs_write": {}
  }
}

第 2 步:执行 Rollover API

POST /logs_write/_rollover
{
  "conditions" : {
    "max_age": "1d",
    "max_docs": 1000,
    "max_size": "5gb"
  },
  "settings": {
    "index.number_of_shards": 2
  }
}

会发生什么是弹性搜索会logs-000002在一天后继续创建索引等等。

API 接受一个别名和一个条件列表。别名必须仅指向单个索引。如果索引满足指定条件,则创建一个新索引并将别名切换为指向新索引。

dry_run您实际上可以使用如下查询所示测试翻转。

试运行查询

POST /logs_write/_rollover?dry_run
{
  "conditions" : {
    "max_age": "1d",
    "max_docs": 1000,
    "max_size": "5gb"
  }
}

当您运行此测试查询时,请注意以下格式的响应。它将显示如果在一天后发生翻转会发生什么。请注意,当您执行时dry run,它不会创建logs-000002.

试运行响应

{
  "acknowledged": false,
  "shards_acknowledged": false,
  "old_index": "logs-000001",
  "new_index": "logs-000002",
  "rolled_over": false,
  "dry_run": true,
  "conditions": {
    "[max_age: 1d]": false,
    "[max_docs: 1000]": false,
    "[max_size: 5gb]": false
  }
}

重要的提示:

翻转不会自动发生。它必须使用 crontab 或此类调度工具手动完成,并不断检查以编程方式执行翻转 API 的条件。

有关此的更多信息,请参阅此链接

希望能帮助到你!


推荐阅读