日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux脚本vrrp_script,keepalived 的 vrrp_script

發布時間:2025/3/11 linux 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux脚本vrrp_script,keepalived 的 vrrp_script 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

[root@centos01 keepalived]# cat check_httpd.sh 腳本需要有執行權限 通常情況下,利用keepalived做熱備,其中一臺設置為master,一臺設置為backup。當master出現異常后,backup自動切換為master。當backup成為master后,master恢復正常后會再次搶占成為master,導致不必要的主備切換。因此可以將兩臺keepalived初始狀態均配置為backup,設置不同的優先級,優先級高的設置nopreempt解決異常恢復后再次搶占的問題。

keepalived只能做到對網絡故障和keepalived本身的監控,即當出現網絡故障或者keepalived本身出現問題時,進行切換。但是這些還不夠,我們還需要監控keepalived所在服務器上的其他業務進程,比如說nginx,keepalived+nginx實現nginx的負載均衡高可用,如果nginx異常,僅僅keepalived保持正常,是無法完成系統的正常工作的,因此需要根據業務進程的運行狀態決定是否需要進行主備切換。這個時候,我們可以通過編寫腳本對業務進程進行檢測監控。

下面是 vrrp_script 模塊常見的幾種監控機制

1、killall 命令探測服務運行狀態

vrrp_script check_nginx { # check_nginx 為自定義的一個監控名稱

script "killall -0 nginx" # 采用 killall 信號 0 來對進程運行狀態進行監控,0 為正常,1 為異常

interval 2 # 檢測間隔時間,即兩秒檢測一次

weight 30 # 一個正整數或負整數。權重值,關系到整個集群角色選舉,尤為重要( 單獨出帖 )

}

track_script {

check_nginx # 引用上面定義的監控模塊

}

2、檢測端口運行狀態

檢測端口的運行狀態也是最常見的服務監控方式,在keepalived的vrrp_script模塊中可以通過如下方式對本機的端口進行檢測:

vrrp_script check_nginx {

script "< /dev/tcp/127.0.0.1:80" # 通過 < /dev/tcp/127.0.0.1:80 這樣的方式定義一個對本機端口狀態的檢測

interval 2

fall 2 # 檢測失敗的最大次數,超過兩次認為節點資源發生故障

rise 1 # 請求一次成功認為節點恢復正常

weight 30

}

track_script {

check_nginx

}

通過 "< /dev/tcp/127.0.0.1/80"這樣的方式定義了一個對本機80端口的狀態檢測,其中,“fail”選項表示檢測到失敗的最大次數,也就是說,如果請求失敗兩次,就認為此節點資源發生故障,將進行切換操作;“rise”表示如果請求一次成功,就認為此節點資源恢復正常。

3、通過 shell 語句進行狀態監控

vrrp_script check_nginx {

script " if [ -f /usr/local/nginx/logs/nginx.pid ]; then exit 0 ; else exit 1; fi"

interval 2

fall 1

rise 1

weight 30

}

track_script {

check_nginx

}

通過一個shell判斷語句,檢測httpd.pid文件是否存在,如果存在,就認為狀態正常,否則認為狀態異常,這種監測方式對于一些簡單的應用監控或者流程監控非常有用。從這里也可以得知,vrrp_script模塊支持的監控方式十分靈活。

4、通過腳本進行服務狀態監控

vrrp_script chk_mysqld {

script "/etc/keepalived/check_mysqld.sh"

interval 2

}

track_script {

chk_mysqld

}

check_mysqld.sh的內容為:

#!/bin/bash

/usr/bin/mysql -e "show status;" > /dev/null 2>&1

if [ $? -eq 0 ];then

MYSQL_STATUS=0

else

MYSQL_STATUS=1

fi

exit $MYSQL_STATUS

總結

以上是生活随笔為你收集整理的linux脚本vrrp_script,keepalived 的 vrrp_script的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。