LVS+Keepalived監控UDP

Keepalived監控後端TCP協議的配置很好寫,直接用TCP_CHECK就行了.

而監控UDP協議就沒有UDP_CHECK,需要用到MISC_CHECK來調用外部的腳本去判斷UDP端口是否開啓來做到UDP健康狀態檢查.

首先我們知道檢測UDP端口是否開啓可以使用linux下的nc命令.

例子:

1

2[root@lvs-proxy2-1 ~]# nc -zu -w 1 10.0.0.193 443

Connection to 10.0.0.193 443 port [udp/https] succeeded!

-u UDP模式

-z 如果端口無迴應的時候加上;如果有迴應-z參數需去掉(掃描端口是否打開用)

-w 如果端口有迴應數據,那麼必須加上-w參數,設爲1秒,nc1秒後斷開連接

我們可以通過grep succeeded字段來判斷UDP端口是否開啓.那麼檢測腳本就可以寫[root@lvs-proxy2-1 ~]# cat /usr/local/scripts/keepalived/UDP_CHECK.sh

#!/bin/bash
/usr/bin/nc -uz -w1 $1 $2 | grep succeeded >/dev/null
exit $?


通過返回的狀態 $? 傳遞給keepalived .如果grep succeeded$?1

Keepalived MISC_CHECK 返回的狀態碼 1爲失敗,0爲正常具體的可以去查看MISC_CHECK的詳細說明.

接下來做keepalived的配置:

virtual_server *.*.*.* 443 {
        delay_loop 1
        lb_algo rr
        lb_kind NAT
        #   persistence_timeout 5
        protocol UDP
 
        real_server 10.0.0.193 443 {
        MISC_CHECK {    //這裏注意MISC_CHECK與{之間要有空格.
                misc_path"/usr/local/scripts/keepalived/UDP_CHECK.sh 10.0.0.193 443"
                misc_timeout 10
                }
        }
}


 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章