一、keepalived 簡介
(1) keepalived 能實現高可用也能實現負載均衡,keepalived 是通過 vrrp 協議 ( virtual router redundancy protocol ) 來實現高可用的
(2) keepalived 有三個模組,core 模組是核心模組,負責主程序的啟動 、維護及配置的載入和解析,check 模組負責健康檢查,vrrp 模組用來實現 vrrp 協議
(3) 在 vrrp 協議裡,會將多台功能相同的伺服器組成乙個小組 ( 通常是一台 master 和一台 backup 角色 ) ,master 會通過組播的形式向各個 backup 傳送 vrrp 協議的資料報,當 backup 收不到 master 發來的 vrrp 資料報時,就會認為 master 宕機了,此時就需要根據各個 backup 的優先順序來決定誰成為新的 master
二、實驗環境
1. 準備兩台機器 ( centos 7 ) ,一台作為 master ( 192.168.119.130 ),一台作為 backup ( 192.168.119.134 ),設定 vip ( virtual ip ) 為 192.168.119.132
2. 兩台機器上都安裝 keepalived 和 nginx,keepalived 用來實現高可用,nginx 作為服務,當檢測到 master 上的 nginx 服務不可用之後,backup 接替 master 的工作
三、master 配置
[root@localhost ~]$ yum install -y nginx #安裝 nginx
[root@localhost ~]$ yum install -y keepalived #
安裝 keepalived
[root@localhost ~]$ iptables -f #
關閉 iptables(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ setenforce 0 #
關閉 selinux(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ systemctl stop firewalld.service #
關閉 firewall(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ vim /etc/keepalived/keepalived.conf #編輯keepalived配置檔案,替換為如下內容
global_defs
notification_email_from [email protected]
#定義發件人,可以使用第三方郵件來傳送(如163郵箱,qq郵箱等)
smtp_server 127.0.0.1 #
指定smtp伺服器位址
smtp_connect_timeout 30 #
指定smtp連線超時時間
router_id lvs_devel #
指定執行keepalived機器的乙個標識
}vrrp_script chk_nginx
vrrp_instance vi_1
virtual_ipaddress
track_script
}
[root@localhost ~]$ vim /usr/local/sbin/check_nginx.sh # 根據上面的配置定義監控指令碼#!/bin/bash
d=`date --date today +%y%m%d_%h:%m:%s` #
時間變數,用於記錄日誌
n=`ps -c nginx --no-heading|wc -l` #
計算nginx程序數量
if [ $n -eq "
0" ]; then #
如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
/etc/init.d/nginx start #
如果還為0,說明nginx無法啟動,此時需要關閉keepalived
n2=`ps -c nginx --no-heading|wc -l`
if [ $n2 -eq "0"
]; then
echo
"$d nginx down, keepalived will stop
" >> /var/log/check_nginx.log
systemctl stop keepalived
fifi
[root@localhost ~]$ chmod 755 /usr/local/sbin/check_nginx.sh #四、backup 配置增加執行許可權
[root@localhost ~]$ systemctl start keepalived.service #
啟動keepalived
[root@localhost ~]$ yum install -y nginx #安裝 nginx
[root@localhost ~]$ yum install -y keepalived #
安裝 keepalived
[root@localhost ~]$ iptables -f #
關閉 iptables(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ setenforce 0 #
關閉 selinux(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ systemctl stop firewalld.service #
關閉 firewall(只是為了做實驗方便,在實際中應自行修改)
[root@localhost ~]$ vim /etc/keepalived/keepalived.conf #編輯keepalived配置檔案,替換為如下內容
global_defs
notification_email_from [email protected]
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id lvs_devel
}vrrp_script chk_nginx
vrrp_instance vi_1
virtual_ipaddress
track_script
}
[root@localhost ~]$ vim /usr/local/sbin/check_nginx.sh #根據上面的配置定義監控指令碼
#!/bin/bash
d=`date --date today +%y%m%d_%h:%m:%s` #
時間變數,用於記錄日誌
n=`ps -c nginx --no-heading|wc -l` #
計算nginx程序數量
if [ $n -eq "
0" ]; then #
如果程序為0,則啟動nginx,並且再次檢測nginx程序數量,
/etc/init.d/nginx start #
如果還為0,說明nginx無法啟動,此時需要關閉keepalived
n2=`ps -c nginx --no-heading|wc -l`
if [ $n2 -eq "0"
]; then
echo
"$d nginx down, keepalived will stop
" >> /var/log/check_nginx.log
systemctl stop keepalived
fifi
[root@localhost ~]$ chmod 755 /usr/local/sbin/check_nginx.sh #五、測試增加執行許可權
[root@localhost ~]$ systemctl start keepalived.service #
啟動keepalived
(1) 直接訪問 vip ( 192.168.119.132 ) 看是否能訪問成功
(2) 關閉 master 上的 keepalived 服務看是否能訪問成功 ( 日誌在 /var/log/messages 檢視 )
nginx高可用 keepalived配置檔案說明
1 配置高可用的準備工作 1 需要兩台伺服器 192.168.17.129 和 192.168.17.131 2 在兩台伺服器安裝 nginx 3 在兩台伺服器安裝 keepalived 起到路由的作用,對外提供虛擬ip進行訪問 2.keepalived配置檔案 configuration file...
Keepalived高可用配置檔案
keepalived部署到伺服器上面時需要3個相同ip段的伺服器,兩台部署nginx keepalived,其中一台的ip在keepalived的配置裡填進 虛擬ip vip 裡面 主 configuration file for keepalived global defs global defs...
Keepalived高可用集群
目錄 keepalived keepalived實現主備 keepalived軟體起初是專為lvs負載均衡軟體設計的,用來管理並監控lvs集群系統中各個伺服器節點的狀態,後來又加入了實現高可用的vrrp功能。因此 keepalived 除了能夠管理lvs軟體外,還可以作為其他服務 例如 nginx ...