日志收集Day003

1.索引模板

查看所有索引模板

GET 10.0.0.101:9200/_template

2.查看单个索引模板

GET 10.0.0.101:9200/_template/.monitoring-es

3.创建索引模板

POST 10.0.0.101:9200/_template/lxctp

{
    "aliases": {
        "DBA": {},
        "SRE": {},
        "K8S": {}
    },
    "index_patterns": [
        "lxc*"
    ],
    "settings": {
        "index": {
            "number_of_shards": 4,
            "number_of_replicas": 1
        }
    },
    "mappings": {
        "properties":{
            "ip_addr": {
                "type": "ip"
            },
            "access_time": {
                "type": "date"
            },
            "name": {
                "type": "keyword"
            }
        }
    }
}

以上模板为所有索引lxc开头的模板,设置了分片数量为4,副本数量为1,同时做了数据映射。

2.DSL

2.1查询,主要有如下三种,相比第一种,第二种是整词匹配,只会匹配名字为张天天的,第三种,则是匹配所有

{
  "query":{
      "match":{
          "name":"张天天"
       }
   } 
}

{
  "query":{
      "match_phrase":{
          "name":"张天天"
       }
   } 
}

{
  "query":{
      "match_all":{
       }
   } 
}

2.2分页查询,"size":3表示每页展示三条数据, "from":9,表示跳过前面9条数据,从第10条开始展示,即第四页。

{
  "query":{
      "match":{
          "name":"张天天"
       }
   },
  "from":9
  "size":3 
}

2.3查看指定字段,之前查看的都是全部字段,可以用_source查看指定字段

如下,查看所有数据的price和name,字段顺序会影响显示的顺序

{
    "query":{
         "math_all":{
          }
     },
    "_source":["price","name"]
}

效果等同于sql的select price,name from 表名

2.4查看指定字段是否存在

{
    "query": {
        "exists" : {
            "field": "price"
        }
    }
}

如果price字段存在,则会显示所有结果,如果不存在,则不显示结果

2.5排序,将查出来数据,按price升序排序

{
    "query": {
        "match_all" : {
        }
    },
    "price":{
             "order": "asc"
        }
}

上面语句作用类似于sql的select * from 表名 order by price asc;

降序排序则是desc

2.6多条件查询1:查看作者是张天天且商品价格为24.90(所有条件都满足)

{
    "query": {
        "bool": {
            "must": [
                {
                    "match_phrase": {
                        "auther": "张天天"
                    }
                },
                {
                    "match_phrase": {
                        "price": 24.90
                    }
                }
            ]
        }
    }
}

多条件查询2:查看作者是张天天或李飞飞且商品价格为168或198(所有条件满足指定数量,这里是两个)

{
    "query": {
        "bool": {
            "should": [
                {
                    "match_phrase": {
                        "auther": "李飞飞"
                    }
                },
                {
                    "match_phrase": {
                        "auther": "张天天"
                    }
                },
                {
                    "match": {
                        "price": 168.00
                    }
                },
                {
                    "match": {
                        "price": 198.00
                    }
                }
            ],
         "minimum_should_match": 2
        }
    }
}

多条件查询3:查询作者不是李飞飞和张天天,商品价格为9.9或19.9,省份为内蒙古

{
    "query": {
        "bool": {
            "must_not": [
                {
                    "match_phrase": {
                        "auther": "于萌"
                    }
                },
                {
                    "match_phrase": {
                        "auther": "高超"
                    }
                }
            ],
            "should": [
                {
                    "match": {
                        "price": 9.9
                    }
                },
                {
                    "match": {
                        "price": 19.9
                    }
                }
            ],
             "minimum_should_match": 1,
             "must": [
                {
                    "match": {
                        "province": "内蒙古"
                    }
                }
            ]
        }
    }
}

过滤

{
  "query":{
     "bool":{
        "filter":{
            "range": {
                    "price": {
                        "gte": 3599,
                        "lte": 10500
                    }
                  }
         }
     }
  }
}

聚合查询(统计最大价格,最小价格,平均价格,价格总和)

{
     "aggs": {
        "shopping_max": {
            "max": {
                "field": "price"
            }
        },
        "shopping_min": {
            "min": {
                "field": "price"
            }
        },
        "shopping_avg": {
            "avg": {
                "field": "price"
            }
        },
        "shopping_sum": {
            "sum": {
                "field": "price"
            }
        }
    },
     "size": 0
}

另外一个聚合查询,统计数量

{
    
    "aggs": {
        "shopping_group": {
            "terms":{
                "field": "group"
            }
        }
    },
    "size": 0
}

3.集群数据迁移

3.1集群内数据迁移:

POST  10.0.0.101:9200/_reindex

{

    "source": {

        "index": "shopping"

    },

    "dest": {

        "index": "shopping-new"

    }

}

3.2不同集群数据迁移

es6迁移es7,es7端口9200,es6端口19200

1.所有节点修改配置文件并重启服务

vim /etc/elasticsearch/elasticsearch.yml

添加:reindex.remote.whitelist: "10.0.0.*:19200"

systemctl restart elasticsearch.service

2.迁移数据:POST http://10.0.0.101:9200/_reindex

{
    "source": {
        "index": "old",
        "remote": {
            "host": "http://10.0.0.101:19200"
        },
        "query": {
            "bool": {
                "filter": {
                    "range": {
                        "age": {
                            "gt": 25
                        }
                    }
                }
            }
        }
    },
    "dest": {
        "index": "newmessage"
    }
}


4.ES集群健康状态API

_cluster/health

curl http://10.0.0.103:9200/_cluster/health

curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq

查看集群状态
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .status

查看集群活跃分片百分比
curl http://10.0.0.103:9200/_cluster/health 2>/dev/null| jq .active_shards_percent_as_number

5.分片的重路由

(1)将indexa"索引的0号分片从elk102节点移动到elk101节点。
POST http://10.0.0.101:9200/_cluster/reroute

{
    "commands": [
        {
            "move": {
                "index": "indexa",
                "shard": 0,
                "from_node": "elk101.lxcedu.com",
                "to_node": "elk102.lxcedu.com"
            }
        }
    ]
}


    (2)取消副本分片的分配,其副本会重新初始化分配。
POST http://10.0.0.101:9200/_cluster/reroute

{

    "commands": [

        {

            "cancel": {

                "index": "indexaa",

                "shard": 0,

                "node": "elk103.lxcedu.com"

            }

        }

    ]

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值