2019独角兽企业重金招聘Python工程师标准>>>

用keepalived配置高可用集群-1

背景需求:用keepalived配置高可用,监控NGINX服务,现在企业用NGINX做负载均衡。

准备工作:

•设置hostname ,分别为 master 和backup

主上设置 hostname

#hostnamectl set-hostname master

从上设置 hostname

#hostnamectl set-hostname backup

•两台机器, 都是 centos7.3,设置网卡 ens33 如下:

master 192.168.71.100

backup 192.168.71.166

•关闭防火墙

主和从上都操作

# iptables -F 清除规则

# service iptables save 保存规则

主和从都关闭 selinux

# setenforce 0 临时关闭

# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config 重启后永久生效

两台机器都安装keepalived,执行yum install -y keepalived

• 两台机器都安装nginx, 执行yum install -y nginx

•  编辑master上keepalived配置文件

• 设定vip为192.168.71.110

# > /etc/keepalived/keepalived.conf //清空原配置文件内容

# vim /etc/keepalived/keepalived.conf  //加入如下:

global_defs {

notification_email {

aming@aminglinux.com

}

notification_email_from root@aminglinux.com

smtp_server 127.0.0.1

router_id LVS_DEVEL

}

vrrp_script chk_nginx {

script "/usr/local/sbin/check_ng.sh"

interval 3

}

vrrp_instance VI_1 {

state MASTER

interface ens33

virtual_router_id 51

priority 100

advert_int 1

authentication {

auth_type PASS

auth_pass aminglinux>com

}

virtual_ipaddress {

192.168.71.110

}

track_script {

chk_nginx

}

}

 • 编辑master监控脚本

# vim /usr/local/sbin/check_ng.sh //加入如下:

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

systemctl start nginx

n2=`ps -C nginx --no-heading|wc -l`

if [ $n2 -eq "0" ]; then

echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

systemctl stop keepalived

fi

fi

• 给脚本755权限

#chmod 755 /usr/local/sbin/check_ng.sh

启动master服务

#systemctl start  keepalived

[root@wjh-01 selinux]# ps aux|grep keepalived //keepalived服务已启动

root 4307 0.0 0.1 126340 1856 pts/0 S+ 14:39 0:00 vi /etc/keepalived/keepalived.conf

root 25588 1.7 0.1 120212 1464 ? Ss 15:19 0:29 /usr/sbin/keepalived -D

root 25589 0.0 0.3 126824 3300 ? S 15:19 0:00 /usr/sbin/keepalived -D

root 50572 0.1 0.3 131148 3008 ? S 15:43 0:00 /usr/sbin/keepalived -D

root 51002 0.0 0.0 112664 972 pts/1 R+ 15:47 0:00 grep --color=auto kee

[root@wjh-01 selinux]# ps aux|grep nginx //nginx服务已启动

root 48392 0.0 0.2 122284 2072 ? Ss 15:41 0:00 nginx: master process nginx

nginx 48394 0.0 0.3 122712 3104 ? S 15:41 0:00 nginx: worker process

root 51064 0.0 0.0 112664 972 pts/1 R+ 15:47 0:00 grep --color=auto nginx

• 查看定义的VIP也启动

用keepalived配置高可用集群-2

•  编辑backup上keepalived配置文件

# > /etc/keepalived/keepalived.conf //清空原配置文件内容

# vim /etc/keepalived/keepalived.conf  //加入如下:

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 "/usr/local/sbin/check_ng.sh"

#定义检测nginx的启动脚本

interval 3

#3秒检查一次服务

}

#keepalived的CHK模块,检测NGINX服务是否启用

vrrp_instance VI_1 {

state BACKUP

#定义角色是主,还是从

interface ens33

#定义那块网卡,发送VRRP协议

virtual_router_id 51

#定义路由ID,主从保持一致

priority 90

#定义权重

advert_int 1

authentication {

auth_type PASS

auth_pass aminglinux>com

}

#定义认证机制是PASS

virtual_ipaddress {

192.168.71.110

}

#定义VIP(对外提供服务的IP)

track_script {

chk_nginx

}

}

• 编辑backup监控脚本

# vim /usr/local/sbin/check_ng.sh //加入如下:

#!/bin/bash

#时间变量,用于记录日志

d=`date --date today +%Y%m%d_%H:%M:%S`

#计算nginx进程数量

n=`ps -C nginx --no-heading|wc -l`

#如果进程为0,则启动nginx,并且再次检测nginx进程数量,

#如果还为0,说明nginx无法启动,此时需要关闭keepalived

if [ $n -eq "0" ]; then

systemctl start nginx

n2=`ps -C nginx --no-heading|wc -l`

if [ $n2 -eq "0" ]; then

echo "$d nginx down,keepalived will stop" >> /var/log/check_ng.log

systemctl stop keepalived

fi

fi

• 给脚本755权限

#chmod 755 /usr/local/sbin/check_ng.sh

• 启动backup服务

#systemctl start  keepalived

用keepalived配置高可用集群-3

测试

通过浏览器测试两台机器上的 web 内容 http://192.168.71.110。为了区分开,我们可以

把 nginx 的默认页修改一下:

在master 上执行

# echo "master" >/usr/share/nginx/html/index.html

在 backup上执行

# echo "backup" >/usr/share/nginx/html/index.html

• 先确定好两台机器上nginx差异,比如可以通过curl -I 来查看nginx版本

• 测试1:关闭master上的nginx服务

• 测试2:关闭master上的keepalived服务

[root@wjh-01 ~]# curl 192.168.71.110

master

[root@wjh-01 ~]# systemctl stop keepalived

[root@wjh-01 ~]# curl 192.168.71.110

backup

• 测试3:启动master上的keepalived服务

[root@wjh-01 ~]# systemctl start keepalived

[root@wjh-01 ~]# curl 192.168.71.110

master

转载于:https://my.oschina.net/u/3760338/blog/1614213

用keepalived配置高可用,监控NGINX服务相关推荐

  1. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

    集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...

  2. 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 一 集群介绍 1.概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供 ...

  3. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...

  4. 服务器集群之keepalived配置高可用(资料)

    2019独角兽企业重金招聘Python工程师标准>>> Linux集群概述 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当 ...

  5. 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...

  6. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

  7. 集群介绍+用keepalived配置高可用集群(总结)

    1.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用集群,英文原文为High Availa ...

  8. keepalived配置高可用集群

    准备工作 分别在主从上安装keepalived和nginx yum install -y keepalived yum install -y nginx 关闭主从上的防火墙和SELinux syste ...

  9. [配置]keepalived配置高可用虚拟IP不通

    问题:在keepalived配置的虚拟IP不通 解决:先检查虚拟IP和nginx服务器是不是一个网段,然后检查是否将vrrp_strict这个信息给注释掉.

最新文章

  1. 豆瓣评分 9.3 的 Java 巨著 | Bruce Eckel 重讲 Java 的编程思想
  2. WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等...
  3. ubuntu安装USB转串口驱动(PL2303)
  4. Spring自定义注解简单使用四步走
  5. Oracle MAF中的LOV
  6. c++ vector 初始化_什么?还不懂c++vector的用法,你凭什么勇气来的!
  7. CMakeList.txt的简介
  8. 软件设计精要与模式(第2版)
  9. ChartControl控件
  10. android判断极光推送是不是注册成功,android极光推送用户怎么注册sdk
  11. 【技巧】word交叉引用
  12. 其实真正做了自由职业者之后,才发现赚钱的方式太多了
  13. SharePoint 2010 如何隐藏快速启动栏,顶部导航及Ribbon菜单
  14. “通过管理风险与机会,完善质量管理”顶级质量大师质量讲座录音文字稿
  15. 超越图灵测试:判断机器是否在思考的现代方法
  16. 支持360打倒无耻的tx
  17. 图片为什么要转化为base64格式
  18. BigDecimal转Integer
  19. 2011 阿里巴巴程序公开赛
  20. 期货策略matlab,精选股票、期货量化投资策略系列(一)基于Matlab

热门文章

  1. Http Body 的四种格式
  2. php iis日志分析,星外系统IIS日志分析常用的几个命令小结
  3. java调用平方函数,Java8函数式编程入门
  4. ps 毛发 边缘_用PS给老旧黑白照片上色,亲妈级教学,简单实用,轻松搞定!
  5. jupyter一直*_不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS
  6. 计算机组成原理实验认识多思网络虚拟实验系统_1000MW超超临界火电机组虚拟仿真平台...
  7. mysql读写分离实现事务_Mysql读写分离后的事务ce
  8. HTTPS是对称加密还是非对称加密?
  9. 计算机教师职业幸福感,教师的职业幸福感是什么
  10. getoutputstream java_已经为此响应调用了getOutputStream()