admin管理员组

文章数量:1624793

一:elasticsearch7.16.2集群部署

服务器提供:3台linux服务器(例如:127.0.0.1、127.0.0.2、127.0.0.3)

策略开通: 确保1127.0.0.1、127.0.0.2、127.0.0.3 与 128.0.0.1( mysql所在服务器) 之间相互通信正常(如:9201、9202、9203、9301、9302、9303端口可用)

目标:

1. 127.0.0.1 服务器部署es集群的第一个结点 node-1, 127.0.0.2 部署es集群的第二个结点 node-2,127.0.0.3部署es集群的第三个结点 node-3。 (注意:如果测试环境只有一台服务器,也可以部署集群,只不过此时部署的是伪集群,为防止端口占用,需将每个结点的对外端口设置不一样)

2. 在ngix 上配置 node-1, node-2, node-3三个结点的地址,实现负载均衡对外提供一个统一的访问ip。

3. 在windows服务器安装可以查看es的可视化工具(选择性安装kibana 或ElasticHD 或 直接通过浏览器查看:http://135.0.0.1/WEB/es/_search?)(注意:135.0.0.1是ngix所在服务器,允许对外访问)

4. 127.0.0.1 再部署logstash(实现将mysql数据同步到es里)。

elasticsearch-linux版安装包下载(可去es官网下):

elasticsearch-linux-x86-64版本-Java文档类资源-CSDN下载

logstash-linux版安装包下载(可去es官网下):

logstash-7.16.2-linux-x86-64版-Java文档类资源-CSDN下载

logstash的配置文件实例请下载:

https://download.csdn/download/m0_37951794/87897239

部署127.0.0.1(node-1结点)

1. 用非root用户登录服务器(原因: es必须非root用户才能启动成功)

例如:用 esuser 用户登录

2. 用 esuser用户登录后,在 /home/esuser/ 目录下新建es文件夹,将elasticsearch-7.16.2.tar.gz的安装包上传到 /home/esuser/es/目录下解压:

tar -zcvf elasticsearch-7.16.2.tar.gz

如果上传的是elasticsearch-7.16.2.zip 则用如下命令解压:

unzip elasticsearch-7.16.2.zip

如果上传的是elasticsearch-7.16.2.tar 则用:

tar -xvf elasticsearch-7.16.2.tar

3. 解压后修改配置文件(数据路径、日志路径、对外端口9201,集群内部交流端口9301):

配置文件内容:/home/esuser/es/elasticsearch-7.16.2/config/elasticsearch.yml

 4. 切换到root用户身份修改 sysctl.conf文件:

 su root

5. 编辑 /etc/sysctl.conf文件,在最后面追加一下内容:

vm.max_map_count=655360      (或者 262144)

当文件保存后执行: sysctl -p 

6. 在 elasticsearch.yml 文件配置好的前提下,用 esuser 身份进入/elasticsearch-7.16.2/bin/ 目录,启动 es 应用。

./elasticsearch -d

7. 检查应用是否正常启动

查看进程: ps -ef|grep elasticsearch

或者访问ur(如下图则启动正常): curl: http://localhost:9201

关闭进程: kill -9 进程号

另外: 如果后面集群 有结点没有加入进来,则:

将该结点下存放数据的/elasticsearch/data/nodes文件夹删除,再重启该结点即可。 

 部署127.0.0.2(node-2结点)

1. 步骤与上面结点1 基本一致,不同点在于 配置文件内容不同:

部署127.0.0.3(node-3结点)

 1. 步骤与上面结点1 基本一致,不同点在于 配置文件内容不同:

二:logstash部署

部署127.0.0.1(logstash数据同步)

1. 进入/home/esuser/es/目录,将 logstash-7.16.2.zip 的安装包上传到该目录下解压

unzip logstash-7.16.2.zip

2. 编辑logstash.conf文件的内容并将该文件放到/home/esuser/es/logstash-7.16.2/bin/目录下,如已提前配置好则无需操作此步骤

vim logstash.conf

保存并退出: 按ESC后,   :wq 或 :x

不保存退出: 按ESC后,    :q!

3. 将 连接 mysql 的驱动 mysql-connector-java-5.1.39.jar 放到 /logstash-7.16.2/bin 目录下。

4. 进入logstash-7.16.2/bin/ 目录,启动应用:

前台启动命令(验证时使用): ./logstash -f logstash.conf

后台启动命令(正式运行时使用): nohup ./logstash -f logstash.conf 2>&1 &

5. 检查应用是否正常启动

查看进程: ps -ef|grep logstash

关闭进程: kill -9 进程号

如下图则说明启动成功(前台启动验证时可看到):

6. 查看日志: /logstash-7.16.2/logs/logstash-plain.log

cat logstash-plain.log | grep '关键字'

(135.0.0.1)在nginx上配置es代理地址:

upstream esserver {

server 127.0.0.1:9201;      

server 127.0.0.2:9202;    

server 127.0.0.3:9203;  

}

server  {

     listen                 8000;

     server_name    localhost;

     location /WEB/app/ {   省略  }

     location /WEB/es/ {

          proxy_pass http://esserver;

          rewrite ^.+WEB/es/?(.*)$ /$1 break;

          proxy_set_header Host $host;

          proxy_set_header X-Real-IP $remote_addr;

          proxy_set_header x-forwarded-for $remote_addr;

      }

}

最后再浏览器查看验证es集群是否能正常访问

http://135.0.0.1: 8000/WEB/es/_search?

查看集群是否部署正常: curl http://127.0.0.1:9201/_cat/health?v

curl http://135.0.0.1:8000/IWEB/es/_cat/health?v

提供给java接口调用的引擎地址:

es_ip = 135.0.0.1

es_port = 8000

es_http = http

java调用引擎:

RestClient restClient = RestClient.builder(
    new HttpHost("135.0.0.1",8000,"http")).setPathPrefix("WEB/es/").build();
RestClientTransport transport = new RestClientTransport(restClient,new 
    JacksonJsonpMapper());
return new ElasticsearchClient(transport);

结束!

补充: 

1. logstash所在服务器内存占用超出范围,则 将 logstash目录里的jvm.option的最小最大值设置为: 256m  512m

2.查看内存占用情况:

ps auxw | head -1 ; ps auxw  |sort  -rn  -k4|head  -200  |grep  -e 'kkFileView'

 -e  'elasticsearch'  -e  'LibreOffice'  -e  'logstash'

3. nginx 启停命令:

a: 停止前端nginx

-- 验证nginx配置文件:

/usr/nginx/sbin/nginx -t

-- 停止nginx服务:

/usr/nginx/sbin/nginx -s stop

b: 启动nginx

-- 启动nginx应用:

/usr/nginx/sbin/nginx  -c  /usr/nginx/conf/nginx.conf

-- 验证是否启动成功:

curl 127.0.0.1:8000/nginx-status

c: 不启动只重载nginx:

/usr/nginx/sbin/nginx -s reload

本文标签: 集群功能文件内容全文