- 准备三台机器(安装centos7.2 )
| es1 | es2 | es3 | master | true | true | false | data | true | true | true |
- 每个节点公共设置
- 设置主机名 ?vim /etc/hostname
- 把各节点域名映射加入到hosts
- 设置静态IP ?vim /etc/sysconfig/network-scripts/ifcfg-ens33(可选)
- 关闭防火墙 ?systemctl stop firewalld ?systemctl disable firewalld
- 安装jdk (1.8以上)
- 各节点建立免密登陆(可选)
- 添加用户 useradd es
- 修改es用户密码 ?passwd es
- 修改虚拟内存最大数量vim /etc/sysctl.conf ?追加vm.max_map_count=655360 ?如果不够就增大数字 使用命令sudo sysctl -p 生效
- 各子节点安装,可以先在一个节点安装成功后,复制到其他节点即可
- 上传es安装包到/home/semptian/soft
- 使用tar 命令解压 ?tar -zxvf ?elasticsearch-6.5.4.tar.gz -C ../service/
- 重命名文件夹 mv?elasticsearch-6.5.4 ./elasticsearch
- 修改es配置文件cd elasticsearch/config/elasticsearch.yml
序号 | 参数名 | 默认值? | 备注 | 1 | cluster.name | semptian-cluster | 集群名,同一集群该值要设置相同 | 2 | node.name | es1 | 节点名称,每个节点设置唯一名称 | 3 | node.master | true | 设置该节点是否可为主节点 | 4 | node.data | true | 设置该节点是否是数据节点 | 5 | path.data | /home/es/data/es/data | 数据存放路径 | 6 | path.logs | /home/es/data/es/logs | 节点日志存放路径 | 7 | bootstrap.memory_lock | true | 是否锁定内存,生产环境建议设置true | 8 | network.host | 192.168.59.137 | 当前节点的IP | 9 | http.port | 9200 | 当前节点对外http请求端口 | 10 | http.cors.enabled | true | 如果启用了 HTTP 端口,那么此属性会指定是否允许跨源 REST 请求。 | 11 | http.cors.allow-origin | "*" | 如果?http.cors.enabled?的值为?true,那么该属性会指定允许 REST 请求来自何处。 | 12 | discovery.zen.ping.unicast.hosts | ["es1", "es2","es3"] | 可设置为master节点的主机名 | 13 | discovery.zen.minimum_master_nodes | 2 | 设置最低一个集群主节点数量(master count/2)+1 |
- 如果配置成锁内存请使用root在/etc/security/limits.conf中添加2个配置(管理员账号才能配置),如下图
* soft memlock unlimited
* hard memlock unlimited
- 修改文件描述数量请使用root在/etc/security/limits.conf中添加2个配置(管理员账号才能配置),如下图
* soft nofile 65536
* hard nofile 65536
- 根据节点的情况来修改elasticsearch.yml 配置信息
- 执行bin目录下的elasticsearch来启动es,测试ES是否可用 ?(加d表示后台启动)
- (6.5.4以上版本不用装)安装x-pack.?所有节点都执行bin/elasticsearch-plugin install?file:///~/soft/x-pack-6.2.4.zip?
- 上传kibana到主节点/home/es/soft目录中
- 使用tar命令解压到/home/es/service/目录下
- 修改配置文件kibana/config/kibana.yml
序号 | 参数名 | 值 | 备注 | 1 | server.host | 192.168.59.135 | 服务HOST | 2 | server.name | es1 | 服务名 | 3 | elasticsearch.url | "http://192.168.59.135:9200" | es节点通信url | 4 | elasticsearch.username | "kibana" | 访问节点的用户名 | 5 | elasticsearch.password | "密码 " | 访问节点的密码 | 6 | server.port | 5601 | 访问kibana端口号 |
- (6.5.4以上版本不用装)执行bin/kibana-plugin install?file:///home/es/soft/x-pack-6.2.4.zip来安装x-pack到kibana
- 安装好后执行bin/kibana来启动kibana,第一次需要等待几分钟.
- 打开浏览器访问http://192.168.59.135:5601即可访问kibana.? ?启动使用ES
- 关闭Es修改配置开启xpack,重启ES
xpack.security.transport.ssl.enabled: true //开启安全认证
xpack.security.transport.ssl.verification_mode: certificate
- 在节点上执行 bin/elasticsearch-setup-passwords auto ?记住打印出来的密码?
- 修改kibana用户配置确定能正常登陆
- 在主节点中为es集群创建证书颁发机构(先在主节点配置好,在负责到其他节点即可)
elasticsearch-6.2.3/bin/elasticsearch-certutil ca
//此过程需要输入密码。最后会生成一个xxx-stack-ca.p12文件
- 在主节点中为集群中的每个节点生成证书和私钥(执行一次,其他节点直接拷贝过去)
elasticsearch-6.2.3/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
//请使用上一步产生的文件来生成证书和密钥。执行完会生成一个xxx-certificates.p12
//此过程需要输入密码,请输入上步相同的密码
- 在config目录下创建certs目录,同时把生成xxx-certificates.p12拷贝进去
- 修改节点的配置文件添加如下配置
xpack.security.transport.ssl.enabled: true //开启安全认证
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12 //上一步文件存储路径
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
- 在节点中执行如下命令
bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
//请注意安装x-pack时生成的elasticsearch.keystore的属性组,需要配置成es帐号拥有权限,如果执行报错请使用root帐号
- 拷贝主节点的程序文件到其他节点,也并修改elasticsearch.yml中IP等基本配置即可
- 启动所有节点后
启动kibana - java代码中连接Es时使用证书elastic-certificates.p12即可,p12中记录的密码也需要
- 先关闭所有节点的认证信息,把x-pack-core-6.5.3.jarx-pack-core-6.5.3.jar替换程序中的文件如路径./es/modules/x-pack-core/(如果有就点点的版本差异是没有关系的)替换后重启ES
- 登录上kibana中进入management/license management/ ?点击update license按钮在弹出的窗口上选择附件中的license.jsonlicense.json即可,更新成功后会发现过期时间为2068年
- X-Pack Security is not available.?
- no cipher suites in common: ?节点、
- 无法启动x-pack提示license时效。一定需要先通过kibana进行license试用后在开启x-pack
|