标签:keepalived linux 检测 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秒,nc则1秒后断开连接
我们可以通过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为0 则$?为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 } } }
本文出自 “ComeFrom二龙山下/七道门” 博客,请务必保留此出处http://zj1991.blog.51cto.com/1847949/1606882
标签:keepalived linux 检测 udp监控 健康
原文地址:http://zj1991.blog.51cto.com/1847949/1606882