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
阅读全文
2 0
- keepalived+nginx实现高可用(二)
- nginx+keepalived实现高可用
- Keepalived+Nginx实现高可用
- nginx+keepalived实现高可用
- keepalived+nginx实现nginx的高可用
- Nginx高可用使用Keepalived+nginx实现
- nginx和keepalived实现nginx高可用
- nginx+keepalived实现高可用负载均衡
- Nginx+Keepalived实现站点高可用
- Nginx+Keepalived实现站点高可用
- Nginx+Keepalived实现站点高可用
- Keepalived+Nginx实现负载均衡高可用
- keepalived + nginx 实现高可用集群方案
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- Nginx+Keepalived实现站点高可用
- Keepalived+Nginx实现高可用(HA)
- Keepalived+Nginx实现高可用(HA)
- PAT1036.跟奥巴马一起编程
- JDK源码解析之HashSet
- JAVA 扩展(待整理)
- js字符串
- linux命令
- keepalived+nginx实现高可用(二)
- JAVA CAS原理深度分析
- 可移植的oat文件
- 干货5:顺序队列
- pyspider 控制台说明
- 网络流24题 (6/21)
- 两端都是圆角的进度条和动态进度条
- Kafka数据可靠性与一致性解析
- 浅析Android权限机制(一) —— Android的权限机制