Keepalived 实现 Kibana 的高可用

简介: Keepalived 实现 Kibana 的高可用



前言

       Keepalived 是一个用于实现高可用性的开源软件,通常用于在多个服务器之间提供故障转移和负载均衡。结合 Keepalived 和 Kibana 可以实现 Kibana 的高可用性,确保即使在某一节点故障的情况下,用户仍然能够访问和使用 Kibana。以下来介绍这一方案的实现

一、 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端口

相关文章
|
运维 Linux
keepalived详解(二)——keepalived安装与配置文件
keepalived详解(二)——keepalived安装与配置文件
1011 1
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
406 4
|
存储 数据可视化 数据库
团队文档管理有困难?总有一款工具合适你
本文介绍了团队文档管理的重要性及其在提升工作效率、保障协同作业和知识传承中的关键作用。随后,详细评述了六款广受好评的团队文档管理工具:板栗看板、Notion、Confluence、Quip、Google Workspace 和 Microsoft 365,分别从功能类型、发展历程、价格费用、产品特色、优缺点、适用场景及应用案例等方面进行了对比分析,旨在帮助读者根据自身需求选择最合适的工具。
团队文档管理有困难?总有一款工具合适你
|
安全 Windows
U盘写保护无法格式化如何恢复U盘?
很多人在使用U盘时,可能会遇到一种非常令人头疼的问题:U盘突然无法格式化,并提示“写保护”。这种情况不仅让文件操作变得困难,也让设备的正常使用受到影响。那么,U盘写保护到底是怎么回事?又该如何解决这个问题?今天,我们来深入探讨这个话题,帮助你找到合适的解决方法,恢复U盘的正常使用。
|
机器学习/深度学习 监控 算法框架/工具
使用Python实现深度学习模型:人脸识别与人脸表情分析
【7月更文挑战第18天】 使用Python实现深度学习模型:人脸识别与人脸表情分析
613 2
|
缓存 Kubernetes 网络协议
深入解析微服务架构中的服务发现机制
深入解析微服务架构中的服务发现机制
337 0
|
机器学习/深度学习 算法 调度
「AIGC算法」爬山算法详解
**爬山算法是迭代求解优化问题的局部搜索方法,从随机解开始,逐步向邻域内更优解移动,直至达到局部极值。特点包括简单性、可能陷入局部最优和依赖初始解。应用包括调度、路径规划和参数调优。改进策略如随机重启、模拟退火和多起始点可帮助跳出局部最优。主要挑战是局部最优、平坦区域和高维问题。**
733 0
|
消息中间件 SQL Kafka
实时计算 Flink版产品使用问题之从检查点重启任务,怎么在YAML配置文件中添加检查点的路径
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
实时计算 Flink版产品使用问题之从检查点重启任务,怎么在YAML配置文件中添加检查点的路径
|
SQL 前端开发 JavaScript
springboot+vue 前后端交互实现(mysql+springboot+vue)
springboot+vue 前后端交互实现(mysql+springboot+vue)
1249 1
|
Kubernetes 监控 安全
【K8S系列】深入解析DaemonSet
【K8S系列】深入解析DaemonSet
1070 0