keepalived很奇怪,执行systemctl start keepalived
虽然有时候就没有启动成功,但是它从来不报错,简直过分
所以每次启动keepalived ,都要手动systemctl status keepalived查看一下是否启动成功
如果没有启动成功,就查看系统日志 /var/log/message
[root@nginx-backup ~]# cat /var/log/messages
Mar 19 00:54:07 nginx-backup Keepalived_vrrp[2103]: Opening file '/etc/keepalived/keepalived.conf'.
Mar 19 00:54:07 nginx-backup Keepalived_vrrp[2103]: VRRP_Instance(VI_1) removing protocol VIPs.
Mar 19 00:54:07 nginx-backup Keepalived_vrrp[2103]: Using LinkWatch kernel netlink reflector...
Mar 19 00:54:07 nginx-backup Keepalived_vrrp[2103]: VRRP_Instance(VI_1) Entering BACKUP STATE
Mar 19 00:54:07 nginx-backup Keepalived_vrrp[2103]: VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
Mar 19 00:54:07 nginx-backup Keepalived[2101]: Stopping
Mar 19 00:54:07 nginx-backup systemd: Stopping LVS and VRRP High Availability Monitor...
Mar 19 00:54:07 nginx-backup Keepalived_healthcheckers[2102]: Stopped
看看配置文件,发生了什么??为什么LVS服务自动给我停了
[root@nginx-backup ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id backup
script_user root
enable_script_security
}
# 每隔5s中执行一次/etc/keepalived/keepalived_check_mysql.sh脚本
# 脚本的作用: 如果该节点的mysql服务如果访问不了,就执行停止keepslived指令
vrrp_script check_run {
script "/etc/keepalived/keepalived_check_mysql.sh"
interval 5
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface eth0
virtual_router_id 89
priority 50
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.208.77/24
}
track_script {
check_run
}
}
[root@nginx-backup ~]# cat /etc/keepalived/keepalived_check_mysql.sh
#!/usr/bin/env bash
#
#
/usr/bin/mysql -e "show status" &>/dev/null
if [ $? -ne 0 ] ;then
systemctl stop keepalived
fi
我忽然想起来,mysql被我修改了配置文件必须要密码登录,开启了权限验证
所以这里直接访问mysql是被拒绝的,当上一条指令执行不成功,脚本中就执行了systemctl stop keepalived,,自动帮我将keepalived给停了
做如下修改
#!/usr/bin/env bash
#
#
/usr/bin/mysql -uty -p'123456' -e "show status" &>/dev/null
if [ $? -ne 0 ] ;then
systemctl stop keepalived
现在可以启动keepalived看一下
[root@nginx-backup ~]# systemctl start keepalived.service
[root@nginx-backup ~]# systemctl status keepalived.service
● keepalived.service - LVS and VRRP High Availability Monitor
Loaded: loaded (/usr/lib/systemd/system/keepalived.service; disabled; vendor preset: disabled)
Active: active (running) since Thu 2020-03-19 01:25:47 CST; 6s ago
Process: 3493 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (code=exited, status=0/SUCCESS)
# 启动成功啦
# 看看vip 192.168.208.77是否绑定在了网卡eth0上
[root@nginx-backup ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:50:56:3e:12:30 brd ff:ff:ff:ff:ff:ff
inet 192.168.208.137/24 brd 192.168.208.255 scope global eth0
valid_lft forever preferred_lft forever
inet 192.168.208.77/24 scope global secondary eth0
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:fe3e:1230/64 scope link
valid_lft forever preferred_lft forever
# 哈哈,没有问题,搞定