Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

· 更多精彩内容,请下载阅读全本《Elastic Stack实战手册》

· 加入创作人行列,一起交流碰撞,参与技术圈年度盛事吧

创作人:高冬冬
审稿人:刘帅

Monitoring

Monitoring 就是跟踪和监控 Elastic Stack 各个组件的实时运行状况和性能指标;当监控一个集群时,不仅要采集 Elasticsearch 节点的指标,而且要采集集群相关的 Logstash 节点,Kibana 实例以及各种 Beats 节点的性能指标甚至还要通过 Filebeat 采集集群日志,存储在 Elasticsearch 集群中,以便可以通过 Kibana 可视化,实时监控各种组件和节点的实时运行状态。

两种监控方案

  • 组件自身监控
  • Metricbeat 监控

组件自身监控

开启快捷简单,无需额外组件,收集采集指标会占用组件自身资源;

Monitoring 及 Central Management - Elastic Stack 实战手册

默认情况下,每一个 Elastic Stack 组件自身都包含一个内置的 agent 负责采集数据

Monitoring 及 Central Management - Elastic Stack 实战手册

配置方式

Elasticsearch

在 Elasticsearch 集群中监控采集配置默认关闭的 xpack.monitoring.collection.enabled : false

  1. 通过 Kibana 开启
  • 打开 Kibana
  • 进入 Management-->Stack Monitoring
  • 点击 Turn on monitoring

Monitoring 及 Central Management - Elastic Stack 实战手册

  1. 通过 API 开启
GET _cluster/settings
PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.collection.enabled": true
  }
}
  1. Elasticsearch 的其他配置

在节点的配置文件 elasticsearch.yml 更多配置

xpack.monitoring.collection.indices 指定要监控的索引名,默认是监控所有的,指定 The indices to collect data from. Defaults to all indices, but can be a comma-separated list.
xpack.monitoring.collection.interval 数据采集频率,默认是 10s How often data samples are collected.Defaults to 10s
xpack.monitoring.exporters 指标数据的存储位置 ,默认存储在自身集群,可以通过此配置指定远端集群。 Configures where the agent stores monitoringdata. By default, the agent uses a localexporter that indexes monitoring data on thecluster where it is installed.
参考文献:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/monitoring-settings.html

Kibana

在配置文件 kibana.yml 开启

#是否开启Kibana NodeJS server指标采集
monitoring.kibana.collection.enabled: true
#采集频率(ms),默认10s
monitoring.kibana.collection.interval: 10000
#指定监控指标存储远程ES集群
monitoring.ui.elasticsearch.hosts: ["https://es1:9200", "https://es2:9200"]
#远程ES集群的账号和密码
monitoring.ui.elasticsearch.username: elasticsearch
monitoring.ui.elasticsearch.password: changeme
#控制monitoring后端的运行和kibana运行状态的监控
monitoring.enabled: true
#在kibana中隐藏Stack Monitoring功能。
monitoring.ui.enabled: true

参考文档:https://www.elastic.co/guide/en/kibana/7.10/monitoring-settings-kb.html#monitoring-general-settings

Logstash

在配置文件 logstash.yml 开启

# X-Pack Monitoring
# https://www.elastic.co/guide/en/logstash/current/monitoring-logstash.html
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.hosts: ["https://es1:9200", "https://es2:9200"]
xpack.monitoring.elasticsearch.username: elasticsearch
xpack.monitoring.elasticsearch.password: password

Beats:Filebeat、Metricbeat

在配置文件 filebeat.yml 或 metricbeat.yml 中开启

monitoring.enabled: true
#monitoring.cluster_uuid:
monitoring.elasticsearch.hosts: ["https://es1:9200"]
monitoring.elasticsearch.username: filebeat_system
monitoring.elasticsearch.password: password

APM

在配置文件 apm-server.yml 中开启

monitoring.enabled: true
monitoring.elasticsearch.hosts: ["https://es1:9200"]
monitoring.elasticsearch.username: filebeat_system
monitoring.elasticsearch.password: password

从某种程度上讲 AMP Server 其实就是另外一种 Beat。对于它的监控和 Beats 完全是一样的。

Metricbeat 监控

使用 Metricbeat 采集 Elastic Stack 监控指标,需单独部署监控 Metricbeat 及单独的监控集群。开启对应的 metricbeat modules,避免由于采集数据对组件自身带来压力,而影响组件运行性能。

监控方案

可用来监控 Elastic Stack 的所有类型组件

  • 未来版本中默认的监控方案
  • 采集性能比内置采集更好

Monitoring 及 Central Management - Elastic Stack 实战手册

配置方式

注意在 6.5 版本以及以后,才可以通过 Metricbeat 采集 Elasticsearch 监控指标,并可指定专用的监控集群。

Monitoring 及 Central Management - Elastic Stack 实战手册

  1. 开启监控数据采集

在生产集群中 xpack.monitoring.collection.enabled 默认为 false,可以通过以下 API 进行开启和关闭。针对 Metricbeat 监控,这个设置应为 false。

GET _cluster/settings

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.collection.enabled": false
  }
  "transient" : { }
}
  1. 在生产集群的每个 node 上安装 Metricbeat, 保证每个 node 都安装
  2. 在每个 Elasticsearch node 的 Metricbeat 上开启 Elasticsearch X-Pack module
metricbeat modules enable elasticsearch-xpack
  1. 在每个 Elasticsearch node 上配置 Elasticsearch X-Pack module
- module: elasticsearch
    xpack.enabled: true
    period: 10s
    hosts: ["http://localhost:9200"]
  1. 指定监控数据存储的集群

在 Metricbeat 的配置文件(metricbeat.yml)中配置 Elasticsearch output 信息。

output.elasticsearch:
  hosts: ["http://es-mon-1:9200", "http://es-mon-2:9200"] 
  #protocol: "https"
  #username: "elastic"
  #password: "changeme"
  1. 在每个 Elasticsearch node 节点启动 Metricbeat
nohup ./metricbeat -c metricbeat.yml >/dev/null 2>&1 & 
  1. 关闭默认的 Elasticsearch 监控数据采集

在生产集群中配置 xpack.monitoring.elasticsearch.collection.enabled 为 false

通过以下 API 进行配置

PUT _cluster/settings
{
  "persistent": {
    "xpack.monitoring.elasticsearch.collection.enabled": false
  }
}
  1. 在监控集群的 Kibana 中查看监控页面

参考文档:https://www.elastic.co/guide/en/elasticsearch/reference/7.10/monitoring-overview.html

专用的监控集群

在生产环境推荐部署专用的监控集群来实现集群的指责分离

  • 减少被监控的业务集群的负载和存储压力。
  • 防止被监控集群的故障影响监控功能。
  • 实现职责隔离,比如监控集群和业务集群可配置不同的安全策略,保障级别等。

Monitoring 及 Central Management - Elastic Stack 实战手册

统一监控UI

Monitoring 概览

Monitoring 及 Central Management - Elastic Stack 实战手册

概览页面展示了所有正在被监控的 Elastic Stack 组件,包括但不限于 Elasticseach,Kibana,Beats,Logstash,APM 等等。

Elasticsearch监控

Monitoring 及 Central Management - Elastic Stack 实战手册

概览页面主要展示了四块内容:

  1. 集群状态

包括集群状态,节点总数,索引总数,JVM 使用状态,分片总数,未分配的分片数,索引文档总数,存储的数据总大小。

  1. 集群吞吐量

查询 TPS,查询耗时,索引 TPS 以及索引耗时等时序图。

  1. 集群日志列表。
  2. 活动分片迁移列表。

采集的 Elasticsearch 的监控数据包括:Cluster Stats,Index Stats, Index Recovery, Shards,Jobs, Node Stats 等等。

节点监控

Monitoring 及 Central Management - Elastic Stack 实战手册

主要包含节点列表,同时可以实时查看节点的告警数,在线状态,分片数, 使用率,节点负载,JVM 使用情况以及当前节点空余的存储空间。

点击节点名可以下钻到更详细全面的节点监控以及时序图。

索引监控

Monitoring 及 Central Management - Elastic Stack 实战手册

主要包含索引列表,可以实时查看到当前索引的状态,文档数,索引大小,索引 TPS,搜索 TPS 以及未分配的分片数。

点击索引名可下钻到更详细全面的索引监控以及时序图。

Kibana 监控

Monitoring 及 Central Management - Elastic Stack 实战手册

在此页面中可以监控到访问 Kibana 的 client request 次数和 client 请求平均耗时的时序图

点击 Instances 还可以监控到所有 Kibana 实例列表以及当前运行状况。

Beats 监控

Monitoring 及 Central Management - Elastic Stack 实战手册

统计 Beats 的告警数,Beats 总数,Metricbeat 数,总共生产的事件数和发送的事件字节数,

最近一天活跃的 Beats,Beats 类型的 Top5 以及 Beats 版本的 Top5

成功事件数/秒,失败事件数/秒,平均的吞吐量 bytes/second,以及输出失败数/秒

Beats 实例监控

Monitoring 及 Central Management - Elastic Stack 实战手册

在实例下可以看到该集群监控到所有 Beats 列表和其运行状态

点击实例名可下钻到更详细全面的 Beats 实例监控以及时序图。

Central Management

开发工具,包括一些可以方便用户和集群中数据进行交互探索分析的工具

Console终端

使用 Elasticsearch 的 REST API 进行交互,包含发送请求和查看 API 文档

Monitoring 及 Central Management - Elastic Stack 实战手册

如上图所示,在 console 里面执行类似 CRUL 的命令,点击语句后面的➡️执行,即可在右侧栏中实时查看结果;

  1. 支持 GET,PUT,POST,DELETE 四种命令;
  2. 支持包含写入,搜索,集群,节点和索引状态等等 Elasticsearch 相关的所有 API;
  3. 输入命令行时,支持自动补全;
  4. 支持自动格式化(Auto indent);
  5. 支持查看 API 文档(Open documention);
  6. 支持查看执行命令历史记录(点击History);
  7. 设置 console 配置

Monitoring 及 Central Management - Elastic Stack 实战手册

  1. 关闭 console:

在 Kibana 的配置文件 kibana.yml 配置如下

console.enabled: false

然后重启 Kibana 即可

查询分析器

检查并分析您的搜索查询。

Elasticsearch 具有功能强大的 Profile API,可用于检查和分析您的搜索查询。响应返回一个较大的JSON Blob,可能很难手动对其进行分析。

Search Profiler 工具可以将此 JSON 输出转换为易于浏览的可视化文件,从而使您可以更快地诊断和调试效果不佳的查询。

Query Profile

Monitoring 及 Central Management - Elastic Stack 实战手册

  • *BooleanQuery组件和 query 中 bool 相对应。
  • 第二个BooleanQuery对应于条件查询,该条件在内部转换为一个Boolean 的 should 子句,它有两个子查询,分别与terms query中的 “sue” 和 “sally” 相对应。
  • TermQuery标有 “name:fred” 这是对应于 match: fred 在查询中。

如图你可以看到每一行的 Self time 和 Total time 都是不一样的,Self time 表示查询组件执行所需的时间。Total time 是查询组件及其所有子组件执行所花费的时间。因此,诸如 Boolean queries 之类的查询的总时间通常比 Self time 长。

Aggregation

Monitoring 及 Central Management - Elastic Stack 实战手册

点击 Aggregation Profile 去查看聚合的性能统计信息,

选择 shard 查看聚合详细信息和时序分布。

Grok调试器

在数据处理管道中使用 grok 模式之前,请先对其进行构建和调试。

您可以在 Kibana Grok 调试器中构建和调试 grok 模式, 然后再在数据处理管道中使用它们。Grok 是一种模式匹配语法,可用于解析任意文本并对其进行结构化。Grok 非常适合解析 syslog,apache 和其他 Web 服务器日志,mysql 日志,以及具备可读性的任何日志格式。

使用实例:

Monitoring 及 Central Management - Elastic Stack 实战手册

自定义模式:

如果默认的grok模式字典不包含你所需的模式,则可以使用Grok Debugger定义,测试和调试自定义模式。

Monitoring 及 Central Management - Elastic Stack 实战手册

Painless 实验室

实时实验和调试 Painless 脚本(beta功能)

此处不做过多的介绍。

采集管理

Logstash Pipelines管理

Logstash Pipelines 管理就是集中管理配置 Logstash pipeline,使其事件处理和结果调试可视化。

准备步骤如下:

  • 安装对应版本的 Logstash(和 Elasticsearch 版本保持一致)
  • 开启 Logstash 监控和集中管理
  • 创建 Logstash Pipeline
  • 验证 Pipelines 集中管理

安装 Logstash

#下载安装包
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.0-linux-x86_64.tar.gz
#解压到指定目录下
tar -zxvf logstash-7.10.0-linux-x86_64.tar.gz -C /opt/
#启动安装包
cd /opt/logstash-7.10.0
./bin/logstash
第一次启动会启动失败,这个不用担心,因为没有对logstash进行任何配置。

开启监控和集中管理

开启 Logstash 监控的前提,请确保在 Elasticsearch 集群中启动xpack.monitoring.collection.enabled : true

通过 Kibana 启动方式如下:

Monitoring 及 Central Management - Elastic Stack 实战手册

设置 Logstash 监控

在配置文件 logstash.yml 添加如下配置

xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch.username: "elastic"
xpack.monitoring.elasticsearch.password: "esTeam123456"
xpack.monitoring.elasticsearch.hosts: ["http://es-cn-6ja24dt4r007brz85.public.elasticsearch.aliyuncs.com:9200"]
xpack.monitoring.collection.interval: 10s
xpack.monitoring.collection.pipeline.details.enabled: true

设置 Logstash 集中管理

创建用于管理 Logstash 的用户和角色

POST _xpack/security/role/logstash_writer
{
  "cluster": ["manage_index_templates", "monitor", "manage_ilm"], 
  "indices": [
    {
      "names": [ "test1_*", ".monitoring-logstash-*" ], 
      "privileges": ["write","create","create_index","manage","manage_ilm"]  
    }
  ]
}

POST _xpack/security/user/logstash_internal
{
  "password" : "123456",
  "roles" : [ "logstash_writer", "logstash_admin", "logstash_system"],
  "full_name" : "Internal Logstash User"
}

创建一个 logstash_writer 角色,并给其分配相应 cluster 和 indices 的权限

在配置文件 logstash.yml 添加如下配置

xpack.management.enabled: true
xpack.management.pipeline.id: ["Team7_test"]
xpack.management.elasticsearch.username: "logstash_internal"
xpack.management.elasticsearch.password: "123456"
xpack.management.elasticsearch.hosts: ["http://es-cn-6ja24dt4r007brz85.public.elasticsearch.aliyuncs.com:9200"]
xpack.management.logstash.poll_interval: 1s

注意:X-pack.management.pipeline.id 中支持配置多个 pipeline.id,请保证此处填入的和Kibana 创建发布的保持一致。

启动 Logstash

[root@master01 logstash-7.10.0]# ./bin/logstash --debug
Using JAVA_HOME defined java: /opt/jdk1.8.0_251
WARNING, using JAVA_HOME while Logstash distribution comes with a bundled JDK

在 Kibana monitor 查看 Logstash 监控

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

依次可以查看 Logstash 的概览,Logstash节点和 Logstash pipeline监控。

创建 Logstash Pipeline

在 Kibana 上操作,依次点击 Mangement-> Stack Management ->Logstash Pipelines->Create pipeline,输入配置参数后,点击 Create and Deploy 即可创建和发布成功。

Monitoring 及 Central Management - Elastic Stack 实战手册

验证 Pipelines 集中管理

首先往 /var/log/test1 文件中写入多条日志

[root@master01 ~]# echo "test1" >> /var/log/test1             
[root@master01 ~]# echo "test2" >> /var/log/test1
[root@master01 ~]# echo "test3" >> /var/log/test1 
[root@master01 ~]# echo "test4" >> /var/log/test1 

在 Elasticsearch 中可查询到刚刚 test1_20210501 写入的 4 条日志

也可以在 Logstash 的监控中,看到在 15:36-15:38 之间采集到数据

Monitoring 及 Central Management - Elastic Stack 实战手册

使用总结

该功能属于 X-pack 的高级特性,基础版本的 License 不能体验;

使用该功能时无需在 Logstash 节点配置任何 pipeline;

创建和发布的 pipeline 会自动下发至该集群管理的所有 Logstash 实例,不能进行单独管控。

Beats 集中管理

功能概述

在 6.5 的版本中,Elastic 官方在 Kibana 中引入了一个新功能:Beats 的集中管理。主要用来解决

Beats 的集中配置管理,通过此功能,你无需重复的登录每台机器上调整配置,这样可以大大减轻配置管理相关的工作量。

Beats 的集中管理功能很简单,包含 3 个步骤:

  1. 注册 Beats:

注册 Beats 就是通过 Beats enroll 命令将 Beats 注册集群中,目前只支持两种 beats(filebeats和metricbeat),注册成功以后才能被管控。

  1. 配置标签

使用一种使用配置标签的机制来对相关配置进行分组,详细的相关配置在配置标签中进行添加

目前支持 4 种类型。Filebeat input,Filebeat module, Metricbeat module 和 output。

最后在 Beats 列表中绑定配置标签,即可自动批量下发配置标签中的相关配置,如下图所示。

Monitoring 及 Central Management - Elastic Stack 实战手册

验证方案

安装 Metricbeat

 wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.10.0-linux-x86_64.tar.gz
 tar -zxvf metricbeat-7.10.0-linux-x86_64.tar.gz 
cd /opt/metricbeat-7.10.0-linux-x86_64

创建 Enroll Beats

在 Kibana 上操作,依次点击 Mangement-> Stack Management ->Beats Central Management->Enroll Beats

Monitoring 及 Central Management - Elastic Stack 实战手册

选择 Beat type=Metricbeat 和 Platform=DEB/RPM

即可得到 Metricbeat Enroll 命令

Monitoring 及 Central Management - Elastic Stack 实战手册

在 Metricbeat 安装节点执行:

[root@master01 metricbeat-7.10.0-linux-x86_64]# ./metricbeat enroll https://es-cn-6ja24dt4r007brz85.kibana.elasticsearch.aliyuncs.com:5601 eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjcmVhdGVkIjoiMjAyMS0wNS0wMVQxMDowNzo0OC4xNzZaIiwiZXhwaXJlcyI6IjIwMjEtMDUtMDFUMTA6MTc6NDguMTc2WiIsInJhbmRvbUhhc2giOiJYJO-_ve-_vSczMu-_vSjvv71cdTAwMDfvv73vv70qJVx1MDAxZe-_vWU-XHUwMDAz77-9O13vv73vv73vv70iLCJpYXQiOjE2MTk4NjM2Njh9.p3q-hw8r5I-34ICuVcRHQGqT7c6LoJ6VAZBcyIN-AfA    
This will replace your current settings. Do you want to continue? [Y/n]:y
Saving a copy of current settings to metricbeat.yml.2021-05-01T18-12-22.bak
Enrolled and ready to retrieve settings from Kibana
[root@master01 metricbeat-7.10.0-linux-x86_64]# 

即可在显示在 Kibana 注册成功

Monitoring 及 Central Management - Elastic Stack 实战手册

点击 Done 即可

启动 metricbeat

./metricbeat -e -c metricbeat.yml

创建 Configuration tags

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

创建一个 Team7 的 Configuration tags,并在其中配置了两个 Configuration blocks,

  • 输出到 Elasticsearch
  • 开启 system 的 metricbeat modules

应用配置到 Beats

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

验证数据

Metricbeat 索引的文档数持续增加

GET metricbeat-7.10.0-2021.05.01/_count
{
  "count" : 405,
  "_shards" : {
    "total" : 3,
    "successful" : 3,
    "skipped" : 0,
    "failed" : 0
  }
}

在 Kibana 的 discover 页面分析 Metricbeat 索引数据

Monitoring 及 Central Management - Elastic Stack 实战手册

数据管理

索引管理

Kibana 的索引管理菜单中,主要管理着和索引相关的四类数据

Monitoring 及 Central Management - Elastic Stack 实战手册

索引列表

Monitoring 及 Central Management - Elastic Stack 实战手册

管理着集群中的所有 indices,包含 Rollup 索引(通过 Rollup 聚合索引)和隐藏索引(名字以.开头的索引)

同时还可以根据是否被 ILM 管理(Managed 和 Unmanaged)和处于 ILM 管理阶段(Hot,warm,Frozen,Cold 和 Delete)进行查询和过滤

点击索引名可以查看索引的详细

Monitoring 及 Central Management - Elastic Stack 实战手册

在索引详情中,可以查看索引概览信息,settings,mappings,当前索引状态数据以及对该索引的 settings 进行修改。

同时你可以对该索引进行关闭,segment 强制合并,Refresh,清空索引缓存,Flush,冻结,删除和解除 ILM 管理等操作

索引模板管理

在创建索引时,根据索引名匹配符合条件的索引自动设置索引的 settings,mappings 和 aliases

Monitoring 及 Central Management - Elastic Stack 实战手册

在此处创建索引模板,支持创建两种方式创建索引模板

新版模板创建流程:

设置模板总览信息

Monitoring 及 Central Management - Elastic Stack 实战手册

选择 templates 组件,包括 settings,mappings,aliases

Monitoring 及 Central Management - Elastic Stack 实战手册

自定义修改 index settings

Monitoring 及 Central Management - Elastic Stack 实战手册

自定义 mappings

Monitoring 及 Central Management - Elastic Stack 实战手册

添加 Aliases 信息

Monitoring 及 Central Management - Elastic Stack 实战手册

检查设置好的 template 信息

Monitoring 及 Central Management - Elastic Stack 实战手册

点击创建按钮即可完成模板创建

旧版模板创建流程:

Monitoring 及 Central Management - Elastic Stack 实战手册

和新版本的创建流程基本相同,少了可选择已有 template 组件这一步。

模板组件管理

使用组件模板可以在多个索引模板中重用设置,映射和别名配置

Monitoring 及 Central Management - Elastic Stack 实战手册

创建索引组件模板的流程如下:

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

创建成功的效果:

Monitoring 及 Central Management - Elastic Stack 实战手册

创建成功后,该索引组件模板,就可以在创建索引模板时进行复用。

索引生命周期

ElasticSearch 在 6.7 版本推出的索引生命周期管理(index lifecycle management,简称ILM),生命周期把索引分为四个阶段,Hot,Warm,Cold,和 Delete。这也是 Elastic 目前官方比较推荐的索引管理方法。

hot 索引可写入,也可查询,也就是我们通常说的热数据。
warm 索引通常不会被写入,但仍然会被查询。
cold 索引不再被更新,并且很少被查询。这些信息仍然需要可搜索,但如果查询速度较慢也没关系。
delete 索引不再需要,可以安全地删除。

创建一个 Index Lifecycle policy

在 Kibana 上操作,依次点击 Mangement-> Stack Management -> Index Lifecycle Policies->Create policy,输入配置参数后,点击 Save as new policy 可以生成一个新的策略。

Monitoring 及 Central Management - Elastic Stack 实战手册

Monitoring 及 Central Management - Elastic Stack 实战手册

点击 Show request,可得到创建此 Policy 的请求语句

PUT _ilm/policy/team7_policy
{
  "policy": {
    "phases": {
      "hot": {
        "min_age": "0ms",
        "actions": {
          "rollover": {
            "max_docs": 5
          },
          "set_priority": {
            "priority": 100
          }
        }
      },
      "delete": {
        "min_age": "10m",
        "actions": {}
      }
    }
  }
}

在集群中验证创建的策略:

  1. 配置 lifecycle 检测时间
PUT _cluster/settings
{
  "transient": {
    "indices.lifecycle.poll_interval": "5s" 
  }
}

默认为十分钟,为了测试效果,改为 5 秒钟。

  1. 创建索引模板
PUT _template/team7_template
{
  "index_patterns": [
    "my_team7*"
  ],
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1,
    "index.lifecycle.name": "team7_policy",
    "index.lifecycle.rollover_alias": "my_team7",
    "index.default_pipeline": "indexed_at"
  }
}

索引以 my_team7-开头的自动采用 settings 的配置。

index.lifecycle.name 表示采用 team7_policy 的策略,

index.lifecycle.rollover_alias 表示创建使用该模版创建的索引

统一用 my_team7 的别名进行管理。

  1. 创建索引
PUT my_team7-000001
{
  "aliases": {
    "my_team7": {
      "is_write_index": true
    }
  }
}

创建一个开始的索引,并设置当前索引可通过索引别名写入。

  1. 验证功能

一切准备就绪,我们开始验证

首先执行下面的新建文档操作5次

POST my_team7/_doc
{
  "message": "this is team7 test"
}

Monitoring 及 Central Management - Elastic Stack 实战手册

之后 Rollover 执行,新的索引创建,如下所示

Monitoring 及 Central Management - Elastic Stack 实战手册

10m 以后, my_team7-000001 删除至此,一个完整的 ILM Policy 执行的流程就结束了,而后续 my_team7-000002 也会按照这个设定进行流转。

索引快照和恢复

console开发工具

  • console终端
  • Profiler分析
  • Grok调试工具

采集管理

  • Logstash管道
  • Beats集中管理

数据管理

  • 索引管理
  • 索引生命周期
  • 索引快照和恢复
创作人简介:
高冬冬,从事运维架构, 参与私有云平台运维体系平台开发,金融行业统一日志平台(PB
级)的规划和建设,正在进行包含监控体系和智能运维的统一监控告警平台的规划和设
计。
自 2016 年开始使用和研究 Elastic Stack 相关技术栈,擅长使用 Elastic Stack 解决日
志分析和可观测性相关问题,对 PB 级日志平台的规划,部署,优化和运维有丰富的经
验和实践,喜欢学习运用新技术,解决工作中问题和提高生产力。希望以后有更多的机
会,分享输出更多有价值的东西给大家。
上一篇:制造商消息人士表示:云服务器需求未来一年半依旧强劲


下一篇:asp adodb.stream读取文件和写文件