我公司用专门的托pipe服务提供商为客户构build各种网站。
此托pipe服务提供商意外closures了负责边界网关协议(BGP)通告的设备,用于小范围的IP。 由于我很幸运,其中一个IP恰好是分配给负载均衡器的公共IP地址,以便为我们的客户提供所有networkingstream量。 结果,这个范围的BGP路由广告被撤销,并迅速在全球范围内无法访问。
托pipe服务提供商在发现问题后就解决了这个问题,但是这花费了我们超过15分钟的停机时间,这是我们在未来急于避免的。
我们怎么能监控这个? 它比我们正常的监控要低很多,它只检查Apache的httpd状态,JVM等。我们有内部监控,它使用Advent AppEngine来检查服务器进程,apache服务器状态响应,应用程序主页响应。
我们能够采取措施来解决这个问题吗? 比如通过我们自己的BGP公告以某种方式?
我很高兴为指针/build议的阅读,而不是直接的答案,因为这个层次对我来说是全新的,我想填补我的知识空白。
除非您的地址空间足够大,以便您能够运行自己的BGP,否则您不太可能解决此问题。 即便如此,你也很容易受到同行的BGP故障的影响。
如果您在不同的AS中使用多个DNS服务器,则可以通过设置较低的TTL并故障转移到另一个networking块/数据中心内的单独的Web服务器,通过在发现问题时更改DNS来解决某些问题。 即使如此,至less需要几分钟的时间。
编辑:正如Chris所指出的那样,如果你正在运行BGP,那么你需要所有的对等点在你无法到达之前失败。
除非拥有至less2/3的提供商独立地址空间并且有ASN号码,否则您不可能运行BGP。 因此,您需要信任您的托pipe公司。 路由器的变化往往是相当罕见的,所以这个问题再次发生的可能性很小。 您可以调查您与他们的任何SLA,但是这可能只是涉及到您的托pipe费用退款。
就监控而言,我们在我们的networking之外有专门的服务器,我们用它作为外部的Nagios服务器。 你可以买一个便宜的VPS服务器,并使用它来监视来自外部用户PoV的事情。 例如,我们检查SMTP和HTTP工作,而不是检查exim和apache是否正在运行,这是我们在内部监控中所做的。
为了logging,它存在几个免费的BGP监视器和报警系统。 没有提供您想要的15分辨率。 而且,由于您可能有其他许多中断的原因,因此从外部监控IP连接是唯一真正的解决scheme。
关于BGP监控的一般文章, 法文 。
根据设置的方式,所宣传的netblock的大小以及上游如何聚合,您可以使用其中一个镜像脚本来监视服务器所在块的BGP通告。
从主机和外部的服务器上ping一下你的主机和路由器可能会更容易一些。 您可以使用traceroute来确定使用哪个地址。
你可以做的很less,以防止你的托pipe公司再次这样做。 为了做到这一点,您至less需要一台运行BGP的路由器或其他主机连接到您的提供商。 除非你还有另一个提供者,否则如果他们不小心关掉了对等路由器,那就不会有帮助。
更好的解决scheme可能是通过另一个答案提到的故障切换站点。 根据您的风险承受能力,您可以设置故障转移在很短的时间内发生,但它涉及到您的DNS的完全控制。
你的select是相当有限的。 你可以大声疾呼你的提供者,你可以移动到另一个提供者,你可以得到两个不同的IP范围和广告服务,并在你的DNS条目上有短TTL。
但
如果您真的想要解决这个问题,请转到与会议室的可口可乐工具,并从几个提供商处购买带宽和IP地址。 然后, 注册一个ASN(或任何注册商无论身处何地都是正确的),并自己与供应商同行。
如果你购买了足够的带宽,就不会让他们咳嗽一个/ 24或/ 23。 根据colo设施的大小和您要求的带宽量,对等也将变得相当容易。
如果你正在写大检查,而且你确实知道自己想要什么(而且你想要的是合理的),那就不难完成这件事情。 如果你把它交给你的“提供者”,你将永远处于愚蠢的一端。