
目标:对香港机房多IP(站群)做链路连通性、丢包/延迟、以及带宽(上/下行)使用率的实时监控与告警。小分段:①覆盖服务器/出口交换机/ISP链路;②实时可视化与历史回溯;③按IP、按链路聚合告警。
推荐架构:Prometheus + Blackbox + SNMP Exporter + sFlow/NetFlow 收集 + Grafana + Alertmanager。小分段:①Prometheus负责时序数据聚合;②Blackbox做ICMP/TCP/HTTP探测;③SNMP用于交换机/路由器接口速率;④sFlow/NetFlow用于流量明细;⑤Alertmanager负责通知。
软件/设备清单:Ubuntu服务器(监控节点)、Prometheus、node_exporter、blackbox_exporter、snmp_exporter、sflow-rt或nfdump、Grafana、Alertmanager。小分段:①确保交换机启用SNMP或sFlow;②为每个被监控IP分配标签(zone、service);③网络策略允许探测流量。
步骤:①在监控机安装Prometheus:apt/yum 下载二进制或用docker;②创建prometheus.yml,加入scrape_configs;示例:scrape_configs -> job_name: 'node' -> static_configs -> targets: ['hk-01:9100','hk-02:9100'];③在每台服务器安装node_exporter并systemd启用:wget node_exporter && systemctl enable --now node_exporter。小分段:确保防火墙允许9100端口。
步骤:①安装blackbox_exporter并在prometheus.yml中新增job:job_name: 'blackbox',使用module: icmp/tcp_connect/http_2xx,targets列出所有IP;②对不同IP用不同module(例如对网页检查用http_2xx,对外链路用icmp);③设置prometheus告警规则:例如probe_success==0 for 2m触发。小分段:把probe标签加上instance_ip与region便于过滤。
步骤:(SNMP)在交换机/路由器启用SNMP v2/v3,配置snmp_exporter的snmp.yml映射接口速率和错误;在prometheus中抓取SNMP exporter。 (sFlow/NetFlow)在交换机启用sFlow/NetFlow转发到sflow-rt或nfdump,sflow-rt可输出Prometheus metrics或写入InfluxDB。小分段:选择sFlow时可获得包头采样,适合站群流量分析;SNMP适合接口总体速率。
关键指标:icmp_loss、icmp_latency_ms、ifInOctets/ifOutOctets转化为bps、interface_utilization、tcp_retransmits。阈值示例:①丢包>1%且持续5分钟报警;②往返延迟>100ms且抖动>50ms报警;③链路利用率>80%且持续10分钟报警。小分段:区分临界(warning)和严重(critical),并设置抑制短时抖动。
步骤:①安装Alertmanager并在Prometheus中配置alerting -> alertmanagers;②在alertmanager.yml中配置receiver(Email、Slack、钉钉/企业微信Webhook、SMS via第三方);③配置路由与抑制(inhibit_rules)与分级通知(severity);④示例:丢包critical直接短信并手机号轮询,warning发邮件/群组。小分段:使用静默时段策略避免夜间频繁告警。
步骤:①在Grafana中添加Prometheus数据源;②准备仪表盘:总体带宽(按接口/按IP聚合)、丢包率/延迟热力图、Top N IP带宽使用、链路状态地图;③添加告警面板和时间范围快捷按钮。小分段:使用变量(variable)便于按机房/业务切换视图,导入社区模板节省时间。
建议:对香港站群采用Prometheus federation或多个Prometheus实例+远程_write(Thanos/Remote-Write)汇聚;使用多个blackbox探针分布在不同机房避免单点误判;Zabbix可用proxy分散采集。小分段:把采集频率分级(重要IP 15s,普通60s),并监控采集器本身的健康。
Q: 某香港IP流量突然飙高,如何快速定位进程/连接来源?
A: 首先在该服务器上用iftop/ntop/ss/lsof定位端口与连接,再用nethogs或bmon按进程查看实时带宽;如果是交换机出口,使用sFlow/NetFlow分析Top Talkers并在sflow-rt或nfdump中导出六元组,结合应用日志(nginx/access.log)确定请求来源。
Q: 有多条ISP出口,如何实现健康检测并在异常时告警与切换?
A: 在每个出口下部署blackbox探针对外侧公共IP/目标做灰度探测,Prometheus评估丢包/延迟,Alertmanager触发自动化脚本(webhook)通知路由器控制器或调用SDN API进行策略切换;同时记录切换事件并在Grafana展示历史切换次数以优化ISP SLA。
Q: 告警太多且常有误报,如何降低噪音并让告警更具可操作性?
A: 方法:①设置分级阈值与持续时间(比如连续3个周期才警报);②使用抑制规则避免同一事件重复通知;③对告警加入丰富context(最近top talkers、截图、runbook链接);④定期回顾告警(每周/每月)并调整阈值与采样频率。