日常最主要是查询、更新和删除操作,又可以细分为索引、文档、集群操作。
集群
1. _cat:查询elasticsearch集群状态的接口
可以查看返回的结果,这就是我们可以利用的接口。如/_cat/aliases,我们可以查询索引的别名,在排查问题的时候会用到,文本后续会补充说明。
[sudoroot@node2 ~]$ curl -u 'esUser:esPasswd' -X GET esIP:esPort/_cat # 需要四个参数
=^.^=
/_cat/allocation
/_cat/shards
/_cat/shards/{index}
/_cat/master
/_cat/nodes
/_cat/tasks
/_cat/indices
/_cat/indices/{index}
/_cat/segments
/_cat/segments/{index}
/_cat/count
/_cat/count/{index}
/_cat/recovery
/_cat/recovery/{index}
/_cat/health
/_cat/pending_tasks
/_cat/aliases
/_cat/aliases/{alias}
/_cat/thread_pool
/_cat/thread_pool/{thread_pools}
/_cat/plugins
/_cat/fielddata
/_cat/fielddata/{fields}
/_cat/nodeattrs
/_cat/repositories
/_cat/snapshots/{repository}
/_cat/templates
2. 查询集群健康状态
curl -XGET localhost:9200/_cluster/health?pretty=true
pretty=true表示格式化输出
level=indices 表示显示索引状态
level=shards 表示显示分片信息
绿色表示一切正常, 黄色表示所有的数据可用但是部分副本还没有分配,红色表示部分数据因为某些原因不可用
3. 显示集群系统信息,包括CPU JVM等等
curl -XGET localhost:9200/_cluster/stats?pretty=true
4. 集群的详细信息。包括节点、分片等。
curl -XGET localhost:9200/_cluster/state?pretty=true
5. 获取集群堆积的任务
curl -XGET localhost:9200/_cluster/pending_tasks?pretty=true
6. 修改集群配置
举例:
curl -XPUT localhost:9200/_cluster/settings -d ‘{
“persistent” : {
“discovery.zen.minimum_master_nodes” : 2
}
}’
transient 表示临时的,persistent表示永久的
7. 对shard的手动控制
curl -XPOST ‘localhost:9200/_cluster/reroute’ -d ‘xxxxxx’
参考http://zhaoyanblog.com/archives/687.html
8. 关闭节点
关闭指定192.168.1.1节点
curl -XPOST ‘http://192.168.1.1:9200/_cluster/nodes/_local/_shutdown’
curl -XPOST ‘http://localhost:9200/_cluster/nodes/192.168.1.1/_shutdown’
关闭主节点
curl -XPOST ‘http://localhost:9200/_cluster/nodes/_master/_shutdown’
关闭整个集群
$ curl -XPOST ‘http://localhost:9200/_shutdown?delay=10s’
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_shutdown’
$ curl -XPOST ‘http://localhost:9200/_cluster/nodes/_all/_shutdown’
delay=10s表示延迟10秒关闭
nodes系列
查询节点的状态
curl -XGET ‘http://localhost:9200/_nodes/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2/stats?pretty=true’
curl -XGET ‘http://localhost:9200/_nodes/process’
curl -XGET ‘http://localhost:9200/_nodes/_all/process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/info/jvm,process’
curl -XGET ‘http://localhost:9200/_nodes/192.168.1.2,192.168.1.3/_all
curl -XGET ‘http://localhost:9200/_nodes/hot_threads
索引
- 查询所有索引
curl -X GET ‘http://localhost:9200/_cat/indices?v‘
- 列出索引中的所有文档
curl -X GET ‘http://localhost:9200/sample/_search‘
- 新建索引
curl -XPUT’localhost:9200/sample?pretty’
- 删除名为samples的索引。
curl -X DELETE ‘http://localhost:9200/samples‘
- 备份索引
curl -XPOST —header ‘Content-Type: application/json’ http://localhost:9200/_reindex -d ‘{ “source”: { “index”: “samples”}, “dest”: {“index”: “samples_backup” } }’
别名
- 操作别名的两个方法
_alias:单个操作
_aliases:多个操作
- 查询别名
通过别名查询所指向的索引:
curl -XGET ‘localhost:9200/_alias/dm’
curl -XGET ‘localhost:9200/_alias/dm‘
查询指向该索引下的所有别名:
curl -XGET ‘localhost:9200/dm_v2/_alias/‘
- 创建别名
curl -XPUT ‘localhost:9200/dm_v1/_alias/dm’
curl -XPOST ‘http://localhost:9200/_aliases‘ -d ‘ {“actions” : [{ “add” : { “index” : “dm_v1”, “alias” : “dm_alias” } }]}’
- 删除别名
curl -XDELETE ‘localhost:9200/dm_v1/_alias/dm_alias’
删除别名的同时添加别名到新的索引,该操作时原子性的,不用担心存在别名没有指向任何索引的瞬间(常用)
curl -XPOST 'http://localhost:9200/_aliases' -d '
{
"actions" : [
{ "remove" : { "index" : "dm_v1", "alias" : "dm" } },
{ "add" : { "index" : "dm_v2", "alias" : "dm" } }
]
}'
文档
新增数据
curl —header ‘Content-Type: application/json’ -XPUT http://localhost:9200/samples/_doc/2 -d ‘{“school”:”Clemson”}’
- 更新数据
curl —header ‘Content-Type: application/json’ -XPOST http://localhost:9200/samples/_doc/2/_update -d ‘{“doc” : { “students”: 50000}}’
- 查看
curl -XGET ‘localhost:9200/customer/samples/_doc/2?pretty’
[