写这篇文章的目的是,
如果遇到keepalived访问不了的情况下,不要乱猜,直接看日志信息,在日志信息里面会有相应的提示,然后根据提示去解决问题。
希望对你们有帮助!
在不知道如何查看启动日志前,认为:只要用ifconfig,在网卡中存在这个虚拟ip即可,但是很失望的没有出现,但是用ip -a能看到具体网卡信息,以及能ping ip能通
第一次接触到keepalived,遇到这种无法访问的情况,查阅了网上很多文章,都没有相对应的解决方法,最后只能去查看日志,然后根据日志提示一点点的修改,最后成功解决了。
问题描述:
近日,使用keepalived + nginx 搭建主从模式,keepalived启动成功,但是使用虚拟IP访问确访问不了。
不得已需要查看keepalived的启动日志,根据启动日志的错误信息去解决问题。
启动命令 ~ 针对Centos7以下的版本,centos的命令发生改变
// 启动
service keepalived start
// 停止
service keepalived stop
查看日志命令
tail -f /var/log/messages
keepalived配置信息
主节点:192.168.50.131
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.50.131
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state MASTER # 备份服务器上将 MASTER 改为 BACKUP
interface eth0 //网卡
virtual_router_id 41 # 主、备机的 virtual_router_id 必须相同
priority 100 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.50.140
}
}
从节点:192.168.50.132
! Configuration File for keepalived
global_defs {
notification_email {
acassen@firewall.loc
failover@firewall.loc
sysadmin@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 192.168.50.131
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_http_port {
script "/usr/local/src/nginx_check.sh"
interval 2 #(检测脚本执行的间隔)
weight 2
}
vrrp_instance VI_1 {
state BACKUP # 备份服务器上将 MASTER 改为 BACKUP
interface eth0 //网卡
virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同
priority 90 # 主、备机取不同的优先级,主机值较大,备份机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.50.140
}
}
在启动日志中一直在刷
Keepalived_vrrp: ip address associated with VRID not present in received packet
解决方法:
在同一网段内非同一套keepalive集群中的virtual_router_id 值不能相同,如果相同会在messages中收到VRRP错误包 ,所以需要更改 virual_router_id。
当然,为了解决这个问题,修改了虚拟IP的地址,然后和virtual_router_id的值。
效果演示
1、访问从节点:
2、使用虚拟IP访问
虚拟机表现
ip a
ping 虚拟IP
写这篇文章的目的是,
如果遇到keepalived访问不了的情况下,不要乱猜,直接看日志信息,在日志信息里面会有相应的提示,然后根据提示去解决问题。
希望对你们有帮助!
在不知道如何查看启动日志前,认为:只要用ifconfig,在网卡中存在这个虚拟ip即可,但是很失望的没有出现,但是用ip -a能看到具体网卡信息,以及能ping ip能通
第一次接触到keepalived,遇到这种无法访问的情况,查阅了网上很多文章,都没有相对应的解决方法,最后只能去查看日志,然后根据日志提示一点点的修改,最后成功解决了。