keepalived配置文件路径:/etc/keepalived/keepalived.conf
更多keepalived介绍请参考:http://blog.csdn.net/huwh_/article/details/77113410

1. keepalived.conf

1.1. MASTER(主机配置)

global_defs {router_id proxy-keepalived
}vrrp_script check_nginx {script "/etc/keepalived/scripts/check_nginx.sh" interval 3  weight 2
}vrrp_instance VI_1 {state MASTERinterface eth2virtual_router_id 15priority 100advert_int 1authentication {auth_type PASSauth_pass xxx}track_script {check_nginx }virtual_ipaddress {180.101.115.139218.98.38.29}nopreemptnotify_master "/etc/keepalived/keepalived_notify.sh master"notify_backup "/etc/keepalived/keepalived_notify.sh backup"notify_fault "/etc/keepalived/keepalived_notify.sh fault"notify_stop "/etc/keepalived/keepalived_notify.sh stop"
}

1.2. BACKUP(备机配置)

global_defs {router_id proxy-keepalived
}vrrp_script check_nginx {script "/etc/keepalived/scripts/check_nginx.sh" interval 3  weight 2
}vrrp_instance VI_1 {state BACKUP interface eth2virtual_router_id 15priority 99advert_int 1authentication {auth_type PASSauth_pass xxx}track_script {check_nginx }virtual_ipaddress {180.101.115.139218.98.38.29}nopreemptnotify_master "/etc/keepalived/keepalived_notify.sh master"notify_backup "/etc/keepalived/keepalived_notify.sh backup"notify_fault "/etc/keepalived/keepalived_notify.sh fault"notify_stop "/etc/keepalived/keepalived_notify.sh stop"
}

1.3. 注意事项

1、指定Nginx健康检测脚本:/etc/keepalived/scripts/check_nginx.sh
2、主备配置差别主要为(建议这么配置):

  • 主机:(state MASTER;priority 100)
  • 备机:(state BACKUP;priority 99)
  • 非抢占:nopreempt
    或者:
  • 主机:(state BACKUP;priority 100)
  • 备机:(state BACKUP;priority 100)
  • 默认抢占
    3、指定VIP
    virtual_ipaddress {180.101.115.139218.98.38.29}

4、可以指定为非抢占:nopreempt,即priority高不会抢占已经绑定VIP的机器。
5、制定绑定IP的网卡: interface eth2
6、可以指定keepalived状态变化通知

 notify_master "/etc/keepalived/keepalived_notify.sh master"notify_backup "/etc/keepalived/keepalived_notify.sh backup"notify_fault "/etc/keepalived/keepalived_notify.sh fault"notify_stop "/etc/keepalived/keepalived_notify.sh stop"

7、virtual_router_id 15值,主备值一致,但建议不应与集群中其他Nginx机器上的相同

2. Nginx健康检测脚本

在Nginx配置目录下(/etc/nginx/conf.d/)增加health.conf的配置文件,该配置文件用于配置Nginx health的接口。

server {listen       80  default_server;server_name  localhost;default_type text/html;return 200 'Health';
}

Nginx健康检测脚本:/etc/keepalived/scripts/check_nginx.sh

2.1. 检查接口调用是否为200

#!/bin/sh
set -xtimeout=30 #指定默认30秒没返回200则为非健康,该值可根据实际调整if [ -n ${timeout} ];thenhttpcode=`curl -sL -w %{http_code} -m ${timeout} http://localhost -o /dev/null`
elsehttpcode=`curl -sL -w %{http_code}  http://localhost -o /dev/null`
fiif [ ${httpcode} -ne 200 ];thenecho `date`':  nginx is not healthy, return http_code is '${httpcode} >> /etc/keeperalived/keepalived.logkillall keepalivedexit 1
elseexit 0
fi

2.2. 检查Nginx进程是否运行

#!/bin/sh
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];thenecho "$(date) nginx pid not found">>/etc/keepalived/keepalived.logkillall keepalived
fi

3. Keepalived状态通知脚本

#!/bin/bash
set -xwarn_receiver=$1
ip=$(cat /etc/server.info|grep IPS)
warningInfo="${ip}_keepalived_changed_status_to_$1"
warn-report --user admin --key=xxxx --target=${warn_receiver} ${warningInfo}
echo $(date)  $1 >> /etc/keepalived/status

说明:

  1. ip获取本机IP,可换成其他脚本,本例中IP获取是基于特殊环境的配置文件,其他地方不适用。
  2. 告警工具根据自己指定。

4. keepalived 切 VIP

例如将 A 机器上的 VIP 迁移到B 机器上。

4.1. 停止keepalived服务

停止被迁移的机器(A机器)的keepalived服务。

systemctl stop keepalived

4.2. 查看日志

解绑 A机器 VIP的日志

Sep 19 14:28:09 localhost systemd: Stopping LVS and VRRP High Availability Monitor...
Sep 19 14:28:09 localhost Keepalived[45705]: Stopping
Sep 19 14:28:09 localhost Keepalived_vrrp[45707]: VRRP_Instance(twemproxy) sent 0 priority
Sep 19 14:28:09 localhost Keepalived_vrrp[45707]: VRRP_Instance(twemproxy) removing protocol VIPs.
Sep 19 14:28:09 localhost Keepalived_healthcheckers[45706]: Stopped
Sep 19 14:28:10 localhost Keepalived_vrrp[45707]: Stopped
Sep 19 14:28:10 localhost Keepalived[45705]: Stopped Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2
Sep 19 14:28:10 localhost systemd: Stopped LVS and VRRP High Availability Monitor.
Sep 19 14:28:10 localhost ntpd[1186]: Deleting interface #10 bond0, 192.168.99.9#123, interface stats: received=0, sent=0, dropped=0, active_time=6755768 secs

绑定 B 机器 VIP的日志

Sep 17 17:20:25 localhost systemd: Starting LVS and VRRP High Availability Monitor...
Sep 17 17:20:26 localhost Keepalived[34566]: Starting Keepalived v1.3.5 (03/19,2017), git commit v1.3.5-6-g6fa32f2
Sep 17 17:20:26 localhost Keepalived[34566]: Opening file '/etc/keepalived/keepalived.conf'.
Sep 17 17:20:26 localhost Keepalived[34568]: Starting Healthcheck child process, pid=34569
Sep 17 17:20:26 localhost Keepalived[34568]: Starting VRRP child process, pid=34570
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Registering Kernel netlink reflector
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Registering Kernel netlink command channel
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Registering gratuitous ARP shared channel
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Opening file '/etc/keepalived/keepalived.conf'.
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Truncating auth_pass to 8 characters
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: VRRP_Instance(twemproxy) removing protocol VIPs.
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: Using LinkWatch kernel netlink reflector...
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: VRRP_Instance(twemproxy) Entering BACKUP STATE
Sep 17 17:20:26 localhost Keepalived_vrrp[34570]: VRRP sockpool: [ifindex(4), proto(112), unicast(0), fd(10,11)]
Sep 17 17:20:26 localhost systemd: Started LVS and VRRP High Availability Monitor.
Sep 17 17:20:26 localhost kernel: IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
Sep 17 17:20:26 localhost kernel: IPVS: Connection hash table configured (size=4096, memory=64Kbytes)
Sep 17 17:20:26 localhost kernel: IPVS: Creating netns size=2192 id=0
Sep 17 17:20:26 localhost kernel: IPVS: Creating netns size=2192 id=1
Sep 17 17:20:26 localhost kernel: IPVS: ipvs loaded.
Sep 17 17:20:26 localhost Keepalived_healthcheckers[34569]: Opening file '/etc/keepalived/keepalived.conf'.

Keepalived常用配置及脚本相关推荐

  1. keepalived安装配置

    安装keepalived wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz tar zxvf nginx-1.2.7.ta ...

  2. kafka创建topic_一网打尽Kafka常用命令、脚本及配置,宜收藏!

    前言 通过前面 7 篇文章的介绍,小伙伴们应该对 Kafka 运行工作原理有一个相对比较清晰的认识了. Kafka是什么?一起来看看吧! Kafka 安装及简单命令使用 Kafka中消息如何被存储到B ...

  3. 一网打尽Kafka常用命令、脚本及配置,宜收藏!

    前言 通过前面 7 篇文章的介绍,小伙伴们应该对 Kafka 运行工作原理有一个相对比较清晰的认识了. Kafka是什么?一起来看看吧! Kafka 安装及简单命令使用 Kafka中消息如何被存储到B ...

  4. zabbix 系统搭建(LAMP环境)+keepalived LVS配置

    zabbix 系统搭建(LAMP环境) 先搭建好LAMP环境 (介绍) 安装zabbix监控主机 (设置监控主机ip为192.168.200.130) wget http://repo.zabbix. ...

  5. Maven pom.xml 全配置(一)常用配置

    Maven pom.xml 全配置(一)常用配置 这里贴出一个Maven中出现频率较高的配置参数注释,方便理解项目中Maven的配置具体的作用.如果在此博文中没有找到你想看到的参数,可以移步Maven ...

  6. 【Android FFMPEG 开发】FFMPEG 交叉编译配置 ( 下载 | 配置脚本 | 输出路径 | 函数库配置 | 程序配置 | 组件配置 | 编码解码配置 | 交叉编译配置 | 最终脚本 )

    文章目录 一.FFMPEG 源码下载 解压 二.交叉编译工具 三.configure 脚本及帮助命令 四.配置 configure 脚本 五.输出目录配置 六.函数库配置 七.程序配置选项 八.组件配 ...

  7. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

  8. lvs keepalived 安装配置详解【转】

    lvs keepalived 安装配置详解 张映 发表于 2012-06-20 分类目录: 服务器相关 前段时间看了一篇文章,lvs做负载均衡根F5差不多,说实话不怎么相信,因为F5没玩过,也无法比较 ...

  9. .net学习笔记----WebConfig常用配置节点介绍

    一.配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config.在WinForm程序中配置文件一般是App.config.在Asp.net中一般默认是 ...

最新文章

  1. 关于码云的一些基本知识_关于教师资格考试的知识点。
  2. R语言可视化散点图(scatter plot)图、为图中的部分数据点添加标签、ggrepel包来帮忙
  3. [转] java的 Collection 和 Map 详解
  4. 互联网共鸣之声:2018年或成为云计算转折之年
  5. 【Java Web后台实验与开发】The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one
  6. Server.UrlEncode UrlDecode 动态绑定gridview列发送接收乱码的问题
  7. SqlServer数据库的常用操作-更新中
  8. 服务器性能发挥,浪潮服务器发挥性能优势,算力“焦虑”问题被解决
  9. C# 创建进程但是失败,原因是什么
  10. android基于开源网络框架asychhttpclient,二次封装为通用网络请求组件
  11. 安卓app可以用python写吗_安卓app可以用python写吗
  12. Linux下面DNS主、辅、转、子域及其委派实验手册
  13. python中await async_asyncio中的async和await
  14. 吴恩达采访人工智能大师实录
  15. 计算机如何调整对比度,怎么调整电脑显示器亮度和对比度
  16. 生物信息学简史,A brief history of bioinformatics- Briefings in Bioinformatics综述解读
  17. bluetooth Specification
  18. 【论文阅读】Whisper: Robust Speech Recognition via Large-Scale Weak Supervision
  19. 学习并掌握结构化写作方法,提高写作能力 ——结构化写作学习笔记(3)
  20. win10要关闭自动更新吗?看完你就有答案了

热门文章

  1. Camunda Workflow BPMN 入门开发实践
  2. Hand-Aurora-bm常见设计
  3. 2022 CCPC 威海 赛后总结
  4. 浙政钉h5微应用开发vue
  5. 雷达系统 学习笔记(七)——相控阵雷达2
  6. VTM10.0代码学习3:DecSlice_decompressSlice()
  7. stm32F103RCT6串口ttl烧录代码手把手教学
  8. 常用电平标准(TTL、RS232、RS485、RS422)
  9. 2023 研究生考试 倒计时 213天
  10. 【Proteus仿真】【STM32单片机】智能温控风扇设计