ELK如何配置集群

本文中提及的ELK文件夹都改过名,依次为:
elasticsearch-6.2.2.tar 改为es622 ;
elasticsearch-head-master 改为eshead
一、复制虚拟机 本文以VirtualBox为例:
首先,我已经安装好了一个虚拟机,对ELK也完成了配置。下面复制两个虚拟机
ELK如何配置集群
文章图片

二、修改主机名和主机列表 1.对复制的两个虚拟机进行网络配置
(1)输入:vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

  • 由于虚拟机是复制过来的,所以BOOTPROTO=static ONBOOT=yes
    这两个已经设置好,不用进行设置,只需要在最后一行加入IPADDR=192.168.56.140
    //此处的IP地址不能和已有的ip地址冲突 另一台虚拟机也按照这个原则进行配置,我的ip地址设为
    IPADDR=192.168.56.141
(2)配置完成后,重启网络
systemctl restart network
【ELK如何配置集群】(3)关闭防火墙,并禁用
systemctl stop firewalld
systemctl disable firewalld
2.修改两个虚拟机的主机名
vi /etc/hostname
// 我修改为test1和test2,这里大家可以随意,开心就好,重启虚拟机后生效
3.修改所有虚拟机的主机列表,增加主机ip地址和主机名
vi /etc/hosts
ELK如何配置集群
文章图片

// 120、121、122为我之前配置的,此处不用管,本次新加了140和141
三、配置免密登录 1.ssh-keygen -t rsa -P “” //生成私钥,上引号里面没有空格,每个虚拟机都要配置
执行该命令,可能会弹出如下图片,回车即可
ELK如何配置集群
文章图片

2.cat .ssh/id_rsa.pub >> .ssh/authorized_keys //复制私钥到公钥,每个虚拟机都要执行该命令
3.ssh-copy-id -i .ssh/id_rsa.pub -p22 root@test1 //远程复制到另一台机器,两两复制
例:3个虚拟机主机名分别为a,b,c
a执行:ssh-copy-id -i .ssh/id_rsa.pub -p22 root@b
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@c
b执行:ssh-copy-id -i .ssh/id_rsa.pub -p22 root@a
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@c
c执行:ssh-copy-id -i .ssh/id_rsa.pub -p22 root@a
ssh-copy-id -i .ssh/id_rsa.pub -p22 root@b
4.ssh -p22 root@test1 //远程登录验证,不需要输入密码即可,最好先把虚拟机重启一下,两两尝试一下
例:3个虚拟机主机名分别为a,b,c
a执行:ssh -p22 root@b
ssh -p22 root@c
b执行:ssh -p22 root@a
ssh -p22 root@c
c执行:ssh -p22 root@a
ssh -p22 root@b
四、配置elasticsearch集群 1.输入:vi /opt/es622/config/elasticsearch.yml //修改节点名,ip地址,主机列表
我是以bigdata01作为主节点,所以node.master : true 设置的是true
bigdata01配置截图:bigdata01的IP地址是120,121和122是之前配置的,这里不用管,140和 141需要这次添加进去
ELK如何配置集群
文章图片

test1配置截图:test1的IP地址是140,因为不是主节点,所以node.master : false
ELK如何配置集群
文章图片

Test2配置截图:test1的IP地址是141,因为不是主节点,所以node.master : false
ELK如何配置集群
文章图片

##### 参数解释
cluster.name 集群名称,各节点配成相同的集群名称。
node.name 节点名称,各节点配置不同。
node.master 指示某个节点是否符合成为主节点的条件。
node.data 指示节点是否为数据节点。数据节点包含并管理索引的一部分。
path.data 数据存储目录。
path.logs 日志存储目录。
bootstrap.memory_lock 内存锁定,是否禁用交换。
bootstrap.system_call_filter 系统调用过滤器。
network.host 绑定节点IP。
http.port 端口。
discovery.zen.ping.unicast.hosts 提供其他 Elasticsearch 服务节点的单点广播发现功能。
discovery.zen.minimum_master_nodes 集群中可工作的具有Master节点资格的最小数量,官方的推荐值是(N/2)+1,其中N是具有master资格的节点的数量。
discovery.zen.ping_timeout 节点在发现过程中的等待时间。
discovery.zen.fd.ping_retries 节点发现重试次数。
http.cors.enabled 是否允许跨源 REST 请求,表示支持所有域名,用于允许head插件访问ES。
http.cors.allow-origin 允许的源地址。
2.切换每个虚拟机用户:
su es //root用户无法启动elasticsearch,es为事先创建好的用户
3.主节点删除es622文件夹下的data和logs目录,运行
cd /opt/es622
rm -rf data
rm -rf logs
./bin/elasticsearch
新开一个窗口:
cd /opt/eshead
npm run start //这条命令要在eshead目录下运行,可以用root用户启动
4、其他子节点分别删除es622文件夹下的data和logs目录,并运行
cd /opt/es622
rm -rf data
rm -rf logs
./bin/elasticsearch
5、在浏览器中主节点的es: http://192.168.56.120:9100/
成功截图:1是因为我还有2个节点未连接,但是可以看到刚才配置的test1和test2已经连接上
ELK如何配置集群
文章图片

    推荐阅读