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]