网络监控:从控制平面性能测量到分布式应用开发
在网络监控领域,数据平面遥测固然关键,但控制平面遥测同样不可或缺。接下来,我们将深入探讨如何构建一个完整的端到端遥测处理管道,以测量网络控制平面的性能。
1. 测量控制平面性能
大多数网络工程师对ping、traceroute和iperf等工具并不陌生,这些工具常用于验证网络数据平面的连通性、可达性和吞吐量。然而,控制平面的性能往往是一个黑盒,我们只能大致估算网络重新收敛所需的时间。为了解决这个问题,我们可以构建一个控制平面遥测解决方案。
现代控制平面协议(如BGP)会分发大量信息,从IP路由到MAC地址和流量定义。随着网络规模的扩大,控制平面状态的变化率也会增加,用户、虚拟机和应用程序会不断在不同位置和网络段之间移动。因此,了解控制平面的性能对于排查网络问题和采取预防性措施至关重要。
我们构建了一个遥测处理管道来监控实验室网络的控制平面性能,其核心是一个特殊的bgp - ping应用程序,它可以测量BGP更新的往返时间。在这个解决方案中,我们利用了以下Go包和应用程序的特性:
- jwhited/corebgp :一个可插拔的BGP有限状态机实现,允许你针对不同的BGP状态运行任意操作。
- osrg/gobgp :Go中最流行的BGP实现之一,用于编码和解码BGP消息。
- cloudprober/cloudprober :一个灵活的分布式探测和监控框架。
- Prometheus和Grafana :一个流行的监控和可视化