首页 > 其他分享 >ELK日志收集之ES基础概念及索引增删改查别名

ELK日志收集之ES基础概念及索引增删改查别名

时间:2024-09-28 18:50:13浏览次数:13  
标签:ELK 9200 GET 改查 索引 localhost 分片 curl ES

一、ES核心基本术语

集群(Cluster):由一个或多个节点组成的网络,共同提供索引和搜索功能。每个集群都有一个唯一的集群ID。

#查看集群名字和UUID
curl -X GET "localhost:9200"

节点(Node):构成集群的基本单元,每个节点都有一个唯一的ID,并且可以存储数据。

#查看所有节点信息
curl -X GET "localhost:9200/_cat/nodes"
#查看所有节点详细信息  ?v 参数表示带上详细信息
curl -X GET "localhost:9200/_cat/nodes?v"

索引(Index):类似于传统数据库中的数据库,是拥有相同结构文档的集合。每个索引都有一个名称,用于存储和检索特定类型的数据。ES中一切皆索引,数据无索引将无法查询,一个索引至少有一个分片。

#查看所有索引
curl -X GET "localhost:9200/_cat/indices?v"
#查看特定索引(例如索引名为my_index)的信息  ?pretty响应格式化为JSON
curl -X GET "localhost:9200/my_index?pretty"

索引规范

索引名称不要以".","_"开头;
索引名称必须小写;
生产环境中禁令避免使用通配符,尤其是删除操作;

文档(Document):实际存储数据的基本单元,相当于关系型数据库中的行。每个文档都是一个JSON对象,包含一组键值对,代表一个具体的实体或记录。

#index_name要查询的索引的名称,document_id要查看的文档的ID
curl -X GET "localhost:9200/index_name/_doc/document_id"

字段(Field):文档中的键值对,代表特定属性或数据项。每个字段都有一个数据类型(如字符串、整数、日期等)和相关的设置。

#index_name要查询的索引的名称 返回该索引的映射信息,包括每个字段的类型和配置  ?pretty响应格式化为JSON
curl -X GET "localhost:9200/index_name/_mapping?pretty"

ES中索引/文档/字段与MYSQL数据库对比

ES服务

数据库databases

索引index

表tables

文档document

行row

域字段fields

字段columns

分片(Shard):索引的逻辑分区,用于水平分割数据,提高存储和查询的可扩展性。每个分片都是一个独立的Lucene索引,可以在集群的不同节点上分布。

#查看集群中的主分片分配情况 grep -w p精准查找主分片p
curl -X GET "localhost:9200/_cat/shards" | grep -w p
#查看集群中的主分片分配情况 ?h 要显示的列
curl -X GET "localhost:9200/_cat/shards?h=index,shard,prirep,state,docs,store,ip,node" | grep -w p

分片可以是主分片(primary shard)或副本分片(replica shard)

主分片可用于读写,副本分片用户只读。
主分片是索引中数据的主要部分,如果丢失或无法使用,则该分片的数据将不可搜索。
副本分片是主分片的副本,用于高可用性和提供冗余。

副本(Replica):分片的拷贝,用于提供数据冗余、提高查询性能和保证高可用性。每个主分片可以有零个或多个副本分片。

#查看集群中的主分片分配情况 grep -w p精准查找主分片r
curl -X GET "localhost:9200/_cat/shards" | grep -w r

ELK日志收集之ES基础概念及索引增删改查别名_概念

集群分片与颜色的关系  集群颜色有绿色、黄色和红色

主分片状态

副本分片状态

集群健康颜色

所有主分片正常

所有副本分片正常

绿色

所有主分片正常

不是所有副本分片都正常

黄色

有主分片不正常

无论副本分片是否正常

红色

映射(Mapping):定义了索引中文档的结构,包括字段的数据类型、分析器设置等。映射决定了如何索引和搜索文档中的数据。

类型(Type):在Elasticsearch 7.x之前的版本中,一个索引可以包含多个类型,用于存储不同类型的文档。自Elasticsearch 7.0起,单一类型索引成为标准,类型概念已被弃用。

分析器(Analyzer):负责将文本字段分解为词汇单元,并进行标准化处理。分析器在索引和搜索时分别应用于文本,确保查询与索引数据的一致性。

二、ES中API接口 _cat命令详解

使用curl命令查看

#查看集群健康状态
curl -X GET "localhost:9200/_cat/health?v"
#查看所有节点信息
curl -X GET "localhost:9200/_cat/nodes?v"
# 查看所有索引及其相关信息
curl -X GET "localhost:9200/_cat/indices?v"
#查看所有分片信息
curl -X GET "localhost:9200/_cat/shards?v"
#查看特定索引的段信息
curl -X GET "localhost:9200/_cat/segments/my_index?v"
#查看索引文档数
curl -X GET "localhost:9200/_cat/count/my_index?v"
#查看节点磁盘和内存分配信息
curl -X GET "localhost:9200/_cat/allocation?v"
#查看集群中索引恢复状态
curl -X GET "localhost:9200/_cat/recovery?v"
#查看线程池信息
curl -X GET "localhost:9200/_cat/thread_pool?v"

使用postman接口测试工具查看

#新建一个get请求 查看集群健康状态
http://192.168.77.176:9200/_cat/health?v

ELK日志收集之ES基础概念及索引增删改查别名_别名_02

三、ES索引管理API  官方文档

1.查看索引  查看get请求

#查看索引 
#查看所有的索引的详细信息 
http://192.168.77.176:9200/_cat/indices?v

ELK日志收集之ES基础概念及索引增删改查别名_API_03

2.创建索引 创建put请求

#创建默认索引,默认是一个分片和一个副本
http://192.168.77.176:9200/alibaby005

ELK日志收集之ES基础概念及索引增删改查别名_API_04

#创建指定的分片 分片指定3 副本还是默认的一个
http://192.168.77.176:9200/alibaby006
#body内容 json格式
{
    "settings":{
        "number_of_shards": 3
    }
}

ELK日志收集之ES基础概念及索引增删改查别名_别名_05

ELK日志收集之ES基础概念及索引增删改查别名_概念_06

#创建指定的分片和副本 指定分片5 副本2 
http://192.168.77.176:9200/alibaby007
#body内容 json格式
{
    "settings":{
        "number_of_shards": 5,
        "number_of_replicas":2
    }
}

ELK日志收集之ES基础概念及索引增删改查别名_索引_07

ELK日志收集之ES基础概念及索引增删改查别名_别名_08

3.修改索引 修改put请求

#修改副本
http://192.168.77.176:9200/alibaby007/_settings
#body内容 json格式
{
    "number_of_replicas": 1
}
#修改分片,无法修改 报错Can't update non dynamic settings
http://192.168.77.176:9200/alibaby007/_settings
#body内容 json格式
{
    "number_of_shards": 3
}

4.删除索引 删除delete请求

#删除索引
#删除单个索引
http://192.168.77.176:9200/alibaby005
#基于通配符删除多个索引
http://192.168.77.176:9200/alibaby*

ELK日志收集之ES基础概念及索引增删改查别名_索引_09

5.关闭和打开索引 post请求  删除前先关闭一段时间

#关闭索引 alibaby005
http://192.168.77.176:9200/alibaby005/_close
#打开索引 alibaby005
http://192.168.77.176:9200/alibaby005/_open

ELK日志收集之ES基础概念及索引增删改查别名_概念_10

四、索引别名 

1.查看索引别名 get请求

#查看索引别名
http://192.168.77.176:9200/_aliases

2.添加索引别名 post请求

#添加索引别名 可以将多个索引打上同一个别名
http://192.168.77.176:9200/_aliases
#body内容  josn格式
{
    "actions": [
         {
            "add": {
                "index": "alibaby005",
                "alias": "alibaby007_7.17.5"
            }
        },
           {
            "add": {
                "index": "alibaby007",
                "alias": "alibaby007_7.17.5"
            }
        }
    ]
}

ELK日志收集之ES基础概念及索引增删改查别名_索引_11

3.修改索引别名 post请求 remove---add

#修改索引别名
http://192.168.77.176:9200/_aliases
#body内容  josn格式
{
    "actions": [
        {
            "remove": {
                "index": "alibaby007",
                "alias": "alibaby007_7.17.5"
            }
        },
         {
            "add": {
                "index": "alibaby007",
                "alias": "alibaby007_2024"
            }
        }
    ]
}

4.删除别名 post请求

#删除别名
http://192.168.77.176:9200/_aliases
#body内容  josn格式
{
    "actions": [
        {
            "remove": {
                "index": "alibaby007",
                "alias": "alibaby007_2024"
            }
        }
    ]
}

五、问题排查

1.分片数量不能修改   报错Can't update non dynamic settings

一旦分片数量修改,将无法正确找到数据。因为每条数据的唯一document_id已经分配到各自的分片上,当利用document_id进行查找时,利用文档写入分片编号计算公式={ hash(document_id) % (num_of_primary_shards},修改分片数量,可能无法定位到指定的分片,导致无法正确查找数据。

#如果需要改变分片数量,解决方案通常包括以下几个步骤:
创建新索引:创建一个具有所需分片数量的新索引。
重新索引数据:使用 Reindex API 将数据从旧索引迁移到新索引。
切换别名: 使用索引别名,将写入和搜索操作指向新索引。
删除旧索引:当确认数据已经迁移完成且无误后,可以删除旧索引。


标签:ELK,9200,GET,改查,索引,localhost,分片,curl,ES
From: https://blog.51cto.com/alibaby/12137029

相关文章

  • 列表的增删改查
    列表方法:增删改查1.增:append(),extend(),insert()2.删:pop(),remove(),clear(),del3.改:修改单个元素,修改多个元素4.查:index(),count(),切片,索引一.增:增加元素方法一:append语法格式:列表名.append(元素) append()只接受一个参数,当参数为元组,列表,字典........
  • 字符串的增删改查
    一.增:增加元素方法一:使用"+"/"*"语法格式:"字符串1"+字符串"2"*数值... 注:以下例子以两个元素进行举例,当使用"+"对两个字符串进行拼接时,注意:此时拼接出的新字符串中间是没有空格的.字符串与字符串直接没有"*"这个方法a='李二牛'b='王艳兵'c=a+bprint(c)......
  • 字典的增删改查
    一.字典的基础知识    1.字典的创建    2.字典中的键与值二.字典方法:增删改查        1.增:setdefault(),update(),通过键名添加        2.删:pop(),popitem(),clear()        3.改:通过键名修改,update()        4.查:ge......
  • ESXi 5.5 系统克隆到SD卡或USB磁盘上
    对于如何将安装在本地磁盘上的ESXi系统克隆到SD卡或USB磁盘上,以便快速实现ESXi主机的VSAN-Ready状态。正好猫猫也有点兴趣,所以,就研究了下这个方式,大致的工作思路就是“先通过dd命令将ESXi系统克隆到VMFSDatastore成为一个文件,然后再从文件弄到SD卡或USB磁盘即可”。具体操作步骤......
  • 随机森林(Random Forest)实现足球大小球数据分析推荐思路
    前言随机森林(RandomForest)是一种集成学习方法,它通过构建多个决策树并将它们的预测结果进行汇总来提高预测的准确性和稳定性。在足球比赛的大小球预测中,大小球通常指的是一场比赛中进球总数的预测,比如是否超过或低于某个特定的阈值(如2.5球)。下面是如何使用随机森林来实现足球......