首页 > 技术文章 > Elasticsearch 集群Cluster API(7.5.0)

ruhuanxingyun 2020-01-14 17:21 原文

1. cluster stats:集群统计信息,如jvm版本、内存使用、cpu等

  A. 请求:GET /_cluster/stats  |  GET /_cluster/stats/nodes/<node_id>

     路径参数:node_id是节点ID或名称,多个以逗号分隔

  B. 结果信息

nodes下字段 说明
count 节点总数、以及各角色节点数
versions 版本信息
os 操作系统信息:处理器数量、系统名称、内存等
jvm java虚拟机信息:版本、内存、线程
fs 文件系统信息
network_types 网络信息

 

indices下字段 说明
count 索引数
shards 分片信息:总数、主分片数、副本分片数、以及最大、最小、均值
docs 文档信息:文档数、删除的文档数
store 存储大小
fielddata 字段缓存信息
query_cache 查询缓存信息

  C. kibana操作

   D. java编码

  /**
     * 获取磁盘容量信息
     *
     * @return map
     */
    private Map<String, Long> getDiskSpace() {
        Request request = new Request(HttpMethod.GET.toString(), "/_cluster/stats");
        Map<String, Long> map = new HashMap<>(4);

        try {
            Response response = restHighLevelClient.getLowLevelClient().performRequest(request);
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                String content = EntityUtils.toString(response.getEntity());
                // 获取nodes数据
                Object obj = JSONUtil.toBean(content, Map.class).get("nodes");
                // 获取节点数
                Integer size = (Integer) ((Map) ((Map) obj).get("count")).get("total");
                // 获取磁盘总容量
                Long totalSpace = (Long) ((Map) ((Map) obj).get("fs")).get("total_in_bytes");
                // 获取磁盘空闲容量
                Long freeSpace = (Long) ((Map) ((Map) obj).get("fs")).get("free_in_bytes");
                map.put("totalSpace", totalSpace / size);
                map.put("freeSpace", freeSpace / size);
                map.put("usableSpace", (totalSpace - freeSpace) / size);
                log.info(String.format("磁盘容量信息:%s", map.toString()));
            } else {
                log.info("获取磁盘容量信息失败");
            }
        } catch (IOException e) {
            e.printStackTrace();
            log.info("获取磁盘容量信息失败");
        }

        return map;
    }

 2. nodes stats:集群节点统计信息

  A. 请求:GET  /_nodes/stats  |  GET  /_nodes/<node_id>/stats  |  GET  /_nodes/stats/<metric> 

    路径参数:metric是将返回的信息限制为特定指标,如:fs、http、jvm等

  B. 查询参数及返回结果:详见官网介绍

  C. kibana操作

 

可参考:ES集群官网地址

推荐阅读