前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯云 Elasticsearch 运维篇(十二)API访问ES集群

腾讯云 Elasticsearch 运维篇(十二)API访问ES集群

原创
作者头像
南非骆驼说大数据
发布2020-02-21 22:00:39
4.1K0
发布2020-02-21 22:00:39
举报

前言

上一章节,我们通过腾讯云控制台快速搭建了一个ES集群,通过Kibana我们在公网能进行安全的访问。同时,我们在Kibana里边针对不同的索引需求新建了不同的账户进行登录测试。往往实际情况是我们在腾讯云上有多台主机,多个集群,我们需要通过内网去访问和操作ES集群,所以,今天来讲讲这个问题。

实际案例:比如我是一个IT公司的信息管理人员,我需要买200云上服务器。那么我就会首先找到腾讯云官网,通过自己的账号登录。根据自己的需求选型,最终下单购买。那么服务器购买的过程中,你肯定要考虑这个IP规划的问题。你既要考虑现在的需求、又要考虑后期的扩展与安全设置。请看下图:

云服务网络架构

总结: 从上面这个图里我们应该明白一个VPC标识一个专属私有网络,一个私有网络可以划分为多个子网,每个子网间的服务是连通的。VPC之间需要通过NAT或者专门的V**网管才能实现跨VPC访问。

解决了网络问题,我们继续说API访问ES集群。腾讯云 ES 构建在用户 VPC 内,用户可以通过位于同一 VPC 下的 CVM 作为客户端,访问 ES 集群。要连接ES集群,首先要知道ES集群的内网IP。

一、查看ES集群的内网地址

在控制台-集群列表页,单击【集群 ID】进入详情页,在基础配置中可查看内网地址。我这里IP是:10.1.0.7:9200

查看ES集群内部IP

二、构建CVM(云主机)

在自己构建的VPC里找一台云主机,如果没有,就新购一台云主机(CVM)。这里的IP为:10.1.0.14,与ES内网IP同网段

云主机IP

三、连接ES集群IP

因为我们是用云主机来测试ES集群的连通性,所以,我们就要用到Curl命令,那么我们使用Curl命令来操作测试ES集群。注意:可以通过 curl 的方式测试访问集群,但不支持通过 ping 的方式测试连通性。

第一步:测试服务是否可以访问:命令如下:curl -XGET http://10.1.0.7:9200 图示:

错误提示

提示需要安全认证,因为我们的版本为6.8.2白金版,其访问集群的时候需要用户认证。所以,使用如下命令来登录:

执行 curl -XGET -u elastic http://10.1.0.7:9200 命令,然后按要求提示输入密码即可。如下图:

Curl密码登录

返回结果:ES集群访问成功

Curl返回结果

当然,Curl口令默认参数就是-XGET,所以不用带,而且,"-u"参数也可以放到最后,所以,上面的命令也可以这样:

Curl命令认证使用

返回的结果跟上面一致:如下

curl 返回结果

四、基于CVM下来操作ES集群

第一:查看集群状态API选项 curl http://10.1.0.7:9200/_cat -u elastic

_cat API

第二:查看节点信息

使用命令: curl http://10.1.0.7:9200/_cat/nodes?v -u elastic ”-v“是现实详细信息

现实集群详细信息

第三. 查看master节点信息

curl http://10.1.0.7:9200/_cat/master?v -u elastic master一般用”*“作标识。

Master信息

第四、查看集群的健康状态

curl http://10.1.0.7:9200/_cat/health?v -u elastic

集群状态

可以看到我们的集群叫做"es-*",并且状态是绿色。无论何时我们去请求集群的健康状态我们会得到三种:green, yellow, red

  • green 意味着所有功能都是完好的
  • yellow 意味着所有数据是可用的,但是一些副本还没有被分配
  • red 代表一些数据由于某些原因已经不可用。注意,尽管一个集群是red状态,它仍然可以提供部分服务(比如,它会继续从可用的切片数据里搜索),但是在你失去部分数据后,你需要尽你最快的速度去修复它。

集群状态说明:

集群状态是反映集群是否在变更中或正常使用的状态,包括:正常、处理等,具体含义如下:

集群状态的含义

其中健康状态是 ES 集群众多监控信息中非常重要的一个,用来表征集群总体上是否工作正常。健康状态种类如下:

集群健康状态

第五:创建索引

curl -XPUT 比如:创建一个"test_hezhen"的索引 使用命令:curl -XPUT http://10.1.0.7:9200/test_hezhen?pretty -u elastic

CURL创建一个索引

第六:查看索引

curl 'http://10.1.0.7:9200/_cat/indices?v' -u elastic

查看索引

查看某一个索引使用如下命令:

curl -XGET 'http://10.1.0.7:9200/test_one/doc/_search?pretty' -H 'Content-Type: application/json' -u elastic

索引查询

第七:删除索引

删除索引

第八:创建文档

有两种方法:

1. 使用PUT来创建文档,需要指定id

curl -XPUT "http://10.1.0.7:9200/test_one/doc/1?pretty" -H "Content-Type: application/json" -d '{"name": "john", "age": 30}' -u elastic

创建文档

2. 使用POST来创建文档,可以不指定id(不指定时随机生成id)

curl -XPOST "http://10.1.0.7:9200/test_one/doc?pretty" -H "Content-Type: application/json" -d '{"name": "david", "age": 20}' -u elastic

创建文档

第九、 查看文档

curl http://10.1.0.7:9200/test_one/doc/1?pretty -u elastic 如下图

查看文档

或者curl http://10.1.0.7:9200/test_one/doc/_search?pretty -u elastic 如下图:

_search API

第十、替换或者更新文档

使用PUT并指定id时,es会使用新的文档替换原文档,如下:

curl -XPUT "http://10.1.0.7:9200/test_one/doc/1?pretty" -H "Content-Type: application/json" -d '{"name": "AAA", "age": 38}' -u elastic

替换或者更新文档

已经替换,再查看确认一下 curl "http://10.1.0.7:9200/test_one/doc/1?pretty" -u elastic

更新文档

文档替换成功。

第十一、删除文档

curl -XDELETE "http://10.1.0.7:9200/test_one/doc/1?pretty" -u elastic 如下图

删除文档

总结:

本节模拟CVM内网环境下如何通过去管理ES6.8白金版集群,并实现了对集群文档的CRUD,以及搜索等内容。CURL指令非常有效率的执行维护工作。有几点要注意:

1,elastic用户是系统默认的授权用户。

2,在通过公网登录Kibana去访问ES,有一定时间限制。如超过一定时间需要重新登录Kibana,否则会报认证错误。

3,执行curl 认证的登录ES的时候不需要把密码直接输入在控制台上。需要密文输入。否则报错。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
    • 一、查看ES集群的内网地址
      • 二、构建CVM(云主机)
        • 三、连接ES集群IP
          • 四、基于CVM下来操作ES集群
            • 第三. 查看master节点信息
          • 第四、查看集群的健康状态
            • 第五:创建索引
              • 第六:查看索引
                • 查看某一个索引使用如下命令:
              • 第七:删除索引
                • 第八:创建文档
                  • 第九、 查看文档
                    • 第十、替换或者更新文档
                      • 第十一、删除文档
                      • 总结:
                      相关产品与服务
                      命令行工具
                      腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档