简介:
Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障。Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
本文主要介绍利用keepalived来监控sparkJDBC进程,当一个节点的sparkJDBC进程宕机之后,能自动的将VIP切换到另外的节点上。
Keepalived的来监测sparkJDBC进程
应用说明:利用keepalived,实现VIP (virtual IP) 的飘动;检测sparkJDBC进程,当集群服务器上的一个进程挂掉之后,可以自动飘到另一台服务器上。
1、安装配置好keepalived之后。(本文配置在10.199.33.12和10.199.33.13)目录为:
2、修改keepalived的配置文件:keepalived.conf
4、配置文件的内容如下:
vrrp_script chk_http_port {
script "/etc/keepalived/check-sparksubmit-server.sh"
interval 2 #间隔时间
weight 0
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state BACKUP
interface em1 #服务器的网卡
virtual_router_id 51
priority 90 #优先级
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
chk_http_port
}
virtual_ipaddress {
10.199.33.15 #虚拟的IP
}
}
}
4、进程监测脚本的目录要与keepalived配置文件一致:
配置文件中的内容:script "/etc/keepalived/check-sparksubmit-server.sh"
5、shell脚本的程序的内容如下:红色是进程的名字,通过它获取进程ID。
#!/bin/bash
ldapPid=$(ps -ef |grep SparkJDBCmdss8|grep -v grep|awk '{print $2}'|grep -v PID)
#echo $ldapPid
if [ "$ldapPid" == "" ]; then
service keepalived stop
exit 1
else
exit 0
fi
测试:
1、启动所有点上的keepalived
2、通过命令查看虚拟IP的情况:ip a
kvdb02(10.199.33.12)上有VIP:
kvdb03(10.199.33.13)上没有VIP:
3、启动所有节点上的sparkJDBC进程:
4、kill掉kvdb02的SparkSubmit进程:
5、再次查看虚拟IP的情况:ip a
kvdb02(10.199.33.12)上没有VIP:
kvdb03(10.199.33.13)上有VIP:
到此就全部测完了,这是第一次写博客!!!有什么不对的地方请指正!
2017-09-11,写于武汉出差。