- 这周可谓是屋漏连夜雨,先是nfs挂载出现问题,紧接着住处的厕所堵了,然后又是今天的域名解析异常导致服务访问返回404。 我们的域名是解析到两个IP,分别是电信跟网通。 异常情景: 用户打开页面登录后图片上传跟显示出现异常,http返回404. 排查问题: 1、先让用户将异常的url发送过来,自己登录查看。发现情况如下: 通过google的开发者工具再次刷新发现所有的异常的图片都返回404,看了url是域名:8080/路径,复制 复制url在新窗口打开发现404,之后将域名替换为ip,图片显示正常。换了第二个ip,图片显示正常 2、在本地ping域名发现如下: 域名解析不稳定 由上面的分析,问题基本就是在域名解析上。
问题分析:
在这件事发生前联通的IP曾断了10-20分钟,当时业务有部分异常,自己就先登录DNS将联通的解析给暂停了,之后业务正常,在下午2点左右再度异常。
期间曾询问机房人员网络异常的事,给的答复是网络波动。这...这结果也只能认了。
DNS的设置里面有TTL缓存生存时间,当到达设定的TTL时长后DNS会再次从此处获得最新的域名解析值,由于我们设置的是3600s,一小时。在停了联通的线路解析后1小时后才会重新生效,因此会有域名解析出现异常。
登录我们的DNS
我们自己因为IP变动小,基本TTL都设置为1小时,这样会使得解析快点,但它的弊端就是当IP异常时它恢复时间会很长一般是1小时,最短可设1分钟,但1分钟又太短使得解析会很慢。
经过这次的事故,考虑了下设置为600,即10分钟比较合适。目前业务量并不大,网络波动出现后一个IP有影响也只是分钟级别,目前公司还可以接受。
总结:
1、这主要是自己对IP的连通性没有监控到位,使得IP异常自己未及时发现;
2、域名解析的IP最好不是直接对应的业务IP,而是在前端加一层负载均衡这样后端一个IP异常,也不影响解析结果。不过加了一层负载均衡后会增加预算,而且引入负载均衡后它的单点故障也需要考虑,这又增加了费用。但若企业愿意花钱买稳定,这还是值得的。
这次主要原因在于自己监控及报警未做到位,以致故障发生这么久才知道。