Elasticsearch 8.2:多节点集群搭建与Python连接

Elasticsearch搭建,用户名密码+证书的方式认证

当前有两个服务器,ip分别为192.168.171.81192.168.171.25,我们需要搭建一个es集群。

首先下载elasticsearch-8.2.0-linux-x86_64.tar.gz,分别拷贝到这两台服务器中,进行解压。

需要注意的是,我们要在启动Elasticsearch服务之前,就需要配置elasticsearch.yml

在第一台服务器修改config/elasticsearch.yml,内容如下:

network.host: 192.168.171.81
transport.host: 192.168.171.81
cluster.name: my_cluster # 可以不写,默认为elasticsearch
node.name: node1 # 可以不写,默认为当前服务器名
# node.roles: [ data, master ] # 可以不写, 默认为cdfhilmrstw

ingest.geoip.downloader.enabled: false # 关闭下载geoip数据库

角色列表如下:
在这里插入图片描述

然后修改文件config/jvm.options,内容如下:

-Xms4g
-Xmx4g

启动第一台服务器的es:./bin/elasticsearch
出现下面,说明启动成功:
在这里插入图片描述
默认密码有点难记,我们修改密码:
./bin/elasticsearch-reset-password -u elastic -i
在这里插入图片描述
验证是否成功:
curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/",其中123456是我刚才设置的密码,返回如下:
在这里插入图片描述
说明节点正常启动了。
然后检查一下集群节点:curl --insecure -u elastic:123456 -XGET "https://192.168.171.81:9200/_cat/nodes"
在这里插入图片描述
可以看到当前只有一个节点。

当前elasticsearch.yml文件自动进行了更新:
在这里插入图片描述

如果要一台新的服务器加入进来,需要生成一个token,有了这个token就可以让一台新节点自动加入到集群,./bin/elasticsearch-create-enrollment-token -s node

在这里插入图片描述

接下来配置第二台服务器。 更第一台配置一样,修改./config/elasticsearch.yml

network.host: 192.168.171.25
transport.host: 192.168.171.25
cluster.name: my_cluster 
node.name: node2 
node.roles: [ data, master ] # 可以不写, 默认为cdfhilmrstw

修改config/jvm.options:

-Xms4g
-Xmx4g

然后在讲这台节点加入es集群中:./bin/elasticsearch --enrollment-token eyJ2ZXIiOiI4LjIuMCIsImFkciI6WyIxOTIuMTY4LjE3MS44MTo5MjAwIl0sImZnciI6Ijk5MGI4NDllNGVkNDk0NmEwYzAzZDdkZDk4YzQwMTg0MzllNGQ5M2E0NDExNjM5MTAxY2QwOTdkZGEzNmI5NTkiLCJrZXkiOiI0dVVjQUlFQktyU0dWdy1YSXlfVTpLYjBWaW1zZ1FkZTdxQ3dHamZJYUNnIn0=

然后在第一台节点终端显示:
在这里插入图片描述
检查node2的状态:
curl --insecure -u elastic:123456 -XGET "https:/192.168.171.25:9200/"
在这里插入图片描述
可以看到node2也成功启动了。

查看node2的配置文件elasticsearch.yml:
在这里插入图片描述
说明使用enrollment-token可以自动进行配置。下次就不需要了。

检查集群节点:
在这里插入图片描述
可以看见集群里有两个节点。

kibana配置

kibana下载对应的8.2.0版本,然后直接运行./bin/kibana,在浏览器中输入对应的url,
在这里插入图片描述
然后在elasticsearch中通过命令生成token./elasticsearch-create-enrollment-token --scope kibana,然后将token配置到kibana中的页面。

使用上面的修改的用户名elastic密码123456进行登录。

Python连接

安装 pip install elasticsearch

检查版本:pip list | grep elasticsearch

elasticsearch 8.2.0

将es节点中的config/cert/http_ca.crt拷贝到本地。

from elasticsearch import Elasticsearch

es = Elasticsearch('https://elastic:123456@192.168.171.81:9200',
                   ca_certs = './http_ca.crt',
                   verify_certs=True)
data = {
    "name": "灭绝师太",
    "age": "49",
    "sex": "f",
    "address": "峨眉山",
    "sect": "峨眉派",
    "skill": "倚天剑",
    "power": "70",
    "create_time": "2022-05-08 23:16:53",
    "modify_time": "2022-05-08 23:16:59"
}
resp = es.index(index="example_index", id=1, body=data)
print(resp)

返回添加数据成功即可。

CURL 方式访问

ES使用了用户名、密码,同时使用了证书的方式进行认证。

使用CURL不安全的方式进行访问:curl --insecure -u elastic:123456 -XGET "https://ip:9200/db/_search",这种方式不需要指定证书,只需要用户名和密码就可以访问。

使用CURL安全的方式进行访问:curl --cacert /home/usr/app/elasticsearch-8.2.0/config/certs/http_ca.crt -u elastic:123456 -XGET 'https://ip:9200/db/_search',这种方式将用户名密码,同时结合证书进行访问。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值