更新时间:2024-11-20 GMT+08:00

通过Curl命令行接入Elasticsearch集群

开源Elasticsearch提供了一系列RESTful风格的API,通过Curl命令可以在Kibana、Postman等工具中使用这些API。本文介绍如何通过Curl命令接入Elasticsearch和OpenSearch集群。

前提条件

  • CSS服务的Elasticsearch和OpenSearch集群处于可用状态。
  • 已创建一个ECS服务,且和CSS服务的集群在同一个虚拟私有云和安全组中。
    • 如果ECS和CSS服务的集群不在同一安全组中,请修改ECS安全组或者配置ECS安全组的出入规则,允许集群所有安全组的访问。修改操作请参见配置安全组规则
    • ECS的使用请参见自定义购买ECS

接入集群

  1. 获取集群的内网访问地址。访问集群时,需要输入内网访问地址。

    本文以内网IP地址方式访问集群为例,当使用其他网络配置访问集群时,仅访问地址有差异,不同访问地址的获取方式请参见网络配置

    1. 在云搜索服务管理控制台,单击左侧导航栏的“集群管理”
    2. 在集群管理列表页面,选择需要访问的集群,在“内网访问地址”列获取并记录集群的内网IP地址<host>,一般是“<host>:<port>”“<host>:<port>,<host>:<port>”样式。

      当集群只有一个节点时,此处仅显示1个节点的IP地址和端口号,例如“10.62.179.32:9200”;当集群有多个节点时,此处显示所有节点的IP地址和端口号,例如“10.62.179.32:9200,10.62.179.33:9200”

  2. 在ECS中执行如下命令,访问集群。集群的安全模式不同,访问命令也不同。
    • 非安全模式的集群
      curl "http://<host>:<port>"
    • 安全模式+HTTP协议的集群
      curl -u <user>:<password> "http://<host>:<port>"
    • 安全模式+HTTPS协议的集群
      curl -u <user>:<password> -k "https://<host>:<port>"
    表1 变量说明

    变量名

    说明

    <host>

    集群中各节点的IP地址,当集群包含多个节点时,会存在多个IP地址,可以任选其中一个发送。

    <port>

    集群节点的访问端口号,一般为9200。

    <user>

    访问集群的用户名。

    <password>

    用户名对应的密码。

    当密码中存在特殊字符时,请将用户名和密码加上单引号进行强引用,例如“curl -u 'user':'password!' "http://<host>:<port>"”

    访问示例如下:

    curl "http://10.62.176.32:9200"

    返回结果如下:

    HTTP/1.1 200 OK
    content-type: application/json; charset=UTF-8
    content-length: 513
    
    {
    	"name" : "xxx-1",
    	"cluster_name" : "xxx",
    	"cluster_uuid" : "xxx_uuid",
    	"version" : {
    		"number" : "7.10.2",
    		"build_flavor" : "oss",
    		"build_type" : "tar",
    		"build_hash" : "unknown",
    		"build_date" : "unknown",
    		"build_snapshot" : true,
    		"lucene_version" : "8.7.0",
    		"minimum_wire_compatibility_version" : "6.7.0",
    		"minimum_index_compatibility_version" : "6.0.0-beta1"
    	},
    	"tagline" : "You Know, for Search"
    }

    更多命令,请参见Elasticsearch官方文档