ElasticSearch 实战:es集群健康检查和简单的索引操作

在 Elasticsearch 实战中,对集群进行健康检查和执行简单的索引操作是日常管理和使用过程中必不可少的部分。以下是如何进行这些操作的详细步骤:

集群健康检查

通过 REST API 检查集群健康状况
  1. 使用 /_cluster/health API

    发送一个 GET 请求到 http://localhost:9200/_cluster/health(替换为实际 Elasticsearch 节点地址),可以获取集群的健康状态详细信息。例如:

    curl -X GET "http://localhost:9200/_cluster/health?pretty"
    

    结果将以 JSON 格式返回,包括以下关键信息:

    • status: 集群健康状态,可能的值为 green(健康)、yellow(警告)或 red(严重问题)。
    • timed_out: 指示请求是否超时。
    • number_of_nodes: 集群中活动节点的数量。
    • number_of_data_nodes: 数据节点的数量。
    • active_primary_shards: 活跃的主分片数。
    • active_shards: 活跃的分片总数(包括主分片和副本分片)。
    • relocating_shards: 正在迁移的分片数。
    • initializing_shards: 正在初始化的分片数。
    • unassigned_shards: 未分配的分片数。

    解释状态颜色

    • green: 所有主分片和副本分片都已分配,且所有节点均正常运行。
    • yellow: 所有主分片已分配,但部分副本分片未分配或不在最优位置(如可能未达到副本数目的设定值)。
    • red: 至少有一个主分片未分配,这意味着部分数据不可用。
  2. 使用 /_cat/health API

    如果需要更简洁的视图,可以使用 /_cat/health API:

    curl -X GET "http://localhost:9200/_cat/health?v"
    

    这将返回一个表格形式的结果,包含基本信息如时间戳、集群名、健康状态、节点总数等。

通过 Kibana Dev Tools Console 检查

如果您正在使用 Kibana,可以利用其内置的 Dev Tools Console 执行上述 API 请求:

  1. 登录 Kibana,导航到 Dev Tools

  2. 在 Console 窗口中输入与上述 curl 命令对应的 Elasticsearch 查询,如:

    GET _cluster/health
    

    GET _cat/health?v
    
  3. 点击 Execute 或按 Ctrl + Enter 执行查询,结果将在下方显示。

简单的索引操作

以下是一些常用的索引操作示例:

创建索引

假设要创建一个名为 products 的索引,用于存储商品信息。可以直接发送一个 PUT 请求:

curl -X PUT "http://localhost:9200/products"
添加文档

products 索引中添加一个商品文档:

curl -X POST "http://localhost:9200/products/_doc" -H 'Content-Type: application/json' -d'
{
  "product_id": "123",
  "name": "Product A",
  "description": "A great product",
  "price": 9.99,
  "category": "Electronics"
}
'
查询文档

查找所有价格低于 10 美元的商品:

curl -X GET "http://localhost:9200/products/_search" -H 'Content-Type: application/json' -d'
{
  "query": {
    "range": {
      "price": {
        "lt": 10
      }
    }
  }
}
'
更新文档

更新商品 ID 为 123 的价格:

curl -X PUT "http://localhost:9200/products/_doc/123" -H 'Content-Type: application/json' -d'
{
  "doc": {
    "price": 11.99
  }
}
'
删除文档

删除商品 ID 为 123 的文档:

curl -X DELETE "http://localhost:9200/products/_doc/123"
删除索引

删除整个 products 索引:

curl -X DELETE "http://localhost:9200/products"

这些基本操作构成了与 Elasticsearch 交互的核心部分。实际应用中,您可能还需要结合映射(Mapping)定义、复杂查询、聚合分析等功能进行更丰富的数据管理与查询操作。在 Kibana Dev Tools Console 中执行这些操作与使用 curl 类似,只需将命令粘贴到 Console 并执行即可。

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值