问题1:后端有多个tomcat,如何测试一台挂掉,另外一台是否工作? 三台机器 c做通a,b ssh验证 tenginx配置 check interval=2000 rise=2 fall=2 timeout=1000 type=http; check_http_send "GET / HTTP/1.0\r\n\r\n"; check_http_expect_alive http_2xx http_3xx; 测试脚本 放在c服务器上 #!/bin/bash bnum=`ssh a ps -ef|grep tomcat|grep /opt|grep -v grep|wc -l` if [ $bnum -eq 0 ];then ssh b /bin/bash /home/b.sh sleep 20 fi ssh a /bin/bash /home/a.sh cnum=`ssh b ps -ef|grep tomcat|grep /opt|grep -v grep|wc -l` if [ $cnum -gt 0 ];then sleep 20 ssh b /bin/bash /home/b.sh fi cat a.sh #!bin/bash num=`ps -ef|grep tomcat|grep /opt|grep -v grep|wc -l` if [ $num -gt 0 ];then num=1 fi if [ $num -eq 0 ];then num=0 fi if [ $num -eq 1 ];then cd /opt/test && sh tomcat.sh stop fi if [ $num -eq 0 ];then cd /opt/test && sh tomcat.sh start fi c服务器crontab */2 * * * * root nohup sh /home/back/test.sh >>/dev/null 2>&1
tenginx检测方法 http://www.iyunv.com/thread-38535-1-1.html http://www.sudops.com/nginx-tengine-health-check-with-domain.html nginx负载均衡有问题 对比图形 check_http_send "HEAD / HTTP/1.1\r\nConnection: keep-alive\r\n\r\n"; 注意check_http_send值的设定。由于它的默认值是"GET / HTTP/1.0\r\n\r\n"。 假设你的应用是通过 那么这里你的check_http_send值就需要更改为"GET /name HTTP/1.0\r\n\r\n"才可以。 针对采用长连接进行检查的,这里增加keep-alive请求头, 即"HEAD /name HTTP/1.1\r\nConnection: keep-alive\r\n\r\n"。 如果你后端的tomcat是基于域名的多虚拟机, 此时你需要通过check_http_send定义host,不然每次访问都是失败, 范例:check_http_send "GET /mobileapi HTTP/1.0\r\n HOST www.redhat.sx\r\n\r\n"; check_http_send "HEAD /status.html HTTP/1.1\r\nConnection: keep-alive\r\nHost: healthckeck.sudops.com\r\n\r\n";
验证结果
- 业务使用
- zabbix监控图
时间: 2024-12-10 09:56:43