2.Keepalived介绍 (接上keepalived安装配置并测试)

2.Keepalived介绍
在这里我们使用Keeplived来实现高可用集群,因为heartbeat在centos6上有一些问题,影响实验效果(切换不及时问题)
keepalived通过VRRP(Virtual router redundancy protocl虚拟路由冗余协议)来实现高可用
在这个协议里会将多台功能相同的的路由器组成一个小组,这个小组里会有一个master角色和N(N>=)个backup角色。(blacpup备用)
master会通过组播的形式向各个backup发送VRRP协议的数据包,当backup收不到master发来的VRRP数据包时,就会认为master宕机了。此时就需要根据各个backup的优先级来决定谁成为新的master。
keepalived要有三个模块,分别是core、check和vrrp,其中core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析,check模块负责健康检查,vrrp模块主要负责vrrp协议的实现。
3.用Keepalived配置高可用
准备两台机器ip尾号(随机)130和132,130作为master,132作为backup
两台机器都执行 yum install -y keepalived
两台机器都安装nginx, yum install -y nginx
vim /etc/keepalived/keepalived.conf 首先清空配置文件
编辑主130上的keepalived配置文件,内容如下
global_defs {
notification_email { 出现问题时给个邮箱发邮件br/>[email protected]
}
notification_email_from [email protected] 由哪个邮箱发出去
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秒钟
}

vrrp_instance VI_1 { 定义master
state MASTER
interface ens33 定义网卡
virtual_router_id 51 路由器ID
priority 100 权重
advert_int 1
authentication { 认证相关
auth_type PASS
auth_pass shenguanchu>com
}
virtual_ipaddress { 定义共有IP主从都能访问
192.168.237.100
}

track_script {
    chk_nginx                                                          加载到nginx
}

}
主上130编辑监控脚本,内容从 检查nginx是否正常的脚本
vim /usr/local/sbin/checkng.sh路径可自定义
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d
%H:%M:%S<br/>#计算nginx进程数量<br/>n=ps -C nginx --no-heading|wc -l<br/>#如果进程为0,则启动nginx,并且再次检测nginx进程数量,<br/>#如果还为0,说明nginx无法启动,此时需要关闭keepalived<br/>if [ $n -eq "0" ]; then<br/>/etc/init.d/nginx start<br/>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
server keepalived stop
fi
fi

给脚本755权限
chmod 755 /usr/local/sbin/check_ng.sh
systemctl start keepalived 130启动重新 (service keepalived start centos6命令)
ip add 查看virtual_ipaddress是否绑定
ps aux |grep keepalived 查看是否启动
iptables -nvL 查看是否有防火墙
getenforce查看是否disabled
从上操作
132上编辑配置文件
global_defs {
notification_email { 出现问题时给个邮箱发邮件br/>[email protected]
}
notification_email_from [email protected] 由哪个邮箱发出去
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秒钟
}

vrrp_instance VI_1 { 定义master
state Backup
interface ens33 定义网卡
virtual_router_id 51 路由器ID
priority 90 权重
advert_int 1
authentication { 认证相关
auth_type PASS
auth_pass shenguanchu>com
}
virtual_ipaddress { 定义共有IP主从都能访问
192.168.237.100
}

track_script {
    chk_nginx                                                          加载到nginx
}

}
132编辑监控脚本,内容从 检查nginx是否正常的脚本
vim /usr/local/sbin/checkng.sh路径可自定义
#!/bin/bash
#时间变量,用于记录日志
d=`date --date today +%Y%m%d
%H:%M:%S<br/>#计算nginx进程数量<br/>n=ps -C nginx --no-heading|wc -l<br/>#如果进程为0,则启动nginx,并且再次检测nginx进程数量,<br/>#如果还为0,说明nginx无法启动,此时需要关闭keepalived<br/>if [ $n -eq "0" ]; then<br/>server nginx start<br/>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
server keepalived stop
fi
fi
给脚本755权限
chmod 755 /usr/local/sbin/check_ng.sh
systemctl start keepalived 132启动重新 (service keepalived start centos6.5命令)
ps aux |grep keepalived 查看是否启动
iptables -nvL 查看是否有防火墙
getenforce查看是否disabled
4.测试高可用
先确定好两台机器上nginx差异,比如可以通过curl -i 来查看nginx版本
测试1 关闭master上nginx服务
测试2 关闭master上的keepalived服务
测试3 启动master上的keepalived服务

2.Keepalived介绍 (接上keepalived安装配置并测试)

原文地址:http://blog.51cto.com/sgc666/2148343

时间: 2024-08-25 23:42:50

2.Keepalived介绍 (接上keepalived安装配置并测试)的相关文章

Linux集群架构(1)集群介绍、keepalived介绍、用keepalived配置高可用集群

集群介绍 这些实现高可用和负载均衡的都是软件,是为我们在服务器上的服务所作用的. keepalived介绍 用keepalived配置高可用集群 在nginx上实现高可用: 准备工作: 准备两台机器133和134,133作为master(主),134作为backup(备用) 两台机器都执行yum install -y keepalived 两台机器都安装nginx,其中133上已经编译安装过nginx,134上需要yum安装nginx: yum install -y nginx !!(133机器

So Easy! Oracle在Linux上的安装配置系列一

So Easy! Oracle在Linux上的安装配置系列一 本文为So Easy!Oracle在linux上的安装和配置序列的第一篇Oracle安装基础环境的搭建 VMware Workstation 11.0 配置和CentOS-6.6-x86_64安装 本文环境及所需软件: Win7 Sevice Pack1 内存 6GB VMware Workstation 11.0  build-2305329 CentOS-6.6-x86_64-bin-DVD1.iso Xmanger Enterp

So Easy! Oracle在Linux上的安装配置系列三使用create database创建数据库

本文为So Easy! Oracle在Linux上的安装配置系列的第三篇,使用create database创建数据库,本序列第一篇介绍了学习实验环境的搭建包括:在win 7中使用VMware Workstation 创建虚拟机,安装CentOS-6.6-x86_64,网络配置 和使用xshell连接远程linux服务器,上传Oracle软件和使用操作系统安装光盘搭建本地yum源,第二篇专门说了Oracle11g R2在CentOS6.6上的安装,包括Oracle安装前的准备工作,并以图文详细介

So Easy! Oracle在Linux上的安装配置系列五

So Easy! Oracle在Linux上的安装配置系列五 本篇是监听器的配置的续篇,上一小节我们创建了一个监听器,创建了密码文,在监听和实例都启动的情况下,从远程windows即时客户端连接到了oracle服务器.本篇我将继续说监听器,还将完成相关的实验 以下内容整理自网络 Oracle 监听器 Listener 是一个重要的数据库服务器组件,在整个 Oracle 体系结构中,扮演着重要的作用.它负责管理 Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521

So Easy! Oracle在Linux上的安装配置系列二

本篇是So Easy!Oracle11gr2在linux上的安装配置的第二篇,本篇将讲述oracle11g r2的安装 oracle安装的前期准备 oracle的安装 工具软件rlwrap-0.42.tar.gz的安装 oracle环境变量设置 文档位置: http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm 1.oracle安装的前期准备 7安装Linux的一些基础开发包 # export LANG=en_US.UTF-8

Windows上PostgreSQL安装配置教程

Windows上PostgreSQL安装配置教程 这篇文章主要为大家详细介绍了Windows上PostgreSQL安装配置教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 PostgreSQL的扩展PostGIS是最著名的开源GIS数据库. 安装PostgreSQL是第一步. 1.下载PostgreSQL的二进制安装文件. PostgreSQL官网–>Download–>Windows 64位,如图所示: (1)官网: https://www.postgresql.org/ (2)Dow

So Easy! Oracle在Linux上的安装配置系列四

So Easy! Oracle在Linux上的安装配置系列四  监听器的配置 在创建了数库和各种数据库对象并装载了数据后,下一步是在数据库服务器与使用它的用户之间建立连 接,Oracle Net Services使这种连接成为可能.Oracle Net Services组件必须"存活"在客户机和服务器上,它们一般使用TCP/IP网络协议来建立客户机和数据库服务器之间的网络连接. 本文官方文档位置: http://docs.oracle.com/cd/E11882_01/network.

ArcGIS for Android 在Eclipse上的安装配置 (下:安装配置篇)

承接上一篇ArcGIS for Android 在 Eclipse上的安装配置(上:下载篇),本文详细说明一下ArcGIS Runtime SDK for Android 在Eclipse环境下安装配置. 本文主要包括两部分: 一.自动安装(适用于arcgis-android-sdk-v10.2.4 以及之前SDK版本): 二.手动配置(适用于arcgis-android-sdk-v10.2.5 以及之后SDK版本): 以下自动安装以v10.2.4版本为例,手动配置以v10.2.5版本为例,默认

So Easy! Oracle在Linux上的安装配置系列七

So Easy! Oracle在Linux上的安装配置系列六 上几篇中,我们安装了oracle数据库软件,创建了数据库配置了监听,本篇是本系统文章的最后一篇,Oracle企业管理器的创建. 当完成了以上所有步骤后使用 $emctl start dbconsole 启动oracle企事业管理器,会出现以下错误,提示说没有设置ORACLE_UNQNAME环境变量 [[email protected] ~]$ emctl start dbconsoleEnvironment variable ORAC