keepalived+nginx实现高可用(二)

来源:互联网 发布:进口软件 增值税 编辑:程序博客网 时间:2024/05/29 18:28

Keepalived的所有功能是配置keepalived.conf文件来实现的,下面我们来配置keepalived.conf


一。 Master节点(192.168.43.129)配置 vi  /usr/local/program/keepalived/etc/keepalived/keepalived.conf

! Configuration File for keepalived#全局部分global_defs {   notification_email {    admin@jstudio.org   #设置报警邮件单个或多个地址    service@jstudio.org     manager@jstudio.org    }   notification_email_from monitor@jstudio.org  #邮件的发送地址   smtp_server 192.168.200.1#smtp 地址   smtp_connect_timeout 30#连接smtp服务器的超时时间   router_id NODE_A#本节点的标识}## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。## 如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。## 其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。## 检测 nginx 状态的脚本vrrp_script chk_nginx {     script "/usr/local/program/keepalived/sbin/nginx_check.sh"        # 检测 nginx 状态的脚本路径     interval 2 # 检测时间间隔     weight -20 # 如果条件成立,权重-20  }## 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称vrrp_instance VI_1 {    state MASTER# 指定A节点为主节点 备用节点上设置为BACKUP即可     interface eno16777736# 绑定的网卡,我机器上是eno16777736,用ifconfig查看    virtual_router_id 51# VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组mcast_src_ip 192.168.43.129 # 本机 IP 地址    priority 100# 主节点的优先级(1-254之间),备用节点必须比主节点优先级低nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题    advert_int 1# 设定主备之间检查时间(组播信息发送间隔),两个节点设置必须一样    authentication {# 设置验证信息,两个节点必须一致        auth_type PASS# 设定验证类型        auth_pass 1111# 设定密码    }## 虚拟IP池, 两个节点设置必须一样    virtual_ipaddress {# 虚拟 ip,可以定义多个        192.168.43.120    }## 将 track_script 块加入 instance 配置块     track_script {         chk_nginx ## 执行 Nginx 监控的服务 } }

email通知(notification_email、smtp_server、smtp_connect_timeout):用于服务有故障时发送邮件报警,可选项,不建议用。需要系统开启sendmail服务,建议用第三独立监控服务,如用nagios全面监控代替。 

二。 Slave节点(192.168.43.130)配置 vi  /usr/local/program/keepalived/etc/keepalived/keepalived.conf

! Configuration File for keepalived#全局部分global_defs {   notification_email {    admin@jstudio.org   #设置报警邮件单个或多个地址    service@jstudio.org     manager@jstudio.org    }   notification_email_from monitor@jstudio.org  #邮件的发送地址   smtp_server 192.168.200.1#smtp 地址   smtp_connect_timeout 30#连接smtp服务器的超时时间   router_id NODE_B#本节点的标识}## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。## 如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。## 其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。## 检测 nginx 状态的脚本vrrp_script chk_nginx {     script "/usr/local/program/keepalived/sbin/nginx_check.sh"        # 检测 nginx 状态的脚本路径     interval 2 # 检测时间间隔     weight -20 # 如果条件成立,权重-20  }## 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称vrrp_instance VI_1 {    state BACKUP# 指定B节点为备用节点 主节点上设置为MASTER即可     interface eno16777736# 绑定的网卡,我机器上是eno16777736,用ifconfig查看    virtual_router_id 51# VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组mcast_src_ip 192.168.43.130 # 本机 IP 地址    priority 80# 主节点的优先级(1-254之间),备用节点必须比主节点优先级低nopreempt # 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题    advert_int 1# 设定主备之间检查时间(组播信息发送间隔),两个节点设置必须一样    authentication {# 设置验证信息,两个节点必须一致        auth_type PASS# 设定验证类型        auth_pass 1111# 设定密码    }## 虚拟IP池, 两个节点设置必须一样    virtual_ipaddress {# 虚拟 ip,可以定义多个        192.168.43.120    }## 将 track_script 块加入 instance 配置块     track_script {         chk_nginx ## 执行 Nginx 监控的服务 } }

三。 编写 Nginx 状态检测脚本 /usr/local/program/keepalived/sbin/nginx_check.sh ( 在keepalived.conf配置中被keepalived调用) 

#!/bin/bashnginx_state=`ps -C nginx --no-header | wc -l`if [ $nginx_state == 0 ];then    /home/zsg/program/nginx/sbin/nginx    sleep 2    if [ `ps -C nginx --no-header |wc -l` == 0 ];then        killall keepalived    fifi


四。启动 Keepalived 

# service keepalived start Starting keepalived: [  OK  ] [root@zk-02 conf]# ps -ef|grep keepalivedroot       7901      1  0 17:13 ?        00:00:00 /usr/local/program/keepalived/sbin/keepalived -D -f /usr/local/program/keepalived/etc/keepalived/keepalived.confroot       7902   7901  0 17:13 ?        00:00:00 /usr/local/program/keepalived/sbin/keepalived -D -f /usr/local/program/keepalived/etc/keepalived/keepalived.confroot       7903   7901  0 17:13 ?        00:00:00 /usr/local/program/keepalived/sbin/keepalived -D -f /usr/local/program/keepalived/etc/keepalived/keepalived.confroot       7911   3035  0 17:14 pts/0    00:00:00 grep --color=auto keepalived

我们在master节点(192.168.43.129)上输入命令 

# ip add


可以看到网卡绑定了虚拟ip  192.168.43.120


五。Keepalived 服务管理命令: 


停止:service keepalived stop 
启动:service keepalived start 
重启:service keepalived restart 
查看状态:service keepalived status 


原创粉丝点击