Elasticsearch常用语句

elasticsearch常用语句

基础操作

基础查看

1、查看集群的健康状态
curl -XGET  "http://10.45.151.227:9200/_cat/health?v"

2、查看nodes
curl -u elastic:123456 -XGET 'http://10.45.186.125:9200/_cat/nodes?v'

3、查看索引
curl -XGET 'http://10.45.186.155:9200/_cat/indices?pretty'

4、创建索引
curl -XPUT  'http://10.45.186.155:9200/gwtest01?pretty'  -H 'Content-Type: application/json' -d '
{
"settings": {
"number_of_shards": "36",
"number_of_replicas": "0"
}
}'

5、给索引添加一条数据
curl -XPOST 'http://10.45.186.155:9200/gwtest01/stu/1?pretty' -H 'Content-Type: application/json' -d '
{
"name":"wangfang",
"age":22,
"sex":1
}'


6、查询索引所有文档:
curl -XGET  'http://10.45.151.108:9200/test/_search?pretty' -H 'Content-Type: application/json' -d '
{
  "query": {
    "match_all": { }
  }
}'


7、删除一个索引
curl -XDELETE 'http://10.45.186.155:9200/gwtest01?pretty'

详细查看

1、查看一个索引的settings

[elastic@gwtest156 0]$  curl -XGET 'http://10.45.186.156:9200/gwtest02/_settings?pretty'
{
  "gwtest02" : {
    "settings" : {
      "index" : {
        "creation_date" : "1634645232394",
        "number_of_shards" : "5",        #主分片数,默认为5,只能在建索引时设置,不能修改
        "number_of_replicas" : "1",     #设置索引分片副本数,默认为1,可以随时修改
        "uuid" : "98xWMOHKQUaP1Rl90p7zQA",
        "version" : {
          "created" : "6030099"
        },
        "provided_name" : "gwtest02"
      }
    }
  }
}

2、查看一个文档类型的定义mapping
[elastic@gwtest156 ~]$ curl -XGET 'http://10.45.186.156:9200/gwtest02/stu/_mapping?pretty'
{
  "gwtest02" : {
    "mappings" : {
      "stu" : {
        "properties" : {
          "age" : {
            "type" : "long"
          },
          "name" : {
            "type" : "text",
            "fields" : {
              "keyword" : {
                "type" : "keyword",
                "ignore_above" : 256
              }
            }
          }

3、查看所有shard情况:

curl  -XGET 'http://192.168.1.205:9200/_cat/shards/20240313uganda?v'

4、插入索引模板
通过索引名字通配

curl -u rhino:zxsk@34#$ -XPUT "http://10.45.186.73:9200/_template/template_1" -H 'Content-Type: application/json' -d'
{
  "index_patterns": ["test*"],
  "settings": {
    "number_of_shards": 1,
    "index":{
      "max_result_window": 100000,
      "mapping":{
        "total_fields":{
          "limit":5000
        }
      }
    }
  }
}'

常用运维

配置及解决

1、置空分片

查找当前原因:
curl -XGET 10.45.186.72:9200/_cluster/allocation/explain?pretty
{
  "index": "222222",
  "shard": 6,
  "primary": true,
  "current_state": "unassigned",
  "unassigned_info": {
    "reason": "NODE_LEFT",
    "at": "2019-10-31T17:02:11.258Z",
    "details": "node_left[removedforsecuritybecimparanoid1]",
    "last_allocation_status": "no_valid_shard_copy"
  },
  "can_allocate": "no_valid_shard_copy",
  "allocate_explanation": "cannot allocate because a previous copy of the primary shard existed but can no longer be found on the nodes in the cluster",
  "node_allocation_decisions": [
    {

	
reroute命令
curl -XPOST 10.45.186.72:9200/_cluster/reroute -H 'Content-Type: application/json'  -d '{
"commands" : [
{
"allocate_empty_primary" : {
"index" : "222222",       ---上面查出的index名字
"shard": 6,					----上面查出来的shard id 
"node" : "removedforsecuritybecimparanoid7",    ----往下翻任找一个node name 填入
"accept_data_loss" : true
}
}
]
}'

2、修改节点最大分片数: 将索引每个节点的最大分片数增加至6个

curl -XPUT "http://ip:port/<index_name>/_settings" -H 'Content-Type:application/json' -d '{"routing.allocation.total_shards_per_node": 6}'

3、修改所有副本数: 将索引副本数增加至1

curl -XPUT "http://ip:port/<index_name>/_settings" -H 'Content-Type:application/json' -d '{"number_of_replicas": 1}'

4、开关索引:

关闭索引
curl -XPOST  http://10.45.186.155:9200/gwtest01/_close

开启索引
curl -XPOST  http://10.45.186.155:9200/gwtest01/_open

5、动态设置磁盘阈值参数:

curl -XPUT  -H "Content-Type: application/json" http://10.45.151.221:9200/_cluster/settings -d '{
    "transient" : {
        "cluster.routing.allocation.disk.watermark.low" : "90%",
        "cluster.routing.allocation.disk.watermark.high" : "95%"
    }
}'

6、索引只读状态

查看索引是否是只读:
curl -XGET "192.168.42.155:9200/202104?pretty" | grep 'read_only_allow_delete'


取消索引只读状态:
curl -XPUT -H "Content-Type: application/json" http://10.127.48.49:9200/202010/_settings -d '{"index.blocks.read_only_allow_delete": false}'

段操作

1、查看整个集群的状态, 其中segments.count 为段总数

curl -XGET 'http://10.45.151.221:9200/_cluster/stats?pretty'

2、查看每个段,计算行数,统计总个数

curl -XGET http://10.45.151.221:9200/_cat/segments?pretty|wc -l

3、查看具体某个索引段个数

curl -XGET http://10.45.151.221:9200/zxsk_owls45_20230418/_stats?pretty

4、强制段合并命令,将每个shard段合并为1个:

curl -XPOST 'http://10.45.151.221:9200/zxsk_owls45_20230418/_forcemerge?max_num_segments=1'

5、查看段内存情况:

curl -XGET -u  elastic:elastic  "http://10.45.151.227:9200/_cat/nodes?v&h=ip,name,ram.percent,port,sm"

其中sm 即为segment memory

用户相关

1、查看用户

curl  -u zxsk:sinovatio  -XGET 'http://10.45.187.119:9200/_security/user?pretty'

2、查看角色

curl  -u zxsk:sinovatio  -XGET 'http://10.45.187.119:9200/_security/role?pretty'

3、删除role

curl -XDELETE -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" 

4、创建role(该role拥有集群的只读操作,索引的增删改写操作):

curl -XPOST -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" -H 'Content-Type: application/json' -d '{ "cluster": ["all"],"indices": [{ "names": [ "*" ],
"privileges": ["all"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}'


curl -XPOST -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor"],"indices": [{ "names": [ "*" ],
"privileges": ["write","read","index","create_index","monitor","delete"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}'


curl -XPOST -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor"],"indices": [{ "names": [ "^[^.].*" ],"privileges": ["all"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}'


curl -XPOST -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor"],"indices": [{ "names": [ "*" ],
"privileges": ["write","read","index","create_index","monitor","delete","delete_index"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}'


curl -XPOST -u elastic:123456 "http://10.45.187.118:9200/_security/role/gwtest_role" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor"],"indices": [{ "names": [ "gwtest02" ],"privileges": ["read"]},{ "names": [ "*" ],"privileges": ["all"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}'

5、创建用户例子:

1、创建一个所有索引的只读role,名为normal_user_1
curl -XPOST -u elastic:${ESPASSWD} "http://${ES_CURLHOST}:9200/_security/role/normal_user_1" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor","manage_index_templates"],"indices": [{ "names": [ "a*","b*","c*","d*","e*","f*","g*","h*","i*","j*","k*","l*","m*","n*","o*","p*","q*","r*","s*","t*","u*","v*","w*","x*","y*","z*","0*","1","2*","3*","4*","5*","6*","7*","8*","9*" ],"privileges": ["read"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}' 

2、创建一个以gwtest 开头索引名 全部权限的role,名为normal_user_2
curl -XPOST -u elastic:elastic "http://10.45.151.227:9200/_security/role/normal_user_2" -H 'Content-Type: application/json' -d '{ "cluster": ["monitor"],"indices": [{ "names": [ "gwtest*"],"privileges": ["all"]}],"run_as": [ "other_user" ], "metadata" :{"version" : 1}}' 


3、创建用户
curl -XPOST -u elastic:elastic "http://10.45.151.227:9200/_security/user/test" -H 'Content-Type: application/json' -d '{ "password": "用户密码", "roles": ["normal_user_1","normal_user_2"] }'

扩容缩容

1、删除节点

curl -XPOST 10.45.186.72:9200/_cluster/reroute -H 'Content-Type: application/json'  -d '
{
  "transient": {
    "cluster.routing.allocation.exclude._ip": "10.10.0.1"
  }
}'

参数优化

discovery_zen_minimum_master_nodes    master数量/2 +1 
Gateway Recover After Nodes        master+计算节点数(每台服务器上es进程数*服务器数量) -1
node_max_local_storage_nodes      改为1

相关推荐

  1. Elasticsearch语句

    2024-03-20 09:36:02       34 阅读
  2. ElasticsearchDSL语句

    2024-03-20 09:36:02       52 阅读
  3. ElasticSearch搜索语句与SQL对比

    2024-03-20 09:36:02       56 阅读
  4. elasticsearch命令

    2024-03-20 09:36:02       47 阅读
  5. Elasticsearch 优化思路

    2024-03-20 09:36:02       58 阅读
  6. MySQL语句

    2024-03-20 09:36:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-20 09:36:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-20 09:36:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-20 09:36:02       82 阅读
  4. Python语言-面向对象

    2024-03-20 09:36:02       91 阅读

热门阅读

  1. 领跑多平台时代的C#语言全面解读

    2024-03-20 09:36:02       42 阅读
  2. ROS分布式多机通信(主从机配置)

    2024-03-20 09:36:02       28 阅读
  3. FFmpeg-- c++实现:pcm和yuv编码

    2024-03-20 09:36:02       37 阅读
  4. 播放器视频卡顿,延迟的原因

    2024-03-20 09:36:02       135 阅读