1. 按要求安装jdk,es和kibana(安装步骤忽略)
2. 编辑es/config/elasticsearch.yml文件,补充如下配置,多个节点只需要修改部分配置信息即可
#集群名称 cluster.name: myes #集群下的唯一节点名称,一个es对应一个节点名称 node.name: node-3 # 节点的角色,用于集群这个节点可以充当的角色 node.roles: [data,master,remote_cluster_client] #主机地址,跟虚拟机地址保持一致 network.host: 192.168.2.138 #虚拟机以外的请求,发送到这个对外暴露的端口 http.port: 9200 #集群内部节点与节点之间互相访问的端口 transport.port: 9300 #种子主机地址,即候补的主节点,用于初始化的主节点出现宕机后的替补主节点 discovery.seed_hosts: ["192.168.2.136:9300","192.168.2.137:9300"] #初始化默认的主节点 cluster.initial_master_nodes: ["node-1"]
3. 配置好上面的端口以后,我们启动es
./elasticsearch -d 启动时会出现抢锁失败的情况,这是由于没有杀死es进程导致的,需要杀死进程才能正常启动,需要执行如下命令 ps -ef | grep elasticsearch 获取运行es的线程pid kill -9 pid 即可 也可以使用 lsof -i:端口号 查询哪个线程占用此端口 kill -9 pid 即可 没有lsof命令,可以通过yum install lsof安装即可 建议两个命令配合使用,如果一个成功了,另一个就无须执行了;
4. 启动成功后访问192.168.2.138:9200,如果访问不成功,我们需要注意防火墙问题,请在每一个窗口中执行如下命令,根据实际情况修改部门内容即可,注意会多次使用
根据配置文件的端口永久放开这些端口 firewall-cmd --permanent --add-port=9200/tcp firewall-cmd --permanent --add-port=9300/tcp firewall-cmd --permanent --add-port=5601/tcp firewall-cmd --reload 相关命令 systemctl start firewalld 启动防火墙 systemctl stop firewalld 关闭防火墙 systemctl disable firewalld 禁用防火墙
5. 回到es/bin目录,重启es,重启成功效果图如下
6. kibaba只需要配置如下信息即可
server.port: 5601 server.host: "192.168.2.136" elasticsearch.hosts: ["http://192.168.2.136:9200","http://192.168.2.137:9200","http://192.168.2.138:9200"]
此类问题,可以通过上面的防火墙命令解决!
7. 遇到bug时,可以尝试清空es/data目录以及kibana/data目录解决部分问题
8. kibana在连接集群的时候,会报错,显示说es 没有node not found【remote_cluster_client】role
以上问题可以通过在elasticsearch.yml中添加如下配置项解决 node.roles: [data,master,remote_cluster_client]



