ip | 主机名 | 备注 |
---|---|---|
172.16.121.173 | keepalived | 主节点 |
172.16.121.174 | keepalived-client | 从节点 |
172.16.121.172 | vip | 不涉及节点ip |
安装部署和告警设置可以查看我上一篇博客: https://blog.csdn.net/miss_miss6/article/details/105230264
配置主从切换qq邮件报警
主节点安装邮件sendmail服务
[root@keepalived keepalived]# yum -y install sendmail* mailx
添加qq邮箱地址和授权码
vi /etc/mail.rc 加到最后
set from=******@qq.com
set smtp=smtp.qq.com
set smtp-auth-user=********@qq.com
set smtp-auth-password=ixqrfnhbwkvoecff QQ邮箱smtp授权码
set smtp-auth=login
重启sendmail
systemctl restart sendmail
编写邮件告警脚本主从都要
[root@keepalived keepalived]# cat /etc/keepalived/notify_wjh
#!/bin/bash
contact='*********@qq.com'
notify() {
mailsubject="$(hostname) to be $1, vip转移"
mailbody="$(date +'%F %T'): vrrp transition, $(hostname) changed to be $1"
echo "$mailbody" | mail -s "$mailsubject" $contact
}
case $1 in
master)
notify master
;;
backup)
notify backup
;;
fault)
notify fault
;;
*)
echo "Usage: $(basename $0) {master|backup|fault}"
exit 1
;;
esac
在修改文件中添加脚本项使其生效,主从都要
[root@keepalived 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
}
track_script {
httpd
}
notify_master "/etc/keepalived/notify_wjh master"
notify_backup "/etc/keepalived/notify_wjh backup"
notify_fault "/etc/keepalived/notify_wjh fault"
}
重启两端的服务
systemctl restart keepalived
测试
关闭主节点keepalived服务
vip就切换到从节点了邮件也发送出来了
NAT模式LVS搭建
ip | 主机名 | 备注 |
---|---|---|
172.16.121.173(内网),172.16.150.100(公网) | keepalived | 主节点 |
172.16.121.174 | keepalived-client | 从节点 |
172.16.121.172 | vip | 不涉及节点ip |
主节点上要添加一个公网并且是仅主机模式
主机的安装ipvsadm服务
[root@keepalived ~]# yum -y install ipvsadm
编写lvs脚本
vi /usr/local/sbin/lvs.sh
#! /bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eno16777736/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eno33554960/send_redirects
/usr/sbin/ipvsadm -C
/usr/sbin/ipvsadm -A -t 172.16.150.100:80 -s wlc
/usr/sbin/ipvsadm -a -t 172.16.150.100:80 -r 172.16.121.174:80 -m -w 1
将从节点/etc/sysconfig/network-scripts/ifcfg-eno16777736中的GATEWAY换成主机的内网ip
GATEWAY=172.16.121.173
重起网卡
systemctl restart network
重启服务
[root@keepalived ~]# systemctl restart keepalived
关闭主节点httpd服务
[root@keepalived ~]# service httpd stop
Redirecting to /bin/systemctl stop httpd.service
测试使用公网查看
完成