- 确认目标:列出所有台湾原生IP节点(IP列表、ASN、机房/运营商)。
- 选择监控平台:Prometheus+Alertmanager+Grafana、Zabbix或云端SaaS(Datadog、Pingdom)。推荐同时使用合成监测(外部探针)与被动监测(Agent/SNMP)。
- 准备凭证:SSH、API Key、SNMP community、代理安装权限,并记录每个节点的管理联系人与维护窗口。
- 在CMDB或监控资产库导入IP列表。字段至少:IP、名称、机房、运营商、标签(region=TW, native=true)。
- 在监控平台建立相同标签/标签集合,方便基于region或provider建立告警策略与视图(例如Grafana的变量或Zabbix的主机群组)。
- ICMP:设置每60s一次的ping探测,阈值:丢包>5%或平均RTT>200ms触发告警。使用命令行检查:ping -c 10 1.2.3.4;mtr -c 100 1.2.3.4。
- TCP:对关键端口(80/443/22)做TCP握手检测,超时3s即认为失败。curl --max-time 5 -I https://IP/ 可检测HTTP响应。
- HTTP:检测HTTP 2xx或特定返回体关键字,设置响应时间阈值(如>1s告警)。
- DNS:若为解析节点,检查DNS解析延迟与正确性(dig @IP example.com)。
- Prometheus:编写static_configs或file_sd配置target为台湾IP并标注labels region="TW"; 配置blackbox_exporter做ICMP/HTTP探针,示例job:blackbox_ping_tw。
- Zabbix:创建模板(Template_TW_Node),加入ICMP、TCP、HTTP监控项,并把模板绑定到台湾主机群组;配置触发器(triggers)依据阈值。
- 基本告警:连续三次探测失败触发“节点不可达”。设置恢复条件为连续三次成功。避免单次抖动告警。
- 严重等级分级:P1(全部节点丢失或服务降级)、P2(单节点高丢包/高延迟)、P3(短时波动)。在Alertmanager或Zabbix中定义不同路由与通知渠道。
- 告警抑制:维护窗口、计划性变更时通过API或UI置入抑制规则;对BGP路由波动类告警做黑名单抑制(短时忽略)。
- 配置多个通知渠道:短信用于P1,邮件/IM用于P2/P3。使用Alertmanager路由:match region="TW" -> route to oncall-TW。
- 建立告警模板:包含故障IP、检测时间、最近一次探测日志、建议初步操作(如mtr、curl命令)。示例:mtr -r -c 50 1.2.3.4。
- 排查清单(Runbook):1) 验证监控探针是否异常;2) 本地ping/traceroute到目标;3) 检查BGP路由(route server或bgp.he.net);4) 联系上游运营商。
- 自动化:在告警触发时调用脚本抓取mtr/traceroute并上传至日志系统,或自动轮询三台不同地域探针确认故障范围以避免误报。
- 在Grafana建立台湾节点仪表板:丢包、平均延迟、可用性趋势、最近告警列表。
- 定期复盘:每周收集误报/漏报统计,调整阈值、减少噪声,并同步运营商SLAs。
问:如何验证告警规则不会造成误报?
答:先在测试环境或对非生产节点做“告警演练”,用脚本模拟丢包/延迟场景,观察是否按预期触发与抑制;检查告警频率、去抖逻辑(连续失败次数、恢复条件),并通过静默窗口验证不影响维护。
10.问:当台湾节点出现路由问题时应优先做什么?
答:优先定位是局部链路还是全球性BGP问题:用多地探针mtr/traceroute确认故障跃点,查询BGP路由(RouteViews、bgp.he.net),并联系涉及的上游ISP提供路由快照与排障;必要时触发流量切换或回退计划。
11.问:对外合成监测与被动监测哪个更重要?
答:两者缺一不可:合成监测(外部探针)能模拟客户感知,及时发现地域性故障;被动监测(agent/SNMP)能提供服务内部指标与进程状态。建议同时部署并以标签区分告警来源,便于定位与响应。