设为首页 收藏本站
查看: 998|回复: 0

[经验分享] LVS故障解决案例解析

[复制链接]

尚未签到

发表于 2019-1-2 11:39:59 | 显示全部楼层 |阅读模式
    记上一篇LVS防火墙配置后,接下来想分享一篇LVS故障排错案例,仅供大家参考和学习,LVS使用过程中,我们都会遇到很多的问题,但是遇到问题后,我们需要该如何处理呢?那这里分享我的解决思路。
LVS+Keepalived+Nginx架构中,某天突然发现网站www.wuguangke.cn 部分用户访问巨慢,甚至无法访问,那这个问题我们该如何定位呢?分两种情况:如果有监控,如果有报警短信再好不过了。然后可以很快的定位到某一台机器。如果没有监控,或者其他的原因没法看监控,那我们该如何排查呢?如下步骤:


  • 第一步:首先我们想到ping www.wuguangke.cn ,通过ping返回数据部正常


  • 第二步:登录LVS服务器,ipvsadm –Ln 查看当前后端web连接信息,显示如下:

  • [root@LVS-Master keepalived]# ipvsadm -Ln

  • IP Virtual Server version 1.2.1 (size=4096)

  • Prot LocalAddress:Port Scheduler Flags

  •   -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

  • TCP  192.168.1.10:80 wlc

  •   -> 192.168.1.6:80                 Route   100    2         13         

  •   -> 192.168.1.5:80                 Route   100    120       13         

  •   -> 192.168.1.4:80                 Route   100    1363      45

通过LVS信息,我们看到LVS 选择的轮训方式为加权最少连接,而网站也是部分无法访问,我们可以猜测是其中一台web服务器无法访问或者访问巨慢导致,我们会想难道LVS不会自己判断吗?想法很好,那我们接下来查看keepalived.conf配置,部分截图如下:


  • real_server 192.168.1.4  80  {

  •         weight 100         
  •         TCP_CHECK {
  •         connect_timeout 10  
  •         nb_get_retry 3
  •         delay_before_retry 3
  •         connect_port 80
  •         }
  • }

通过配置文件我们发现LVS默认用的是TCP检测方式,只要80端口能通,请求就会转发到后端服务器。紧接着在LVS /tmpwget http://192.168.1.4/ 返回502超时,另外几台nginx返回正常,1.4服务器80端口对于LVS来说是打开的,所以LVS会把请求转发给给它。
这就造成了为什么部分用户可以访问,有的用户无法访问的问题。登录1.4 nginx服务器,pkill nginx ,临时停止nginx保证服务保证正常访问,然后再查看nginx日志发现是后端程序连接一台数据库出现的问题。

回过头来我们会发现,LVS不会检测你后端502超时错误,只关心80端口是否开启对于应用来说,这样检测明显不足,那我们需要如何处理呢?增加LVS对后端Nginx URL的检测,能访问URL则表示服务正常,直接看代码:



  • real_server 192.168.1.4 80 {

  •         weight 100

  •         HTTP_GET {

  •         url {

  •         path /monitor/warn.jsp

  •         status_code 200

  •         }
  •         connect_timeout 10

  •         nb_get_retry 3

  •         delay_before_retry 3

  •      }

  • }

我们对比之前的检测方式,从单纯的80端口到现在的URL检测,后端如果某台出现502超时错误,LVS会自动踢出,等后端恢复后自动添加。自此故障解决完毕!欢迎大家共同交流和学习!




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-658620-1-1.html 上篇帖子: LVS/Tun 成功案例 下篇帖子: lvs简单入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表