自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

解讀 Linux 系統(tǒng) Keepalived 健康檢查機制

系統(tǒng) Linux
在進行負載均衡時,一般都會部署一個健康檢查工具,確保后端real server是正常的,可以提供服務的,避免出現(xiàn)后端real server 已經宕機或服務不可用時,負載均衡器扔將請求分發(fā)到real server,影響整體業(yè)務訪問。

在進行負載均衡時,一般都會部署一個健康檢查工具,確保后端real server是正常的,可以提供服務的,避免出現(xiàn)后端real server 已經宕機或服務不可用時,負載均衡器扔將請求分發(fā)到real server,影響整體業(yè)務訪問。健康檢查的方式有很多,可以自行部署腳本,當然當前用的比較多的就是keepalived服務了。keepalived的健康檢查方式有三種,tcp_check、http_check、misc_check。

keepalived配置簡述

keepalived主要有三個模塊,分別是core、check和vrrp。core模塊為keepalived的核心,負責主進程的啟動、維護以及全局配置文件的加載和解析。check負責健康檢查,包括常見的各種檢查方式。vrrp模塊是來實現(xiàn)VRRP協(xié)議的 keepalived只有一個配置文件keepalived.conf,里面主要包括以下幾個配置區(qū)域,分別是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

yum install keepalived -y

配置文件:

! Configuration File for keepalived



# vi /etc/keepalived/keepalived.conf



# 全局配置 主要是配置故障發(fā)生時的通知對象以及機器標識

global_defs {



    notification_email {

        r_xl@xl.com    # 設置報警郵件接收地址,需要開啟 sendmail 服務

    }



    notification_email_from s_xl@xl.com    # 設置郵件的發(fā)送地址

    smtp_server 192.168.2.241    # 設置通知的 SMTP Server 地址

    smtp_connect_timeout 30      # 設置通知的 SMTP Server 的超時時間



    router_id LVS_DEVEL_1        # 路由ID,標識本節(jié)點的字符串,郵件通知時會用到



}



# 自定義VRRP實例健康檢查腳本 keepalived只能做到對自身問題和網絡故障的監(jiān)控,Script可以增加其他的監(jiān)控來判定是否需要切換主備

vrrp_script chk_sshd {



    script "killall -0 sshd"    # 示例為檢查sshd服務是否運行中



    interval 2         # 檢查間隔時間

    weight -4          # 檢查失敗降低的權重



}





# VRRP實例 定義對外提供服務的VIP區(qū)域及其相關屬性

vrrp_instance VI_1 {



    state MASTER           # 狀態(tài)只有 MASTER 和 BACKUP 兩種,并且要大寫,MASTER 為工作狀態(tài),BACKUP 是備用狀態(tài)

    interface eth0         # 節(jié)點固有IP(非VIP)的網卡,用來發(fā)VRRP包

    virtual_router_id 51   # 虛擬路由標識,同一個 vrrp_instance 的 MASTER 和 BACKUP 的 vitrual_router_id 需要一致

    priority 100           # 優(yōu)先級,同一個 vrrp_instance 的 MASTER 優(yōu)先級必須比 BACKUP 高

    advert_int 1           # MASTER 與 BACKUP 負載均衡器之間同步檢查的時間間隔,單位為秒



    authentication {       # 設置認證

        auth_type PASS     # 認證方式,支持 PASS 和 HA

        auth_pass 1111     # 證密碼為明文,同一 vrrp 實例 MASTER 與 BACKUP 使用相同的密碼才能正常通信

    }



    virtual_ipaddress {    # 虛擬IP地址(VIP),可以有多個地址,每個地址占一行

        192.168.12.200

    }



    track_script {         # 自定義健康檢查腳本

        chk_sshd           # 配置上面自定義的vrrp腳本調用名

    }

}



# 設置虛擬服務器

virtual_server 192.168.12.200 6500 {     # 指定虛擬IP地址和服務端口



    delay_loop 6             # 服務健康檢查周期,6秒

    lb_algo rr               # 負載均衡調度算法,一般用wrr、rr、wlc

    lb_kind DR               # 負載均衡轉發(fā)規(guī)則。一般包括DR,NAT,TUN 3種

    persistence_timeout 5    # 會話保持時間。把用戶請求請求間隔在未超過保持時間時,一直分發(fā)到某個服務節(jié)點

    protocol TCP             # 轉發(fā)協(xié)議 有TCP和UDP兩種



    # 配置真實服務器

    real_server 192.168.2.222 6500 {    #指定IP和端口



        weight 1       # 權重,數(shù)值越大,權重越高



        # 健康檢查方式 常見有 TCP_CHECK, HTTP_GET, SSL_GET, MISC_CHECK(自定義腳本)

        TCP_CHECK {               # 通過TcpCheck方式判斷RealServer的健康狀態(tài)

            connect_timeout 10    # 連接超時時間

            nb_get_retry 3        # 重連次數(shù)

            delay_before_retry 3  # 重連時間間隔

            connect_port 6500     # 檢測端口

        }



    }



    # 配置真實服務器

    real_server 192.168.2.222 6500 {    #指定IP和端口



        weight 1      # 權重,數(shù)值越大,權重越高



        # 健康檢查方式 常見有 TCP_CHECK, HTTP_GET, SSL_GET, MISC_CHECK(自定義腳本)

        TCP_CHECK {               # 通過TcpCheck判斷RealServer的健康狀態(tài)

            connect_timeout 10    # 連接超時時間

            nb_get_retry 3        # 重連次數(shù)

            delay_before_retry 3  # 重連時間間隔

            connect_port 6500     # 檢測端口

        }   

    }   

}

健康檢查類型

TCP_CHECK
TCP_CHECK { # 通過TcpCheck判斷RealServer的健康狀態(tài)

    connect_timeout 10    # 連接超時時間
    nb_get_retry 3        # 重連次數(shù)
    delay_before_retry 3  # 重連時間間隔
    connect_port 6500     # 檢測端口
}

2.HTTP_GET

HTTP_GET {

        url {

            path check/200.jsp  # 檢查的uri地址

            digest 1362a91278f0806aa1d33e1e26d67763 # 用keepalived自帶的genhash生成,/usr/bin/genhash -s rsIP -p port -u uri

        }

        connect_timeout 3   # 鏈接超時時間

        nb_get_retry 3   # 重連次數(shù)

        delay_before_retry 3  # 重連時間間隔

        connect_port 6500  # 檢測端口

    }

3.MISC_CHECK

keepalived.conf配置:

MISC_CHECK {

        misc_path "/etc/keepalived/misc_check.sh http://192.168.2.222:6500/check/200.jsp"    # 外部程序或者腳本的路徑和參數(shù)

        misc_timeout 10   # 腳本執(zhí)行的超時時間

        misc_dynamic    #動態(tài)權重標志。腳本返回0則檢測成功權重不變,返回1表示失敗權重設置為0

    }

腳本示例:

#!/bin/bash

# ./misc_check.sh http://192.168.2.222:6500/check/200.jsp



if [ $# -ne 1 ]; then

    echo "Warning: command param error."

    exit 1

else

    CHECK_URL=$1

    CMD=`/usr/bin/curl -I ${CHECK_URL} 2>/dev/null | grep "200 OK" | wc -l`



    if [ ${CMD} -eq 1 ]; then

            echo "Succ: Check proxy ${CHECK_URL} is succeed."

        exit 0



    else

        echo "Fail: check proxy ${CHECK_URL} is failed."

        exit 1

    fi

fi
責任編輯:華軒 來源: 微技術之家
相關推薦

2017-08-25 10:20:46

Docker容器機制

2023-03-02 07:20:10

GRPC服務健康檢查協(xié)議

2023-05-09 07:34:25

Docker健康檢查方式

2023-03-03 08:19:35

KubernetesgRPC

2023-03-01 08:33:37

gRPC健康檢查代碼

2021-07-15 10:25:15

集群節(jié)點檢查

2022-02-28 07:40:23

Nacos注冊中心客戶端

2023-10-14 15:36:14

PodKubernetes

2020-12-07 06:29:13

SpringBoot

2022-09-07 09:19:49

Docker健康檢查

2012-02-15 00:01:34

2021-01-15 05:38:28

ASPHttp端口

2021-04-18 10:34:28

Spring Clou郵件釘釘

2021-09-18 16:10:48

Spring BootJava微服務

2021-09-21 16:31:56

Windows 11微軟PC健康檢查工具

2024-02-19 08:01:59

服務微服務授權

2021-07-05 06:51:41

Nacos微服務源碼

2024-10-31 15:16:35

2023-02-18 13:34:14

Nacos健康檢查機制

2023-03-07 07:49:06

Kubernetes容器
點贊
收藏

51CTO技術棧公眾號