elasticsearch 常用 endpoint

环境信息

  • elasticsearch 8.8.2

集群状态

查看集群健康状态

Elasticsearch 的集群监控信息中包含了许多的统计数据,其中最为重要的一项就是 集群健康 , 它在 status 字段中展示为 greenyellow 或者 red

  • green - 所有的主分片和副分片都正常运行
  • yellow - 所有主分片都正常运行,但不是所有的副本分片都正常运行
  • red - 有主分片没能正常运行

分片 概念说明

$ curl 'http://localhost:9200/_cluster/health'
{"cluster_name":"elasticsearch","status":"green","timed_out":false,"number_of_nodes":1,"number_of_data_nodes":1,"active_primary_shards":1,"active_shards":1,"relocating_shards":0,"initializing_shards":0,"unassigned_shards":0,"delayed_unassigned_shards":0,"number_of_pending_tasks":0,"number_of_in_flight_fetch":0,"task_max_waiting_in_queue_millis":0,"active_shards_percent_as_number":100.0}

$ curl 'http://localhost:9200/_cluster/health?pretty'
{
"cluster_name" : "elasticsearch",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 1,
"active_shards" : 1,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 100.0
}

查看集群节点信息

使用 _cat/nodes API 可以获取集群中所有节点的信息,包括它们的 IP 地址、堆内存使用情况、CPU 使用情况等。

# curl -u elastic:XhScf5Jqw -XGET 'http://172.31.25.229:9200/_cat/nodes?pretty'
172.31.25.229 58 98 9 1.86 2.27 2.36 dilm - node-1
172.31.30.249 54 98 10 2.05 2.12 2.30 dilm - node-2
172.31.21.225 65 91 0 0.00 0.04 0.05 dfilmrt * node-3

# curl -u elastic:XhScf5Jqw -XGET 'http://172.31.25.229:9200/_cat/nodes?v'
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.31.25.229 51 99 10 2.11 2.33 2.37 dilm - node-1
172.31.30.249 49 99 9 1.96 2.06 2.25 dilm - node-2
172.31.21.225 40 91 0 0.03 0.04 0.05 dfilmrt * node-3

输出信息说明

  • heap.percent - JVM 堆内存使用的百分比。这是节点分配给 Java 虚拟机堆的内存使用量的百分比。
  • ram.percent - 节点的物理内存(RAM)使用率的百分比
  • cpu - 节点的CPU使用率百分比
  • node.role - 节点的角色。各个字母含义如下
    • d - 代表数据节点 Data Node。负责存储数据,执行与数据相关的操作,如 CRUD(创建、读取、更新、删除)、搜索和聚合。
    • i - 代表摄取节点 Ingest Node。用于预处理文档,然后再将其索引到 Elasticsearch 中,它们可以运行摄取管道,这些管道可以执行各种转换,如提取数据、转换数据格式、添加信息等。
    • l - 代表机器学习节点 Machine Learning Node。机器学习节点专门用于运行Elasticsearch的机器学习功能,它们可以分析数据,识别模式,执行异常检测等。
    • m - 代表主节点 Master Node。主节点负责管理集群的全局状态,例如哪些索引存在,哪个节点是哪个索引的一部分等,它们还负责集群重新分片、索引创建、删除等操作。
    • r - 代表远程集群客户端节点 Remote Cluster Client Node。这些节点用于连接到远程集群,它们使得可以从一个集群中执行跨集群搜索和其他操作
    • t - 代表转换节点 Transform Node。转换节点用于运行 Elasticsearch 中的转换任务,这些任务可以将现有的 Elasticsearch 索引数据重新整理和汇总成新的索引。
  • * - 表示这个节点是当前的主节点。

使用 _nodes/stats 查看集群中所有节点的详细状态和统计信息

# curl -u elastic:XhScf5JqwVsSQwHe -XGET 'http://172.31.25.229:9200/_nodes/stats?pretty'
{
"_nodes" : {
"total" : 3,
"successful" : 3,
"failed" : 0
},
"cluster_name" : "es-cluster",
"nodes" : {
"TrQqg_8HTDiKBt6t8Z1JVw" : {
"timestamp" : 1699941330544,
"name" : "node-1",
"transport_address" : "172.31.25.229:9300",
"host" : "172.31.25.229",
"ip" : "172.31.25.229:9300",
"roles" : [
"ingest",
"master",
"data",
"ml"
],
"attributes" : {
"ml.machine_memory" : "133483876352",
"xpack.installed" : "true",
"ml.max_open_jobs" : "20"
},
"indices" : {
"docs" : {
"count" : 1725702315,
"deleted" : 0
},
"store" : {
"size_in_bytes" : 1766657662877
},
"indexing" : {
"index_total" : 28053218,
"index_time_in_millis" : 6610781,
"index_current" : 1,
"index_failed" : 0,
"delete_total" : 0,
"delete_time_in_millis" : 0,
"delete_current" : 0,
"noop_update_total" : 0,
"is_throttled" : false,
"throttle_time_in_millis" : 0
},
...

参考以下命令查看指定节点的详细状态和统计信息,Endpoint 格式参考 _nodes/{nodeId}/stats?pretty

# curl -u elastic:XhScf5JqwVsSQwHe -XGET 'http://172.31.25.229:9200/_nodes/TrQqg_8HTDiKBt6t8Z1JVw/stats?pretty' 
{
"_nodes" : {
"total" : 1,
"successful" : 1,
"failed" : 0
},
"cluster_name" : "es-cluster",
"nodes" : {
"TrQqg_8HTDiKBt6t8Z1JVw" : {
"timestamp" : 1699941591263,
"name" : "node-1",
"transport_address" : "172.31.25.229:9300",
"host" : "172.31.25.229",
"ip" : "172.31.25.229:9300",
"roles" : [
"ingest",
"master",
"data",
"ml"
],
"attributes" : {
"ml.machine_memory" : "133483876352",
"xpack.installed" : "true",
"ml.max_open_jobs" : "20"
},
"indices" : {
"docs" : {
"count" : 1726608289,
"deleted" : 0
},
"store" : {
"size_in_bytes" : 1768415039992
},
"indexing" : {
"index_total" : 29016441,
"index_time_in_millis" : 6829570,
"index_current" : 0,
"index_failed" : 0,
"delete_total" : 0,
"delete_time_in_millis" : 0,
"delete_current" : 0,
"noop_update_total" : 0,
"is_throttled" : false,
"throttle_time_in_millis" : 0
},

获取集群级别的信息和统计数据

/?pretty 参数的主要作用为通过添加缩进和换行增强输出的可读性

$ curl 'http://localhost:9200/?pretty'
{
"name" : "b5f96e32c638",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "UAiC0qVVT-Ov4nJFvoE1HA",
"version" : {
"number" : "8.8.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "98e1271edf932a480e4262a471281f1ee295ce6b",
"build_date" : "2023-06-26T05:16:16.196344851Z",
"build_snapshot" : false,
"lucene_version" : "9.6.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}

索引及文档管理

创建或者添加索引

索引概念说明索引(index) 在 Elasticsearch 中有多个含义 [3]

  • 索引(名词)

    一个 索引(index) 类似于传统关系数据库中的一个 数据库 ,是一个存储关系型文档的地方。 索引 (index) 的复数词为 indicesindexes

  • 索引(动词)

    索引一个文档 就是存储一个文档到一个 索引 (名词)中以便被检索和查询。这非常类似于 SQL 语句中的 INSERT 关键词,除了文档已存在时,新文档会替换旧文档情况之外。

  • 倒排索引

    关系型数据库通过增加一个 索引 比如一个 B树(B-tree)索引 到指定的列上,以便提升数据检索速度。Elasticsearch 和 Lucene 使用了一个叫做 倒排索引 的结构来达到相同的目的。

使用以下 url 可以添加名为 blogs 的索引。在索引建立的时候就已经确定了主分片数,但是副分片数可以随时修改。索引在默认情况下会被分配 5 个主分片。以下示例演示了创建 3 个主分片和一份副本(每个主分片拥有一个副本)的 index

PUT /blogs
{
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 1
}
}

curl 命令操作如下

$ curl -X PUT 'localhost:9200/blogs' -H "Content-Type: application/json" -d '{"settings": {"number_of_shards": 3, "number_of_replicas": 1}}'
{"acknowledged":true,"shards_acknowledged":true,"index":"blogs"}

重新查看集群 健康状态

$ curl 'localhost:9200/_cluster/health/?pretty'
{
"cluster_name" : "elasticsearch",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 1,
"number_of_data_nodes" : 1,
"active_primary_shards" : 4,
"active_shards" : 4,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 3,
"delayed_unassigned_shards" : 0,
"number_of_pending_tasks" : 0,
"number_of_in_flight_fetch" : 0,
"task_max_waiting_in_queue_millis" : 0,
"active_shards_percent_as_number" : 57.14285714285714
}

集群状态为 yellow。表示所有主分片都正常运行,但是 副本分片没有全部处于正常状态。本示例中使用的单节点集群,因此所有副本都处于 unassigned_shards 状态。

调整分片的副本数量

在运行中的集群上是可以动态调整副本分片数目的,我们可以按需伸缩集群

PUT /blogs/_settings
{
"number_of_replicas" : 2
}

查看集群中所有的索引

# curl -u elastic:password1 -XGET "http://localhost:9200/_cat/indices?pretty"
green open .fleet-file-data-endpoint-000001 HvLnz66ATPu3y-V7_LWiGw 1 1 0 0 494b 247b
green open .internal.alerts-observability.logs.alerts-default-000001 qLVSX-3jTNSEJ5TUei8xeg 1 1 0 0 494b 247b
green open .internal.alerts-observability.metrics.alerts-default-000001 No3BDeiPSS-Fc9VLC1_Bmw 1 1 0 0 494b 247b
green open .fleet-file-data-agent-000001 8bD6W2sVROuRew13axuZtA 1 1 0 0 494b 247b
green open metrics-endpoint.metadata_current_default BGeiP6xhT2ChBVlgGBDrGQ 1 1 0 0 494b 247b
green open .internal.alerts-observability.slo.alerts-default-000001 8mwwuFYZRoKhEwnZgP-fAg 1 1 0 0 494b 247b
green open .fleet-files-agent-000001 IPWzmYjyTCicpe92zEXVwg 1 1 0 0 494b 247b
green open .ds-filebeat-8.8.2-2023.07.28-000001 U3A3AD3-R2KjiYXJaApgRQ 1 1 100 0 62.2kb 31.1kb
green open .fleet-files-endpoint-000001 NTH-qwe1R6aPNLZKoHu8Yg 1 1 0 0 494b 247b
green open .internal.alerts-security.alerts-default-000001 FnDUGt2SQN2qd4aztKtYXQ 1 1 0 0 494b 247b
green open .internal.alerts-observability.apm.alerts-default-000001 l-nS3wQtQ3KptM4b93mosA 1 1 0 0 494b 247b
green open .internal.alerts-observability.uptime.alerts-default-000001 VD8sDy64TZSWW2ArhdrSjQ 1 1 0 0 494b 247b

索引文档

我们可以提供自定义的 _id 值,或者让 index API 自动生成。 [4]

使用自定义 ID 索引文档

PUT /{index}/{type}/{id}
{
"field": "value",
...
}

举个例子,如果我们的索引称为 website ,类型称为 blog ,并且选择 123 作为 ID ,那么索引请求应该是下面这样:

$ curl -X PUT 'localhost:9200/website/_doc/123?pretty' -H 'Content-Type: application/json' -d '{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}'



Elasticsearch 响应体如下所示:

{
"_index" : "website",
"_id" : "123",
"_version" : 2,
"result" : "updated",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 1,
"_primary_term" : 1
}

新版本中已经没有了 {type} 概念,已经废弃,可以使用 _doc 代替。否则报错

$ curl -X PUT 'localhost:9200/website/blog/123' -H 'Content-Type: application/json' -d '{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}'
{"error":"no handler found for uri [/website/blog/123] and method [PUT]"}

Elasticsearch 自动生成 ID

如果你的数据没有自然的 ID, Elasticsearch 可以帮我们自动生成 ID 。 请求的结构调整为: 不再使用 PUT (用这个 URL 存储这个文档), 而是使用 POST (存储文档在这个 URL 命名空间下)。

$ curl -X POST 'localhost:9200/website/_doc/?pretty' -H 'Content-Type: application/json' -d '{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}'

除了 _id 是 Elasticsearch 自动生成的,响应的其他部分和 使用自定义 ID 索引文档 的类似:

{
"_index" : "website",
"_id" : "E6bZZ4kB3MyoSII6u2fy",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 2,
"_primary_term" : 1
}

取回一个文档

为了从 Elasticsearch 中检索出文档,我们仍然使用相同的 _index , _type , 和 _id ,但是 HTTP 方法更改为 GET [5]

$  curl 'localhost:9200/website/_doc/123?pretty'

{
"_index" : "website",
"_id" : "123",
"_version" : 2,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
}


响应体中 found 字段为 true 表示文档已经被找到, 如果我们请求一个不存在的文档,我们仍旧会得到一个 JSON 响应体,但是 found 将会是 false 。 此外, HTTP 响应码将会是 404 Not Found ,而不是 200 OK

默认情况下,Elasticsearch 将会返回整个 Document (文档) ,也可以不获取整个 Document (文档) 而只是获取其中的一部分内容,要实现此功能,可以使用查询参数 _source=title,text

$ curl 'localhost:9200/website/_doc/123?pretty&_source=title,text'
{
"_index" : "website",
"_id" : "123",
"_version" : 2,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out..."
}
}

或者,如果你只想得到 _source 字段,不需要任何元数据,你能使用 _source 端点:

$ GET /website/blog/123/_source
{
"title": "My first blog entry",
"text": "Just trying this out...",
"date": "2014/01/01"
}

此方法新版本(elasticsearch 8.8.2)不存在

$ curl 'localhost:9200/website/_doc/123/_source'
{"error":"no handler found for uri [/website/_doc/123/_source] and method [GET]"}

获取 Elasticsearch 中所有的文档

获取 Elasticsearch 中所有的 文档(document),使用以下 _search 查询

$ curl 'localhost:9200/_search?pretty'
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 4,
"successful" : 4,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "website",
"_id" : "123",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "E6bZZ4kB3MyoSII6u2fy",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "1",
"_score" : 1.0,
"_source" : { }
},
{
"_index" : "blogs",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"title" : "test post",
"content" : "test post"
}
}
]
}
}

输出结果中

  • hits - 包含查询到的所有文档信息
  • hits.total - 表示匹配到的文档总数
  • hits.hits - 数组,包含了查询结果中的前 10 个文档。每个数组包含了 Document (文档)_index_id_source 字段。
  • hits.hits[*]._score - 每个数组包含了一个 _score 值,它衡量了文档和查询的匹配程度。默认情况下,首先返回最相关的文档,就是说,返回结果是按照 _score 降序排列的。
  • took - 表示整个搜索请求耗费了多少 ms
  • _shards - 这部分记录了此次查询中参与的分片的总数,以及这些分片成功了多少,失败了多少。
  • timed_out - 表示查询是否超时,默认情况下,搜索请求不会超时。如果低响应时间更重要,可以使用 /_search?timeout=10ms 方式指定搜索的超时时间。

获取指定索引下的所有文档

要获取指定索引(index) 下的所有文档(document),使用 _search 方法

$ curl 'localhost:9200/website/_search?pretty'
{
"took" : 1,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 3,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "website",
"_id" : "123",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "E6bZZ4kB3MyoSII6u2fy",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "1",
"_score" : 1.0,
"_source" : { }
}
]
}
}

获取多个指定索引下的所有文档

有时候不想列出 Elasticsearch 中的所有文档,又需要一次性列出多个索引(index) 中的 Document (文档)。此时可以使用 Elasticsearch 的 多索引搜索 功能 [6]

$ curl 'localhost:9200/website,blogs/_search?pretty'
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 4,
"successful" : 4,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 4,
"relation" : "eq"
},
"max_score" : 1.0,
"hits" : [
{
"_index" : "website",
"_id" : "123",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "E6bZZ4kB3MyoSII6u2fy",
"_score" : 1.0,
"_source" : {
"title" : "My first blog entry",
"text" : "Just trying this out...",
"date" : "2014/01/01"
}
},
{
"_index" : "website",
"_id" : "1",
"_score" : 1.0,
"_source" : { }
},
{
"_index" : "blogs",
"_id" : "1",
"_score" : 1.0,
"_source" : {
"title" : "test post",
"content" : "test post"
}
}
]
}
}

相关 API 格式汇总 [6]

  • /_search 在所有的索引中搜索所有的文档
  • /gb/_searchgb 索引中搜索所有的文档
  • /gb,us/_searchgbus 索引中搜索所有的文档
  • /g*,u*/_search 在任何以 g 或者 u 开头的索引中搜索所有的文档
  • /_all/_search 在所有的索引中搜索

分页搜索结果

搜索默认返回最前面的 10 个结果,如果要自定义返回的结果数,可以使用以下查询参数 [7]

  • size - 显示返回结果的数量,默认为 10
  • from - 显示应该跳过的初始结果数量,默认为 0

如果每页展示 5 条结果,可以用下面的方式请求得到 1 到 3 页的数据

GET /_search?size=5
GET /_search?size=5&from=5
GET /_search?size=5&from=10

检查文档是否存在

如果只想知道一个 Document (文档) 是否存在,而不关心其内容,那么用 HEAD 方法代替 GET 方法,HEAD 方法只返回头部,不返回 HTTP body 内容

如果 Document (文档) 存在,返回 200 OK,不存在则返回 404 Not Found

$ $  curl -v -X HEAD 'localhost:9200/blogs/_doc/1'
* About to connect() to localhost port 9200 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9200 (#0)
> HEAD /blogs/_doc/1 HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:9200
> Accept: */*
>
< HTTP/1.1 200 OK
< X-elastic-product: Elasticsearch
< content-type: application/json
< content-length: 147
<


$ curl -v -X HEAD 'localhost:9200/blogs/_doc/11'
* About to connect() to localhost port 9200 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 9200 (#0)
> HEAD /blogs/_doc/11 HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:9200
> Accept: */*
>
< HTTP/1.1 404 Not Found
< X-elastic-product: Elasticsearch
< content-type: application/json
< content-length: 43

获取文档中指定的字段

如果只想获取文档中指定的字段,而不是所有字段,可以使用 _source_includes 查询参数

# GET /log-8.8.2-2023.08.02/_search?size=10000&_source_includes=dissect.hostname,agent.name
{
"took": 178,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 10000,
"relation": "gte"
},
"max_score": 1,
"hits": [
{
"_index": "fm-k8s-pro-system-message-log-8.8.2-2023.08.02",
"_id": "5IHStIkBQ8H_mBHnz6Ec",
"_score": 1,
"_source": {
"agent": {
"name": "fm-k8s-c1-worker2"
},
"dissect": {
"hostname": "ip-172-31-22-159"
}
}
},
]
}
}

data stream

data stream (数据流) 是 Elasticsearch 中用于管理时间序列数据的功能,它会自动创建和管理多个索引,包括索引写入和滚动索引data stream (数据流) 有一个或者多个写入索引,用于实际写入和索引数据。由于数据流是一种时间序列的数据存储方式,不应该直接删除写入索引如果想要删除一个数据流,应该通过删除整个数据流来实现,而不是单独的删除写入索引

删除 data stream

要删除一个 data stream (数据流),参考以下 API

$ curl -XDELETE localhost:9200/_data_stream/logs-generic-default
{"acknowledged":true}

查看所有的 data stream

$ curl localhost:9200/_data_stream?pretty
{
"data_streams" : [
{
"name" : "logs-generic-default",
"timestamp_field" : {
"name" : "@timestamp"
},
"indices" : [
{
"index_name" : ".ds-logs-generic-default-2023.07.24-000001",
"index_uuid" : "wxd_EjasSayBSu1d9GmcvA"
}
],
"generation" : 1,
"_meta" : {
"description" : "default logs template installed by x-pack",
"managed" : true
},
"status" : "GREEN",
"template" : "logs",
"ilm_policy" : "logs",
"hidden" : false,
"system" : false,
"allow_custom_routing" : false,
"replicated" : false
}
]
}

user and role

查看 Elasticsearch 中所有的用户

# curl -u elastic:password1 -XGET "http://localhost:9200/_security/user?pretty"
{
"elastic" : {
"username" : "elastic",
"roles" : [
"superuser"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"kibana" : {
"username" : "kibana",
"roles" : [
"kibana_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_deprecated_reason" : "Please use the [kibana_system] user instead.",
"_deprecated" : true,
"_reserved" : true
},
"enabled" : true
},
"kibana_system" : {
"username" : "kibana_system",
"roles" : [
"kibana_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"logstash_system" : {
"username" : "logstash_system",
"roles" : [
"logstash_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"beats_system" : {
"username" : "beats_system",
"roles" : [
"beats_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"apm_system" : {
"username" : "apm_system",
"roles" : [
"apm_system"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
},
"remote_monitoring_user" : {
"username" : "remote_monitoring_user",
"roles" : [
"remote_monitoring_collector",
"remote_monitoring_agent"
],
"full_name" : null,
"email" : null,
"metadata" : {
"_reserved" : true
},
"enabled" : true
}
}

重置用户密码

具体步骤参考

参考链接

elastic 官网介绍

脚注