版本信息
- Elasticsearch -7.3.1
- Kibana - 7.3.1
以下是在 Kibana Console 中常用的一些操作
?v - 显示题头,?pretty
GET /_cat/indices?v
GET /_cat/thread_pool?pretty
1.调整索引的间隔 - refresh_interval
默认情况下 ElasticSearch 索引的 refresh_interval 为5秒,这意味着数据写入至少5秒后才可以被搜索到,因此 ElasticSearch 被称为近实时搜索引擎。
如果需要调整数据刷新方案,则有三种途径:
(1)设置数据刷新间隔:refresh_interval
(2)调用数据刷新接口:_refresh。
刷新所有 index: POST /_refresh
刷新指定 index: POST /order_logs/_refresh
(3)设置数据刷新策略:RefreshPolicy.
# 调整所有index的刷新间隔为15s
PUT {
"settings": {
"refresh_interval": "15s"
}
}
# 调整指定index的刷新间隔为15秒
PUT /order_logs_2019.12.11 {
"settings": {
"refresh_interval": "15s"
}
}
例如:现在需要将 MySQL 中的数据做一次 Elasticsearch 全量更新,或者初次导入大量数据时,此时可以先关闭自动刷新,全量更新完成之后再打开。
# 关闭全部index的数据刷新
PUT /mysql_logs_2019.12.11
{
"settings": {
"refresh_interval": -1
}
}
# 调整指定index的刷新间隔为30秒
PUT /order_logs_2019.12.11
{
"settings": {
"refresh_interval": "30s"
}
}
2.查看指定索引的 shards 和 replicas 数量
GET /order_logs_2019.12.11/_settings
3.新增一个 ilm policy (索引生命周期管理)模板
indices lifecycle management,此例是从索引建立之后7天,自动删除索引,ilm policy 可以在索引模板中引用生效
PUT /_ilm/order_logs_ilm_policy
{
"policy" : {
"phase" : {
"delete" : {
"min_age" : "7d",
"actions" : {
"delete": {}
}
}
}
}
}
4.新建一个索引模板
template_order_logs
{
"index_patterns" : ["order_logs_*"],
"order" : 99,
"settings": {
"number_of_shares" : 1,
"number_of_replicas" : 0,
"refresh_interval": "30s",
"index.lifecycle.name" : "odrer_logs_ilm_policy"
},
"mapping" : {
"dynamic" : "false",
"properties" : {
"@timestamp" : {
"type" : "date",
},
"logtime" : {
"type" : "text",
"index" : "true"
},
"level" : {
"type" : "text",
"index" : "true"
},
"component" : {
"type" : "text",
"index" : "true"
},
"threadId" : {
"type" : "text",
"index" : "true"
},
"host.name" : {
"type" : "text",
"index" : "true"
},
"log.file.path" : {
"type" : "text",
"index" : "true"
},
"logbody" : {
"type" : "text",
"index" : "true"
}
}
}
}
5.条件筛选
GET /_cat/indices?v&health=yellow
6.结果排序
GET /_cat/indices?v&s=docs.count:desc
7.统计索引的doc行数
统计以 “order_logs_2019.12“ 开头的索引的 doc 数量
GET /_cat/count/order_logs_2019.12*?v&format=json&pretty
8.查看指定索引的 setting
GET /order_logs_2019.12.11/_settings?pretty
9.擦看各个索引的 shards 配置和空间占用状态
GET /_cat/shards&s=index:desc
10.查看集群节点属性
GET /_cat/nodeattrs?v
11.查看jvm
GET /_nodes/stats/jvm
12.查看热点线程
GET /nodes/hot_threads
13.查看各个线程的状态,例如写入线程,查询线程
6.0之后 bulk 被分拆了,可以通过观察 elasticsearch 后台日志或是通过使用 thread pool api 来观察内部线程池的使用情况,以及相应队列大小,判断是否还可以继续调整配置参数。
GET /_node/stats/thread_pool
14.查看集群在忙些啥
正常情况一批 bulk 操作应该是毫秒级的,从 task_id、parent_task_id 可以看出,一个 bulk 操作下面分为写主分片的动作和写副本的动作,其中:
indices:data/write/bulk[s][p]:s 表示分片,p 表示主分片。
indices:data/write/bulk[s][r]:s 表示分片,r 表示副本。
GET /_cat/tasks?v
15.查看索引模板
GET /_template/template_order_logs
16.查看 ilm policy (索引生命周期管理)
GET /_ilm/policy
- 其他
监控工具 - Cerebro
监控工具 - Elasticsearch Head