详解ElasticSearch6.4.0集群搭建

最近在学习ES相关内容,为了方便自己使用,在本地虚拟机上搭建了一个3节点的ES集群,在搭建过程中,遇到了许多坑,网上的资料也比较分散,所以详细整理一下搭建过程发出来供参考。搭建过程中,由于是两台虚拟机,所以有一种很快速的办法,搭建一台,然后通过克隆虚拟机然后修改可以迅速完成,但是为了更熟悉整个过程,本过程是每台虚拟机都逐一去操作。

一、软件及环境准备

服务器环境

CentOS6.9_64位两台

es-master:192.168.0.11

es-slave:192.168.0.12

注意:内存允许的情况下,稍微给大一点内存,否则启动会失败,本地测试可以使用1.5-2G内存,es-master上准备搭建两个节点,所以内存最好给到2G以上.

ES软件

最新版ElasticSearch6.4.0

下载地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz

本地下载地址:https://www.jb51.net/codes/579429.html

JDK软件

jdk-8u161-linux-x64.tar.gz

下载地址:http://download.oracle.com/errors/download-fail-1505220.html

本地下载地址:https://www.jb51.net/softs/325375.html

环境规划

es-master包括两个节点:elasticesearch-node1,elasticesearch-node3

es-slave包括一个节点:elasticesearch-node2

修改服务器主机名称,方便后续操作

(1)服务器192.168.0.11上操作:

[root@localhost ~]# hostname es-master
[root@localhost ~]# vim /etc/sysconfig/network
#修改以下内容:
HOSTNAME=es-master
#退出重新登录
[root@localhost ~]# logout

(2)服务器192.168.0.12上操作:

[root@localhost ~]# hostname es-slave
[root@localhost ~]# vim /etc/sysconfig/network
#修改以下内容:
HOSTNAME=es-slave
#退出重新登录
[root@localhost ~]# logout

(3)为了后续操作方便,分别关闭es-master和es-slave服务器的防火墙

[root@es-master ~]# service iptables stop
[root@es-slave ~]# service iptables stop

注意:生产环境不能直接关防火墙,可以添加防火墙规则,使得ES的tcp端口对远程指定主机开放。

二、JDK安装配置

主机es-master上操作

下载,并解压到指定目录

 [root@es-master ~]# mkdir -pv /home/software
 [root@es-master ~]# cd /home/software/
 [root@es-master software]# wget http://download.oracle.com/otn-pub/java/jdk/8u181-b13/96a7b8442fe848ef90c96a2fad6ed6d1/jdk-8u181-linux-x64.tar.gz

注意:如果没有网络,可以手动下载,然后上传即可。

 [root@es-master software]# mkdir -pv /usr/local/java
 [root@es-master software]# tar xf jdk-8u181-linux-x64.tar.gz -C /usr/local/java

主机es-slave上操作同上,略.

配置环境变量,es-master和es-slave上配置过程相同,如下

[root@es-master software]# vim /etc/profile
#在末尾添加如下内容:
JAVA_HOME=/usr/local/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效
[root@es-master ~]# source /etc/profile

测试是否安装完成

[root@es-master ~]# java -version
java version "1.8.0_161"
#输出版本号,表示配置成功.

三、ElasticSearch安装及配置

es-master上的操作如下:

下载及解压ElasticSearch6.4.0

[root@es-master ~]# cd /home/software/
[root@es-master ~]# wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz
[root@es-master software]# tar xf elasticsearch-6.2.4.tar.gz -C /usr/local/
[root@es-master local]# mv elasticsearch-6.4.0 elasticsearch-node1/
#复制一份作为第二个es节点
[root@es-master local]# cp -r elasticsearch-node1/ elasticsearch-node3

创建elk用户,并将elasticsearch-node1和elasticsearch-node3授权给elk

注意:由于elasticsearch启动的时候不能直接用root用户启动,所以需要创建普通用户

[root@es-master local]# useradd elk
[root@es-master local]# chown -R elk:elk elasticsearch-node1/ elasticsearch-node3/

分别创建两个elasticsearch节点的数据目录和日志目录

[root@es-master local]# mkdir -pv /data/{elasticsearch1,elasticsearch3}/{data,logs}
[root@es-master local]# chown -R elk:elk /data/{elasticsearch1,elasticsearch3}

修改操作系统的内核配置文件sysctl.conf

[root@es-master local]# vim /etc/sysctl.conf
#在配置文件最后面添加如下内容
vm.max_map_count=655360

解释:max_map_count文件包含限制一个进程可以拥有的VMA(虚拟内存区域)的数量。虚拟内存区域是一个连续的虚拟地址空间区域。

在进程的生命周期中,每当程序尝试在内存中映射文件,链接到共享内存段,或者分配堆空间的时候,这些区域将被创建。
当进程达到了VMA上线但又只能释放少量的内存给其他的内核进程使用时,操作系统会抛出内存不足的错误。

#使修改之后的配置文件生效
[root@es-master local]# sysctl -p

修改limits.conf文件

#limits.conf:用来保护系统的资源访问,和sysctl.conf很像,但是limits.conf是针对于用户,而sysctl.conf是针对于操作系统.
[root@es-master local]# vim /etc/security/limits.conf
#在文件末尾添加如下内容:
elk soft nofile 65536
elk hard nofile 131072
elk soft nproc 4096
elk hard nproc 4096

修改elasticsearch-node1节点的配置文件jvm.options

[root@es-master local]# cd elasticsearch-node1/config/
[root@es-master config]# vim jvm.options

修改如下两个选项:

  • -Xms512m  #elasticsearch启动时jvm所分配的初始堆内存大小
  • -Xmx512m  #elasticsearch启动之后允许jvm分配的最大堆内存大小,生产环境中可能需要调大

注意:如果内存足够大,可以不用修改,默认为1G

修改elasticsearch-node1节点的配置文件elasticsearch.yml

[root@es-master local]# vim elasticsearch-node1/config/elasticsearch.yml
#修改以下项
#表示集群标识,同一个集群中的多个节点使用相同的标识
cluster.name: elasticsearch
#节点名称
node.name: "es-node1"
#数据存储目录
path.data: /data/elasticsearch1/data
#日志目录
path.logs: /data/elasticsearch1/logs
#节点所绑定的IP地址,并且该节点会被通知到集群中的其他节点
network.host: 192.168.0.11
#绑定监听的网络接口,监听传入的请求,可以设置为IP地址或者主机名
network.bind_host: 192.168.0.11
#发布地址,用于通知集群中的其他节点,和其他节点通讯,不设置的话默认可以自动设置。必须是一个存在的IP地址
network.publish_host: 192.168.0.11
#对外提供服务的http端口,默认为9200
http.port: 9200
#集群中主节点的初始列表,当主节点启动时会使用这个列表进行非主节点的监测
discovery.zen.ping.unicast.hosts: ["192.168.0.11","192.168.0.12","192.168.0.11:9301"]
#下面这个参数控制的是,一个节点需要看到的具有master节点资格的最小数量,然后才能在集群中做操作。官方推荐值是(N/2)+1;
#其中N是具有master资格的节点的数量(我们的情况是3,因此这个参数设置为2)
#但是:但对于只有2个节点的情况,设置为2就有些问题了,一个节点DOWN掉后,肯定连不上2台服务器了,这点需要注意
discovery.zen.minimum_master_nodes: 2
#ES默认开启了内存地址锁定,为了避免内存交换提高性能。但是Centos6不支持SecComp功能,启动会报错,所以需要将其设置为false
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

修改elasticsearch-node3节点的配置文件jvm.options

[root@es-master local]# cd elasticsearch-node3/config/
[root@es-master config]# vim jvm.options

修改如下两个选项:

  • -Xms512m
  • -Xmx512m

修改elasticsearch-node3节点的配置文件elasticsearch.yml

[root@es-master local]# vim elasticsearch-node3/config/elasticsearch.yml
#修改以下项
cluster.name: elasticsearch
node.name: "es-node3"
path.data: /data/elasticsearch3/data
path.logs: /data/elasticsearch3/logs
network.host: 192.168.0.11
network.bind_host: 192.168.0.11
network.publish_host: 192.168.0.11
#节点间的通信端口,接收单值或者一个范围。如果指定一个范围,该节点将会绑定范围的第一个可用顶点
transport.tcp.port: 9301
http.port: 9201
discovery.zen.ping.unicast.hosts: ["192.168.0.11","192.168.0.12","192.168.0.11:9301"]
discovery.zen.minimum_master_nodes: 2
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

至此,es-master上的配置操作完成。

es-slave上的操作如下:

上传elasticsearch的安装包,然后解压重命名,可以直接从es-master上远程拉取

[root@es-slave ~]# cd /home/software/
[root@es-slave software]# scp 192.168.0.11:/home/software/elasticsearch-6.4.0.tar.gz ./
[root@es-slave software]# tar xf elasticsearch-6.4.0.tar.gz -C /usr/local/

创建elk用户,并将elasticsearch-node2授权给elk

[root@es-slave local]# useradd elk
[root@es-slave local]# chown -R elk:elk elasticsearch-node2

创建数据目录,并将目录的属主和属组改为elk用户,elk组

[root@es-slave local]# mkdir -pv /data/elasticsearch2/{data,logs}
[root@es-slave local]# chown -R elk:elk /data/elasticsearch2

修改操作系统的内核配置文件sysctl.conf

[root@es-slave local]# vim /etc/sysctl.conf
#在配置文件最后面添加如下内容
vm.max_map_count=655360
[root@es-slave local]# sysctl -p

修改limits.conf文件,可以直接从es-master的配置中复制过来

[root@es-master local]# vim /etc/security/limits.conf
#在文件末尾添加如下内容:
elk soft nofile 65536
elk hard nofile 131072
elk soft nproc 4096
elk hard nproc 4096

修改elasticsearch-node2节点的配置文件jvm.options

[root@es-slave local]# cd elasticsearch-node2/config/
[root@es-slave config]# vim jvm.options

修改如下两个选项:

  • -Xms512m
  • -Xmx512m

修改elasticsearch-node2节点的配置文件elasticsearch.yml

[root@es-slave local]# vim elasticsearch-node2/config/elasticsearch.yml
#修改以下项
cluster.name: elasticsearch
node.name: "es-node2"
path.data: /data/elasticsearch2/data
path.logs: /data/elasticsearch2/logs
network.host: 192.168.0.12
network.bind_host: 192.168.0.12
network.publish_host: 192.168.0.12
discovery.zen.ping.unicast.hosts: ["192.168.0.11","192.168.0.12","192.168.0.11:9301"]
discovery.zen.minimum_master_nodes: 2
bootstrap.memory_lock: false
bootstrap.system_call_filter: false

至此es-slave上的elasticsearch节点配置完成。

四、启动ES集群

首先切换为elk用户,并启动es-slave服务器上的elasticsearch-node2节点

[root@es-slave local]# su - elk
[elk@es-slave ~]$ cd /usr/local/elasticsearch-node2/bin/
[elk@es-slave bin]$ ./elasticsearch -d

注意:-d参数表示以后台进程启动,默认情况下会在控制台输出日志。

查看是否启动成功,可以通过查看进程及端口来确定是否启动成功,如果启动失败,可以通过查看日志来排查原因

[elk@es-slave bin]$ ps -ef| grep elasticsearch
[elk@es-slave bin]$ lsof -i:9200

注意:日志文件在elasticsearch.yml配置文件中所指定的目录下

测试是否可以访问

[elk@es-slave ~]$ curl 192.168.0.12:9200
如果返回类似如下结果,表示启动正常:
{
 "name" : "es-node2",
 "cluster_name" : "elasticsearch",
 "cluster_uuid" : "gczyFNKrTe2YbEQmlg7-nw",
 "version" : {
  ...
 },
 "tagline" : "You Know, for Search"
}

切换到es-master服务器上,然后切换到elk身份,分别启动elasticSearch-node1节点和elasticsearch-node3节点

[root@es-master ~]# su - elk
[elk@es-master ~]$ cd /usr/local/elasticsearch-node1/bin/
[elk@es-master bin]$ ./elasticsearch -d
[elk@es-master bin]$ cd /usr/local/elasticsearch-node3/bin/
[elk@es-master bin]$ ./elasticsearch -d

查看进程及端口,确定是否启动成功

#查看进程,可以看到有两个节点的进程
[elk@es-master bin]$ ps -ef| grep elasticsearch
[elk@es-master bin]$ lsof -i:9200
[elk@es-master bin]$ lsof -i:9300
使用curl测试节点是否可以正常访问,方法同上,需要验证elasticsearch-node1和elasticsearch-node3节点
[elk@es-master ~]$ curl 192.168.0.11:9200
[elk@es-master ~]$ curl 192.168.0.11:9300

验证完毕之后,ES集群就启动完毕。

五、安装及配置ES前端图形化操作工具

下载kibana,并上传到es-master服务器上

下载地址:https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz

解压,重命名

[root@es-master software]# wget https://artifacts.elastic.co/downloads/kibana/kibana-6.4.0-linux-x86_64.tar.gz
[root@es-master software]# tar xf kibana-6.4.0-linux-x86_64.tar.gz -C /usr/local
[root@es-master software]# cd /usr/local
[root@es-master local]# mv kibana-6.4.0-linux-x86_64 kibana-6.4.0

修改kibana的配置文件kibana.yml

[root@es-master local]# cd kibana-6.4.0/config
[root@es-master config]# vim kibana.yml
#修改如下内容:
#对外服务监听端口
server.port: 5601
#绑定可以访问5601端口服务的IP地址,0.0.0.0表示任何地址在没有防火墙限制的情况下都可以访问,生产环境别这样设置,不安全。
server.host: "0.0.0.0"
#默认值为主机名称,表示kibana实例绑定的主机,可以是IP地址或者主机名称.
server.name: "es-master"
#用来处理ES请求的服务URL
elasticsearch.url: "http://192.168.0.11:9200"
#用来控制证书的认证,可选的值为full,none,certificate。此处由于没有证书,所以设置为null,否则启动会提示错误.
elasticsearch.ssl.verificationMode: none

启动kibana

[root@es-master config]# cd /usr/local/kibana-6.4.0/bin
#以后台进程启动,kibana默认是控制台方式启动,Ctrl+C就会退出
[root@es-master bin]# nohup ./kibana &
#查看日志是否启动正常
[root@es-master bin]# tail -f nohup.out

如果启动正常,在浏览器端访问http://192.168.0.11:5601,即可看到图形化操作工具

至此,就可以愉快的开始ES的语法学习之旅了。

ES的语法学习可参考:https://www.elastic.co/guide/cn/elasticsearch/guide/current/_tutorial_conclusion.html

六、ElasticSearch和kibana的停止

目前es和kibana的bin目录下未提供停止ES服务和kibana服务的脚本,可以使用kill -9 pid来停止服务

停止ES服务

[root@es-master bin]# ps -ef| grep elasticsearch | grep -v grep | awk '{print $2}'
[root@es-master bin]# kill -9 pid[上一步所输出的pid]

停止Kibana服务

[root@es-master bin]# ps -ef| grep node | grep -v grep | grep -v elasticsearch | awk '{print $2}'
[root@es-master bin]# kill -9 pid[上一步所输出的pid]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python 操作 ElasticSearch的完整代码

    官方文档:https://elasticsearch-py.readthedocs.io/en/master/ 1.介绍 python提供了操作ElasticSearch 接口,因此要用python来操作ElasticSearch,首先要安装python的ElasticSearch包,用命令pip install elasticsearch安装或下载安装:https://pypi.python.org/pypi/elasticsearch/5.4.0 2.创建索引 假如创建索引名称为ott,类型

  • SpringBoot整合Elasticsearch7.2.0的实现方法

    Spring boot 2.1.X整合Elasticsearch最新版的一处问题 新版本的Spring boot 2的spring-boot-starter-data-elasticsearch中支持的Elasticsearch版本是2.X,但Elasticsearch实际上已经发展到7.2.X版本了,为了更好的使用Elasticsearch的新特性,所以弃用了spring-boot-starter-data-elasticsearch依赖,而改为直接使用Spring-data-elastics

  • Python-ElasticSearch搜索查询的讲解

    Elasticsearch 是一个开源的搜索引擎,建立在一个全文搜索引擎库 Apache Lucene™ 基础之上. Lucene 可能是目前存在的,不论开源还是私有的,拥有最先进,高性能和全功能搜索引擎功能的库.但是 Lucene 仅仅只是一个库.为了利用它,你需要编写 Java 程序,并在你的 java 程序里面直接集成 Lucene 包. 更坏的情况是,你需要对信息检索有一定程度的理解才能明白 Lucene 是怎么工作的.Lucene 是 很 复杂的. 在上一篇文章中介绍了ElasticS

  • Elasticsearch QueryBuilder简单查询实现解析

    elasticsearch中存储的全部文档 1.matchAllQuery() matchAllQuery()方法用来匹配全部文档 public class QueryTest { public static void main(String[] args) { //创建对象,设置集群名称和IP地址 ElasticsearchUtils es = new ElasticsearchUtils("im_shan", "localhost"); String index

  • ElasticSearch的完整安装教程

    ElasticSearch安装 下载ElasticSearch 官网地址: https://www.elastic.co/products/elasticsearch 本地下载:https://www.jb51.net/codes/579429.html 上传到ElasticSearch 可以使用第三方工具filezilla 解压elasticsearch-6.4.0.tar.gztar -zxvf elasticsearch-6.4.0.tar.gz [root@localhost elast

  • JAVA使用ElasticSearch查询in和not in的实现方式

    ElasticSearch Elasticsearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便. 最近用到ES查询,因用的是Java写的,需要实现一个需求:过滤一部分id,查询时不需要查出来. 既然需要不包含,那么首先需要实现包含的方式(精确完

  • 详解spring-boot集成elasticsearch及其简单应用

    介绍 记录将elasticsearch集成到spring boot的过程,以及一些简单的应用和helper类使用. 接入方式 使用spring-boot中的spring-data-elasticsearch,可以使用两种内置客户端接入 1.节点客户端(node client): 配置文件中设置为local:false,节点客户端以无数据节点(node-master或node-client)身份加入集群,换言之,它自己不存储任何数据,但是它知道数据在集群中的具体位置,并且能够直接转发请求到对应的节

  • elasticsearch head的安装及使用过程解析

    ealsticsearch只是后端提供各种api,那么怎么直观的使用它呢?elasticsearch-head将是一款专门针对于elasticsearch的客户端工具 elasticsearch-head配置包,下载地址:https://github.com/mobz/elasticsearch-head elasticsearch-head是一个基于node.js的前端工程,启动elasticsearch-head的步骤如下(这里针对的是elasticsearch 5.x以上的版本): 1.进

  • 详解ElasticSearch6.4.0集群搭建

    最近在学习ES相关内容,为了方便自己使用,在本地虚拟机上搭建了一个3节点的ES集群,在搭建过程中,遇到了许多坑,网上的资料也比较分散,所以详细整理一下搭建过程发出来供参考.搭建过程中,由于是两台虚拟机,所以有一种很快速的办法,搭建一台,然后通过克隆虚拟机然后修改可以迅速完成,但是为了更熟悉整个过程,本过程是每台虚拟机都逐一去操作. 一.软件及环境准备 服务器环境 CentOS6.9_64位两台 es-master:192.168.0.11 es-slave:192.168.0.12 注意:内存允

  • 详解如何清理redis集群的所有数据

    1. 背景:生产测试后redis中产生大量数据 生产前需要清理reids集群中的数据.. 你看有很多key呢: 使用工具 使用命令,查看是否有数据: keys * 2. 清理步骤 2.1 任意登录一台redis机器 执行下面脚本: clear_redis_cluster.sh 10.1.33.101:8001 redis 执行日志如下: Clearing 10.1.33.112:8028 ... Background append only file rewriting started READ

  • 详解Spring Cloud 断路器集群监控(Turbine)

    一. 简介 上一篇文章我们已经实现了对单个服务实例的监控,当然在实际应用中,单个实例的监控数据没有多大的价值,我们更需要的是一个集群系统的监控信息,这时我们就需要引入Turbine.Turbine能够汇集监控信息,并将聚合后的信息提供给Hystrix Dashboard来集中展示和监控. 二. 构建监控局和服务 2.1 整体结构与准备 本文的工程实现是基于上一篇文章的工程,通过引入Turbine来聚合service-ribbon服务的监控信息,并输出给Hystrix Dashboard来进行展示

  • 详解Java 连接MongoDB集群的几种方式

    先决条件 先运行mongodb肯定是必须的,然后导入以下包: import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; import com.mongodb.ServerAddress; import com.mongodb.MongoCredential; import com.mongodb.MongoClientOptions; MongoClient MongoClient()实例表示到数据库的连接池; 你将只需

  • Hadoop3.2.0集群搭建常见注意事项

    一 端口变化 3.2.0版本中namenode页面端口是9870,datanode管理端口是8088,所以需要开放这两个端口还给web页面访问 二but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation hadoop-env.sh中不光需要配置java-home,还需要声明下面这些用户变量,不然无法启动: export JAVA_HOME=/usr/local/jdk/jdk1.8.0_191 export HDF

  • Linux(Centos7)下redis5集群搭建和使用说明详解

    1.简要说明 2018年十月 Redis 发布了稳定版本的 5.0 版本,推出了各种新特性,其中一点是放弃 Ruby的集群方式,改为 使用 C语言编写的 redis-cli的方式,是集群的构建方式复杂度大大降低.关于集群的更新可以在 Redis5 的版本说明中看到,如下: The cluster manager was ported from Ruby (redis-trib.rb) to C code inside redis-cli. check `redis-cli --cluster h

  • 详解Redis集群搭建的三种方式

    一.单节点实例 单节点实例还是比较简单的,平时做个测试,写个小程序如果需要用到缓存的话,启动一个 Redis 还是很轻松的,做为一个 key/value 数据库也是可以胜任的 二.主从模式(master/slaver) redis 主从模式配置 主从模式: redis 的主从模式,使用异步复制,slave 节点异步从 master 节点复制数据,master 节点提供读写服务,slave 节点只提供读服务(这个是默认配置,可以通过修改配置文件 slave-read-only 控制).master

  • Docker微服务的ETCD集群搭建教程详解

    目录 etcd的特性 Etcd构建自身高可用集群主要有三种形式 本次搭建的基础环境 1.将服务器挨个添加进集群 2.将服务器统一添加进集群 etcd api接口 服务注册与发现 etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现.etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性.Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的

  • Elasticsearches的集群搭建及数据分片过程详解

    目录 Elasticsearch高级之集群搭建,数据分片 广播方式 单播方式 选取主节点 什么是脑裂 错误识别 Elasticsearch高级之集群搭建,数据分片 es使用两种不同的方式来发现对方: 广播 单播 也可以同时使用两者,但默认的广播,单播需要已知节点列表来完成 广播方式 当es实例启动的时候,它发送了广播的ping请求到地址224.2.2.4:54328.而其他的es实例使用同样的集群名称响应了这个请求. 一般这个默认的集群名称就是上面的cluster_name对应的elastics

  • Nacos集群搭建过程详解

    目录 1.集群结构图 2.搭建集群 2.1.初始化数据库 2.2.下载nacos 2.3.配置Nacos 2.4.启动 2.5.nginx反向代理 2.6.优化 1.集群结构图 官方给出的Nacos集群图: 其中包含3个nacos节点,然后一个负载均衡器代理3个Nacos.这里负载均衡器可以使用nginx. 我们计划的集群结构: 三个nacos节点的地址: 节点 ip port nacos1 192.168.150.1 8845 nacos2 192.168.150.1 8846 nacos3

随机推荐