ES 05 - 通过Kibana管理Elasticsearch集群服务

在本篇文章之前, 需要完成:

① 启动Elasticsearch服务, 至少启动一个节点, 参考博主文章 ES 02 - 部署Elasticsearch单机服务 + 部署中的常见问题, 部署Elasticsearch服务;

② 启动Kibana, 参考博主文章 ES 04 - 安装Kibana插件(6.6.0版本), 安装并启动Kibana;

③ 通过浏览器访问Kibana;

④ 进入Dev Tools(开发者工具)界面.

1 检查集群的健康状况

ES提供了一套_cat API, 可以查看ES中的各类数据.

# 查询API: 
GET _cat/health?v
# 响应信息如下(一行显示不全, 分作两行):
epoch       timestamp  cluster  status  node.total  node.data  shards  pri  relo
1552979327  07:08:47   heal_es  yellow           1          1      33   33     0

init  unassign  pending_tasks  max_task_wait_time  active_shards_percent
   0         5              0                   -                  86.8%

(1) 如何快速了解集群的健康状况? 通过查看status选项的值:

green: 所有primary shard和replica shard都已成功分配, 集群是100%可用的;

yellow: 所有primary shard都已成功分配, 但至少有一个replica shard缺失. 此时集群所有功能都正常使用, 数据不会丢失, 搜索结果依然完整, 但集群的可用性减弱. —— 需要及时处理的警告.

red: 至少有一个primary shard(以及它的全部副本分片)缺失 —— 部分数据不能使用, 搜索只能返回部分数据, 而分配到这个分配上的写入请求会返回一个异常. 此时虽然可以运行部分功能, 但为了索引数据的完整性, 需要尽快修复集群.

(2) 集群状态为什么是yellow?

① 当前只有一个Elasticsearch节点, 而且此时ES中只有一个Kibana内建的索引数据.

② ES为每个index默认分配5个primary shard和5个replica shard, 为了保证高可用, 它还要求primary shard和replica shard不能在同一个node上.

③ 当前服务中, Kibana内建的index是1个primary shard和1个replica shard, 由于只有1个node, 所以只有primary shard被分配和启动了, 而replica shard没有被成功分配(没有其他node可用).

2 查看集群中的节点个数

# 查询API: 
GET _cat/nodes?v
# 响应信息如下(一行显示不全, 分作两行):
ip             heap.percent  ram.percent  cpu  load_1m  load_5m  load_15m  
172.16.22.133            49           98    3     0.56     0.74      1.02

node.role  master  name
mdi        *       1UlY804

3 查看集群中的索引

# 查询API: 
GET _cat/indices?v
# 响应信息如下(一行显示不全, 分作两行): 
health  status  index      uuid                    pri  rep  
green   open    .kibana_1  4q7ELvdcTVilW3UwtMWqeg    1    0

docs.count  docs.deleted  store.size  pri.store.size
        18             0      78.5kb          78.5kb

4 简单的索引操作

4.1 创建索引

# 创建索引API: 
PUT test_index?pretty
# 响应信息如下:
#! Deprecation: the default number of shards will change from [5] to [1] in 7.0.0; 
# if you wish to continue using the default of [5] shards, you must manage this on the create index request or with an index template
{
  "acknowledged": true,
  "shards_acknowledged": true,
  "index": "test_index"
}

# 查看集群中的索引: 
health status index        uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   test_index   hMeJ-M9pSHSXl0t39OedYw   5   1          0            0      1.2kb          1.2kb
yellow open   .kibana_1    4q7ELvdcTVilW3UwtMWqeg   1   0         18            0     78.5kb         78.5kb

过时说明:

在创建索引时, Elasticsearch提出过时警告: 从7.0.0版本开始, 默认的Shard个数将从[5]变为[1].

如果要继续使用默认的[5]个分片(Shard), 就需要在创建Index时指定, 或者通过索引模板创建Index.

关于创建Index时指定分片个数的方法, 参见后续的博文.

4.2 删除索引

# 删除索引API:
DELETE test_index?pretty
# 响应信息如下: 
{
  "acknowledged": true
}

版权声明

作者: 马瘦风

出处: 博客园 马瘦风的博客

您的支持是对博主的极大鼓励, 感谢您的阅读.

本文版权归博主所有, 欢迎转载, 但请保留此段声明, 并在文章页面明显位置给出原文链接, 否则博主保留追究相关人员法律责任的权利.

posted @ 2018-11-09 12:33 瘦风 阅读(...) 评论(...) 编辑 收藏