用keepalived配置高可用,监控NGINX服务
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服务相关推荐
- 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群
集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...
- 用keepalived配置高可用集群
2019独角兽企业重金招聘Python工程师标准>>> 一 集群介绍 1.概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供 ...
- 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群
2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...
- 服务器集群之keepalived配置高可用(资料)
2019独角兽企业重金招聘Python工程师标准>>> Linux集群概述 • 根据功能划分为两大类:高可用和负载均衡 • 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当 ...
- 18.3/18.4/18.5 用keepalived配置高可用集群
2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...
- linux集群-keepalived介绍-用keepalived配置高可用集群
2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...
- 集群介绍+用keepalived配置高可用集群(总结)
1.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用集群,英文原文为High Availa ...
- keepalived配置高可用集群
准备工作 分别在主从上安装keepalived和nginx yum install -y keepalived yum install -y nginx 关闭主从上的防火墙和SELinux syste ...
- [配置]keepalived配置高可用虚拟IP不通
问题:在keepalived配置的虚拟IP不通 解决:先检查虚拟IP和nginx服务器是不是一个网段,然后检查是否将vrrp_strict这个信息给注释掉.
最新文章
- 豆瓣评分 9.3 的 Java 巨著 | Bruce Eckel 重讲 Java 的编程思想
- WAF——针对Web应用发起的攻击,包括但不限于以下攻击类型:SQL注入、XSS跨站、Webshell上传、命令注入、非法HTTP协议请求、非授权文件访问等...
- ubuntu安装USB转串口驱动(PL2303)
- Spring自定义注解简单使用四步走
- Oracle MAF中的LOV
- c++ vector 初始化_什么?还不懂c++vector的用法,你凭什么勇气来的!
- CMakeList.txt的简介
- 软件设计精要与模式(第2版)
- ChartControl控件
- android判断极光推送是不是注册成功,android极光推送用户怎么注册sdk
- 【技巧】word交叉引用
- 其实真正做了自由职业者之后,才发现赚钱的方式太多了
- SharePoint 2010 如何隐藏快速启动栏,顶部导航及Ribbon菜单
- “通过管理风险与机会,完善质量管理”顶级质量大师质量讲座录音文字稿
- 超越图灵测试:判断机器是否在思考的现代方法
- 支持360打倒无耻的tx
- 图片为什么要转化为base64格式
- BigDecimal转Integer
- 2011 阿里巴巴程序公开赛
- 期货策略matlab,精选股票、期货量化投资策略系列(一)基于Matlab
热门文章
- Http Body 的四种格式
- php iis日志分析,星外系统IIS日志分析常用的几个命令小结
- java调用平方函数,Java8函数式编程入门
- ps 毛发 边缘_用PS给老旧黑白照片上色,亲妈级教学,简单实用,轻松搞定!
- jupyter一直*_不用下载安装,你的机器人可以直接在浏览器里跳舞丨Jupyter-ROS
- 计算机组成原理实验认识多思网络虚拟实验系统_1000MW超超临界火电机组虚拟仿真平台...
- mysql读写分离实现事务_Mysql读写分离后的事务ce
- HTTPS是对称加密还是非对称加密?
- 计算机教师职业幸福感,教师的职业幸福感是什么
- getoutputstream java_已经为此响应调用了getOutputStream()