1 集群健康
在Elasticsearch集群中可以监控统计很多信息,但是只有一个是最重要的:集群健康(cluster health)。集群健康有三种状态:green、yellow或red。
##在一个没有索引的空集群中运行如上查询,将返回这些信息:
➜ ~ curl '192.168.91.221:9200/_cat/health?v'
epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1481852119 09:35:19 es-cluster green 3 3 0 0 0 0 0 0 - 100.0%
status字段提供一个综合的指标来表示集群的的服务状况。三种颜色各自的含义:
| 颜色 | 意义 |
| ------------- |:---------------------------:|
| green | 所有主要分片和复制分片都可用
| yellow | 所有主要分片可用,但不是所有复制分片都可用
| red | 不是所有的主要分片都可用
PS:注意: 即使集群状态为红色,它仍然提供正常的操作功能(即:它会在现有存活分片中执行搜索请求),但是需要我们尽快修复故障分片,防止查询数据的丢失;
2 节点列表
2.1使用如下api查看节点信息:
➜ ~ curl '192.168.91.221:9200/_cat/nodes?v'
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.91.223 18 97 0 0.00 0.00 0.00 di - es-node3
192.168.91.222 17 97 0 0.00 0.00 0.00 mdi - es-node2
192.168.91.221 33 38 0 0.00 0.00 0.00 mdi * es-node1
我们可以从返回结果中看出节点名称、节点角色、是否主节点等信息;
创建索引
2.2创建索引:
➜ ~ curl -XPUT '192.168.91.221:9200/users?pretty'
{
"acknowledged" : true,
"shards_acknowledged" : true
}
-----------------------------------------------------------
➜ ~ curl -XPUT '192.168.91.221:9200/test?pretty'
{
"acknowledged" : true,
"shards_acknowledged" : true
}
2.3删除users和test索引:
curl -XDELETE '192.168.91.221:9200/users?pretty'
curl -XDELETE '192.168.91.221:9200/test?pretty'
执行上述操作返回:
{
"acknowledged" : true
}
2.4查看索引列表:
使用如下api查看索引列表:
➜ ~ curl '192.168.91.221:9200/_cat/indices?v'
执行上述操作返回:
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
green open test dVgI7sJcT6Ga29a3gclRIQ 5 1 0 0 1.2kb 650b
green open users 1eRMSqOvRO-P7ab1lz_qvQ 5 1 0 0 1.2kb 650b
如果集群中没有索引:
➜ ~ curl '192.168.91.221:9200/_cat/indices?v'
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
3索引查询
首先我们向users索引中插入一条数据:
➜ ~ curl -XPUT '192.168.91.221:9200/users/external/1?pretty' -d '
{
"name": "John Doe"
}'
执行上述操作返回:
{
"_index" : "users",
"_type" : "external",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 2,
"failed" : 0
},
"created" : true
}
➜ ~
再去查询users中的数据:
➜ ~ curl -XGET '192.168.91.221:9200/users/external/1?pretty'
{
"_index" : "users",
"_type" : "external",
"_id" : "1",
"_version" : 1,
"found" : true,
"_source" : {
"name" : "John Doe"
}
}
➜ ~