Keepalived 实现 Kibana 的高可用

目录

一、 Keepalived 安装部署

1.1 准备工作

1.2 下载安装包并解压

1.3 编译

1.4 创建服务文件夹

1.5 创建服务文件

1.6 创建检测脚本

二、启动keepalived

三、检测是否安装成功

3.1 查看服务状态

3.2  查看网络接口绑定情况

四、注意事项

4.1  Kibana 不能绑定具体的ip

4.2  防火墙开放5601、112端口


一、 Keepalived 安装部署

     Keepalived 通过虚拟ip绑定物理机网络接口的方式实现目标服务的高可用代理,被代理的服务上都需要安装 Keepalived 

    环境信息:

         实际ip: 192.168.122.118、192.168.122.119

         虚拟ip: 192.168.122.135

1.1 准备工作

yum install -y gcc gcc-c++ wget popt-devel openssl openssl-devel
 
yum install -y libnl libnl-devel libnl3 libnl3-devel
 
yum install -y libnfnetlink-devel

1.2 下载安装包并解压

  官网下载地址: Keepalived for Linux

tar -zxvf keepalived-2.2.8.tar.gz

1.3 编译

  进入解压好的keepalived目录

./configure --prefix=/software/keepalived
 
make && make install

1.4 创建服务文件夹

mkdir /etc/keepalived

1.5 创建服务文件

cd /etc/keepalived
vim keepalived.conf
# 输入以下内容
 
#master
global_defs {
  notification_email {
  }
  router_id LVS_DEVEL
  vrrp_skip_check_adv_addr
  vrrp_garp_interval 0
  vrrp_gna_interval 0
 
}
 
vrrp_script check_kibana {
 
    script "/opt/module/chk_kibana.sh"       #这个是检测脚本,当挂了之后做的事情
 
    interval 22
 
    weight 2
 
}
 
vrrp_instance VI_1 {
 
    state BACKUP #两台配置此处均是BACKUP,设为BACKUP将根据优先级决定主或从
 
    interface ens160 #绑定的网卡, 用 ip addr 命令查看本机网卡名字
 
    virtual_router_id 66 #虚拟路由标识,这个标识是一个数字(取值0-255之间)确保和slave相同,同网内不同集群此项必须不同,否则发生冲突。
 
    priority 100 #用来选举master的,(取值0-255之间),此处master上设置为100,其他备用节点必须比这个值小
 
    advert_int 1 #多久进行一次master选举(单位:s,可以认为是健康查检时间间隔)
 
    nopreempt #不抢占,即允许一个priority比较低的节点作为master
 
    authentication {
 
        auth_type PASS #认证区域
 
        auth_pass 1111 # 节点通讯密码 ,不同节点的通讯方式和密码必须一样
 
    }
 
    track_script {
 
        check_kibana #指定核对的脚本,check_kibana是上述自定义的,这端配置必须写在“vrrp_script check_kibana ”这段配置的后面
 
    }
 
    virtual_ipaddress {
 
        192.168.122.135/24  #虚拟ip,如果master宕机,虚拟ip会自动漂移到slave上,虚拟ip必须和实际的ip在同一个网段
 
    }
}
 
virtual_server 192.168.122.135 5601 {
   delay_loop 3 #健康检查时间间隔,单位秒
   lb_algo rr #负载调度算法,支持的算法:rr|wrr|lc|wlc|lblc|sh|dh
   lb_kind DR #LVS的类型:有NAT|DR|TUN
   persistence_timeout 50 #会话保持时间,单位秒(可以适当延长时间以保持session)
   protocol TCP #转发协议类型,有TCP和UDP两种
   real_server 192.168.122.118 5601 { #定义RS 服务
      weight 1 #权重
   }
}

 1.6 创建检测脚本

vim /opt/module/chk_kibana.sh
# 输入以下内容
 
#!/bin/bash
port_num=$(ss -nltp|grep -wc 5601)
 
if [ $port_num -eq 0 ];then
 
    pkill keepalived
 
fi
# 权限处理
chmod +x chk_kibana.sh
 
sed -i 's/\r$//' chk_kibana.sh

二、启动keepalived

systemctl start keepalived.service

三、检测是否安装成功

3.1 查看服务状态

systemctl status keepalived.service

3.2  查看网络接口绑定情况

ip addr

使用上述命令,会看到有且只有一个机器的网卡绑定了虚拟ip 

四、注意事项

4.1  Kibana 不能绑定具体的ip

server.host: "0.0.0.0"

4.2  防火墙开放5601、112端口

你可能感兴趣的:(ELK技术栈,linux,运维,keepalived,高可用,kibana)