1. 环境准备与账号/权限
- 在可以控制的服务器上准备Linux(推荐Ubuntu/CentOS)并确保root或sudo权限。
- 安装必备工具:ping、mtr、traceroute、iperf3、tcpdump、curl。示例:sudo apt update && sudo apt install -y mtr-tiny iperf3 tcpdump traceroute
2. 初步连通性与延迟检测
- 用ping做基础延迟和抖动检查:ping -c 20 <目标IP>,记录avg/min/max/packet loss。
- 用mtr查看路由每跳丢包:mtr -rwzbc 100 <目标IP>,保存为CSV供分析。判断是否为最后一跳丢包或中间链路问题。
3. 带宽与吞吐量测试
- 部署iperf3服务端:iperf3 -s -p 5201。客户端测速:iperf3 -c <目标IP> -p 5201 -t 60 -P 4。
- 如果对方为公网路由,需注意中间链路限速,用不同时间窗口(峰值/非峰值)多次测试并取95百分位带宽。
4. 丢包/抖动/时延的规范与阈值设定
- 建议阈值(可按业务调整):延迟(台湾内)<50ms,丢包<0.5%,抖动<5ms。
- 在监控系统里将这些阈值转为Prometheus告警或Zabbix触发器,设置连续3次超阈值才报警以避免抖动误报。
5. 自动化监控搭建(Prometheus+Grafana示例)
- 部署blackbox-exporter做TCP/ICMP/HTTP主动探测;在prometheus.yml加入job:module: icmp,targets: 台湾IP列表。
- 定期抓取mtr脚本:用cron每5分钟执行mtr -rwzc 20
> /var/log/mtr/.log,并写parser上报到Prometheus Pushgateway或直接解析入Elasticsearch。
6. 告警与故障处理流程
- 告警流程:Prometheus Alertmanager -> Slack/邮件/电话。含工单模板:时间、IP、测试结果(ping/mtr/iperf)、已有临时处置(重启网卡、切换出口)。
- 常见处置命令:重置网卡 sudo ip link set dev eth0 down && sudo ip link set dev eth0 up;刷新路由 sudo ip route flush cache;临时改路由使用ip route replace。若中间链路异常,提交ISP ticket并附mtr/traceroute输出。
7. 长期稳定性维护要点
- 定期(周/月)做容量与质量评估:95/99百分位延迟、丢包趋势、带宽峰值。
- 更新DNS/反向PTR,保证PTR与业务域名一致,避免反查导致的异常;维护好IP池记录与ISP合同中的SLA。
8. 自动修复与高可用设计
- 本地脚本示例(cron每5分钟):先ping检测,多次失败用iperf确认带宽,再调用流量切换脚本切换备用出口或BGP备份(若有)。
- 对无BGP环境,可在应用层采用IP切换或CDN回源策略;记录切换日志并在切换后继续监控确认回稳。
9. 常见问答 1
问:如何判断问题是我方网络还是上游ISP导致? 答:先从本地到网关逐跳mtr(mtr -rwzbc 100 gateway)比对丢包/延迟是否在第一跳或网关后出现;若第一跳正常而中间跳开始丢包,多为上游链路问题,保存mtr/traceroute输出并联系ISP。
10. 常见问答 2
问:如何降低台湾原生IP的突发丢包影响? 答:采用多出口或多ISP冗余、在应用层启用重试与超时控制、使用会话保持的负载均衡;并在Probe发现高丢包后自动切换到备用路径并发起回溯检测。
11. 常见问答 3
问:监控指标如何长期存储与容量规划? 答:将时序数据保存在Prometheus+Thanos或InfluxDB集群,保留高精度数据7-30天,长期汇总数据(95/99位)存档12个月;按采样频率估算存储,例如每5s采样100个target约需X GB/月,留出2-3倍冗余。
来源:台湾 原生ip性能监测与长期稳定性维护实操要点