![用于记录互联网连接中断的脚本](https://linux22.com/image/804485/%E7%94%A8%E4%BA%8E%E8%AE%B0%E5%BD%95%E4%BA%92%E8%81%94%E7%BD%91%E8%BF%9E%E6%8E%A5%E4%B8%AD%E6%96%AD%E7%9A%84%E8%84%9A%E6%9C%AC.png)
设置脚本来监控和报告服务器与互联网的连接的最佳方法是什么?我指的不是与本地网络的连接,而是服务器(或整个网络)访问互联网的能力,以防您的 ISP 连接中断。
它需要一个脚本来全天候测试互联网连接并记录结果(或者可能仅在发生中断时记录),然后以其他方式读取这些日志并生成报告,显示各种统计数据(ISP 连接离线的时间百分比等)。
这是否只是像 ping 各种常用 URL(google.com、amazon.com 等)一样简单,并以此作为测试来确定您是否可以访问互联网?或者有更好的方法吗?
这样做的目的主要是记录我们的 ISP 发生故障的所有时间,以便我们向他们展示,他们可以用它来解决问题,或者使用日志作为我的老板用来切换 ISP 的筹码。
答案1
这通常是通过在防火墙/路由器本身上使用 SNMP 进行接口监控来实现的。此外,您还可以在接口上使用 netflow/sflow/jflow 来收集更深入的统计数据/信息。
较大的 ISP 也将提供带有监控工具的门户网站(例如 Sprint/Cox/TW 等)。
此外,您还可以设置 Nagios 等工具,这些工具可以 ping 出站,以及附加层/检查
您还可以使用第三方工具,例如http://newrelic.com/monitor-everything或者类似于从外向内的监控,验证您的服务器是否可访问。或者像免费在线 ping 监控器(只需搜索)这样简单的东西,它会 ping 防火墙的 WAN IP,如果无法访问,会提醒您。
仅从服务器的角度进行监控是短视的,可能无法准确反映 ISP 本身的真实中断情况。
答案2
一般来说,您需要做的第一件事就是准确定义互联网中断。“中断”是否意味着您无法访问:
- 您本地网络上的 CPE 路由器?
- PPP 链路另一端的 ISP 路由器?
- 位于 ISP 网络中间某处的主机(例如 DNS 或邮件服务器)(但 ISP 可能已丢失所有上行连接)?
- 互联网上有一台“通用”主机吗?如果该主机宕机,但互联网的其余部分“正常运行”,该怎么办?
- 互联网上有各种主机?那么“失败”条件到底是什么?有多少台主机无法访问才会认为互联网“瘫痪”?
对于您的特定情况(尝试确定互联网连接的稳定性),监控日志和/或路由器的 SNMP 应该会为您提供所需的信息,尽管“真实世界”的流量测试可能也很有用。如果是您和 ISP 之间的链接,那么 ping 一些 ISP 主机(DNS/邮件等)会很好,或者更好的是使用脚本和实际 DNS 查找其 DNS 服务器,和尝试与他们的邮件服务器建立 SMTP 连接。当然,不要太频繁地这样做,否则他们可能会指责你违反了可接受使用政策、服务条款等。
答案3
我使用一个很棒的工具来监控这样的连接。
港铁或我的追踪路线。
它很大程度上是从单一的 ping 操作和跟踪路由演变而来的,几乎是两者的混合。
港铁有几种运营模式
mtr --report google.com
将生成一份报告供您发送给 ISP 进行分析。
或者你可以尝试
mtr google.com
然后按两次 d 键查看一段时间内所有跳跃之间的延迟或丢失。
根据您所指的 Linux 风格,大多数发行版在其原生存储库中都有 MTR。