keepalived安装部署
ip | 主机名 | 备注 |
---|---|---|
172.16.121.173 | keepalived | 主节点 |
172.16.121.174 | keepalived-client | 从节点 |
172.16.121.172 | vip | 不涉及节点ip |
yum源安装keepalived
先安装依赖包
[root@keepalived ~]# yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
安装服务
[root@keepalived ~]# yum install -y keepalived
初始化及启动
[root@keepalived ~]# systemctl start keepalived //启动keepalived
[root@keepalived ~]# systemctl enable keepalived //加入开机启动keepalived
[root@keepalived ~]# systemctl restart keepalived //重新启动keepalived
修改日志配置文件
[root@keepalived ~]# vi /etc/sysconfig/keepalived
# Options for keepalived. See `keepalived --help' output and keepalived(8) and
# keepalived.conf(5) man pages for a list of all options. Here are the most
# common ones :
#
# --vrrp -P Only run with VRRP subsystem.
# --check -C Only run with Health-checker subsystem.
# --dont-release-vrrp -V Dont remove VRRP VIPs & VROUTEs on daemon stop.
# --dont-release-ipvs -I Dont remove IPVS topology on daemon stop.
# --dump-conf -d Dump the configuration data.
# --log-detail -D Detailed log messages.
# --log-facility -S 0-7 Set local syslog facility (default=LOG_DAEMON)
#
KEEPALIVED_OPTIONS="-D -d -S 0"
将最后一行修改成这样
添加日志路径
vi /etc/rsyslog.conf
local0.* /var/log/keepalived.log
重启两个服务
[root@keepalived ~]# service rsyslog restart
Redirecting to /bin/systemctl restart rsyslog.service
[root@keepalived ~]# service keepalived restart
Redirecting to /bin/systemctl restart keepalived.service
查看日志
[root@keepalived ~]# tail -f /var/log/keepalived.log
2020-03-31T15:31:16.650143-04:00 keepalived Keepalived_healthcheckers[15516]: Adding sorry server [192.168.200.200]:1358 to VS [10.10.10.2]:1358
2020-03-31T15:31:16.650272-04:00 keepalived Keepalived_healthcheckers[15516]: Removing alive servers from the pool for VS [10.10.10.2]:1358
2020-03-31T15:31:16.650396-04:00 keepalived Keepalived_healthcheckers[15516]: Remote SMTP server [127.0.0.1]:25 connected.
2020-03-31T15:31:16.691340-04:00 keepalived Keepalived_healthcheckers[15516]: SMTP alert successfully sent.
2020-03-31T15:31:16.986544-04:00 keepalived Keepalived_healthcheckers[15516]: Timeout connecting server [192.168.201.100]:443.
2020-03-31T15:31:16.986697-04:00 keepalived Keepalived_healthcheckers[15516]: Check on service [192.168.201.100]:443 failed after 3 retry.
2020-03-31T15:31:16.986840-04:00 keepalived Keepalived_healthcheckers[15516]: Removing service [192.168.201.100]:443 from VS [192.168.200.100]:443
2020-03-31T15:31:16.986966-04:00 keepalived Keepalived_healthcheckers[15516]: Lost quorum 1-0=1 > 0 for VS [192.168.200.100]:443
2020-03-31T15:31:16.987094-04:00 keepalived Keepalived_healthcheckers[15516]: Remote SMTP server [127.0.0.1]:25 connected.
2020-03-31T15:31:17.027846-04:00 keepalived Keepalived_healthcheckers[15516]: SMTP alert successfully sent.
安装httpd服务
[root@keepalived ~]# yum -y install httpd
修改keepalived.conf配置文件
[root@keepalived ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
aming@aminglinux.com
}
notification_email_from root@aminglinux.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/root/httpd.sh" #脚本
interval 3
}
vrrp_instance VI_1 {
state MASTER #名称
interface eno16777736
virtual_router_id 51
priority 100 #权重从节点要小于主节点
advert_int 1
authentication {
auth_type PASS
auth_pass 123456 #密码
}
virtual_ipaddress {
172.16.121.172 #vip
}
track_script {
httpd
}
}
编写脚本/root/httpd.sh
[root@keepalived-client ~]# cat /root/httpd.sh
#!/bin/bash
d=`date --date today +%Y%m%d_%H:%M:%S`
n=`ps -C httpd --no-heading | wc -l`
if [ $n -eq "0" ];then
systemctl start httpd
n2=`ps -C httpd --no-heading | wc -l`
if [ $n -eq "0" ];then
echo "$d httpd down,keepalived will stop" >> /var/log/check_httpd.log
systemctl stop keepalived
fi
fi
以上所有操作主节点和从节点都要进行建议可主节点操作之后克隆到从节点进行更改主机名 权重 等
最后向httpd网页呈现中加入各自名称
主节点:vi /var/www/html/index.html
master
从节点:vi /var/www/html/index.html
backup
重启服务
systemctl restart keepalived
service httpd restart
然后使用vip检查结果
关主节点keepalived服务
完成