0%

前言:已经完成了es单节点搭建和kibana的搭建,还不知道的可以点击跳转

Linux搭建es集群(一)

Linux搭建es集群(二)

1、先将elastic拷贝到另外准备好的两台服务器中,同时在两个服务器新增es用户

1
scp -r root@192.168.152.135:/opt/elasticsearch/ /opt/

image-20230219160251283

image-20230219155913193

2、修改192.168.152.135服务器的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 集群名称,保证唯一
cluster.name: es
# 节点名称,必须不一样
node.name: node1
#是不是有资格成为主节点
#ip地址.
network.host: 0.0.0.0
#端口
http.port: 9200
#内部节点之间沟通端口
transport.tcp.port: 9300
#是否符合成为主节点的条件
node.master: true
#是否存储数据
node.data: true
#数据存储路径,记得赋权给es用户
path.data: /data01/es
#日志存储路径
path.logs: /data01/logs
#内存锁定,是否禁用交换
bootstrap.memory_lock: false
#系统调用过滤器
bootstrap.system_call_filter: false
#最大集群节点数
#node.max_local_storage_nodes: 3
#节点发现
discovery.zen.ping_timeout: 120s
discovery.zen.ping.unicast.hosts: ["192.168.152.135","192.168.152.135","192.168.152.135"]
#是否允许跨源Rest请求
#client.cors.enabled: true
#允许的源地址
http.cors.allow-origin: "*"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
cluster.name: es
node.name: node2
network.host: 0.0.0.0
http.port: 9200
node.master: true
node.data: true
path.data: /data01/es
path.logs: /data01/logs
#node.max_local_storage_nodes: 3
transport.tcp.port: 9300
discovery.zen.ping_timeout: 120s
discovery.zen.ping.unicast.hosts: ["192.168.152.135","192.168.152.135","192.168.152.135"]
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.allow-origin: "*"
1
2
3
4
5
6
7
8
9
10
11
12
13
cluster.name: es
node.name: node3
network.host: 0.0.0.0
http.port: 9200
node.master: true
node.data: true
path.data: /data01/es
path.logs: /data01/logs
node.max_local_storage_nodes: 3
transport.tcp.port: 9300
discovery.zen.ping_timeout: 10s
discovery.zen.ping.unicast.hosts: ["192.168.152.135","192.168.152.135","192.168.152.135"]
http.cors.allow-origin: "*"

3、分别启动三个服务器的es,然后随便使用一个服务器访问,可以看到三个节点已经启动

1
curl -XGET http://192.168.152.135:9200/_cat/nodes

image-20230219191138457

4、修改kibana配置

1
2
3
4
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.152.135:9200","http://192.168.152.137:9200","http://192.168.152.139:9200"]
kibana.index: ".kibana"

image-20230219200151850

5、启动kibana又报错了,版本一致!版本一致!版本一致!再来一个kibana,步骤省略

image-20230219165540044

image-20230219165719252

6、查看页面,顺便搞个索引试试,

image-20230219200334763

7、基本集群已经可用了,还有一个遗漏的就是集群的安全认证,首先生成证书,一路回车先不设置密码账户

1
2
./bin/elasticsearch-certutil ca
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

image-20230219204607526

8、将生成的证书同步到其他节点

image-20230219202149551

9、修改每一个节点的elasticsearch.yml配置文件,添加证书配置,重启所有节点

1
2
3
4
5
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

10、设置密码,在一个节点设置即可,会自动同步到其他节点

1
./bin/elasticsearch-setup-passwords interactive

image-20230219204802461

7、修改kibana配置

1
2
elasticsearch.username: "elastic"
elasticsearch.password: "Aa123456"

8、页面查看,可以看到已经能正常访问

image-20230219205443455

image-20230219205503883

image-20230219205526577

总结:完结撒花,其实并不是很复杂,但是需要细心,很多错误其实可以避免

前言:在上一章节已经完成了单机版本的es搭建,还不知道的可以点击跳转Linux搭建es集群(一)

1、先搭一个kibana面板方便查看es,下载一个kibana,注意下载对应版本,我开始下载的5.6.3版本就是教训,导入到服务器中

image-20230219154406440

2、修改配置文件kibana.yml

1
2
3
4
5
6
server.host: "0.0.0.0"
#一定要加http,不然会报错无法解析
elasticsearch.hosts: ["http://192.168.152.135:9200"]
i18n.locale: "zh-CN"
elasticsearch.username: "elastic"
elasticsearch.password: "Aa123456"

3、启动然后查看页面,kibana搭建完成(kibana登录密码就是开始搭建es时候设置的密码);

1
su es ./bin/kibana

image-20230219155100683

前言:搭建es集群,

IP 服务 位置
192.168.152.135 elasticsearch、kibana /opt/elasticsearch;/opt/kibana-6.8.4
192.168.152.137 elasticsearch /opt/elasticsearch
192.168.152.139 elasticsearch /opt/elasticsearch

先在152.135服务器搭建一个es单节点,

1、下载es的安装包,点击下载

2、导入服务器,再解压

1
tar -xvzf elasticsearch-6.8.0.tar.gz -C /opt/

3、es不允许使用root账户启动,所以需要添加一个新的用户

1
2
3
useradd es #用户名
passwd es #设置用户的密码
chown -R es:es elasticsearch #设置权限

image-20230219134844394

4、修改es的配置文件elastisearch.yml

1
2
3
4
5
cluster.name: es    #elasticsearch的集群名称
node.name: node1 #节点名称
network.host: 0.0.0.0 #设置0.0.0.0代表允许外网访问
http.port: 9200 #http访问端口
cluster.initial_master_nodes: ["node1"] #初始化新集群时需要通过该配置来选举master,如果报错就先将该配置注释掉

image-20230219134232803

5、关闭防火墙

1
2
3
4
5
6
#查看防火墙状态
systemctl status firewalld
#关闭防火墙
systemctl stop firewalld
#永久关闭
systemctl disable firewalld

image-20230219135743578

6、启动elasticsearch

1
2
#后台启动
/opt/elasticsearch/bin/elasticsearch -d

7、遇到一个问题,同样记录,

image-20230219140355501

初步是es的一个配置权限,还有一个logs目录权限,进入对应目录查看状况:

image-20230219140502576

image-20230219140853416

果不其然,找个keystore文件的权限是root,知道问题了,修改也很简单,修改文件的权限即可:

1
2
3
4
#修改配置文件权限
chown -R es:es elasticsearch.keystore
#修改日志文件权限
chown -R es:es ../logs/*

image-20230219140639342

image-20230219140948237

8、再次启动,再次出现问题

image-20230219144016665

9、修改配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#1.最大可创建文件数太小
vim /etc/security/limits.conf
#在文件末尾中增加下面内容
* soft nofile 65536
* hard nofile 65536
* soft nproc 2048
* hard nproc 4096
vim /etc/security/limits.d/90-nproc.conf
#在文件末尾中增加下面内容,*代表Linux所有用户名称
* soft nofile 65536
* hard nofile 65536
* hard nproc 65536

#2.最大虚拟内存太小
vim /etc/sysctl.conf
#在文件中增加下面内容
vm.max_map_count=655360
#重新加载,输入下面命令:
sysctl -p

image-20230219135342384

10、再再次启动,页面查看,启动成功

image-20230219144404141

image-20230219144347639

11、单机版本到此就搭建完毕…等等,好像不对,还木有配置用户名密码登录,直接修改配置文件elasticsearch.yml

1
2
3
4
5
6
7
#配置X-Pack
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true

12、重启es,尴尬的是es本身木有重启命令,所以回归原始

1
2
3
ps -ef|grep elasticsearch #查找
kill -9 1429 #杀死端口
su es elasticsearch/bin/elasticsearch -d #启动

image-20230219152146449

13、设置用户名和密码,包含elastic、apm_system、kibana、logstash_system、beats_system、remote_monitoring_user五个系统的密码

1
./bin/elasticsearch-setup-passwords interactive

image-20230219152612647

14、over,登录页面查看,完事,

image-20230219152801168

15、一步一步完成了单机版的es搭建,下一步就开始集群的搭建,一起学习一起进步

以前写过很多次Aop切面,基于xml的配置方式,最近要求对每个接口进行权限校验,而不是页面,因为无法避免某个人没有页面权限,但是知道接口的情况,也刚好整理一下。

阅读全文 »

因工作需要,和大数据项目组有所交集,搭建部署一下hadoop,接下来会更进一步学习,毕竟大数据和物联网目前是比较热门的板块,有必要去学习,使用的阿里云服务器,先搭个单机版,主要看后面是否能使用docker来搭建集群。

阅读全文 »