1) 目标:保证菲律宾(PHT)长期运行环境的可用性、性能和可维护性,降低故障恢复时间。
2) 方法:指标采集、告警规则、通知链路、日志聚合、仪表盘、容灾与演练。
1) 基本指标:CPU、内存、磁盘使用、磁盘IO、网络带宽、丢包、连接数、负载平均。
2) 建议阈值:CPU持续>80%(5min)、内存剩余<15%、磁盘使用>85%、丢包>1%、响应时延>500ms。
1) 在每台Linux机器执行:下载并运行node_exporter:
<code>wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz tar xzf ... sudo useradd -rs /bin/false nodeexp sudo cp node_exporter /usr/local/bin/ 创建 systemd 服务并启动 </code>
1) 安装Prometheus,编辑prometheus.yml,添加scrape job:
<code>scrape_configs: - job_name: 'node' static_configs: - targets: ['10.0.0.1:9100','10.0.0.2:9100'] </code>
2) 启动并验证:访问 http://prometheus:9090/targets 检查目标UP。
1) 在rules文件中定义规则示例:
<code>- alert: HighCPU expr: avg_over_time(node_cpu_seconds_total{mode!="idle"}[5m]) > 0.8 for: 5m labels: {severity: page} annotations: {summary: "CPU高" } </code>
2) 部署Alertmanager并在alertmanager.yml配置接收器(邮件、Slack、Telegram、PagerDuty)。
1) 为不同严重度配置不同通道:page->SMS/电话,ticket->邮件/Slack。
2) 使用抑制(inhibit)规则防止低级告警在关键故障时泛滥;设置重复合并和静默窗口。
1) 部署Filebeat/Fluentd发送日志到ELK/Opensearch,示例:安装Filebeat并配置output到ES。
2) 部署APM/分布式追踪(Jaeger/Zipkin)以排查请求链路和延迟突增。
1) 安装Grafana并添加Prometheus数据源,导入Node Exporter与系统面板。
2) 为SLO/SLA创建专用仪表板,加入SLA指标和历史趋势,便于容量规划。
1) 在K8s或云主机层配置基于CPU/请求延迟的HPA/ASG策略,设置冷却时间避免抖动。
2) 定期快照与离线备份:每日快照、每周异地备份并定期恢复演练。
1) 编写Runbook:包含故障判断步骤、临时缓解命令(例如重启服务、清理磁盘缓存),并托管在版本库。
2) 定期演练:每季度进行一次演练并记录RCA、改进措施。
1) 使用持续时间(for)和多指标联合(如CPU+负载+响应)来减少误报。
2) 观察一段时间后调整阈值,加入异常检测(如Prometheus的anomaly检测或外部ML)。
1) 时区:统一使用PHT(UTC+8)登记告警时间,便于本地值班。
2) 网络:PH多运营商且延迟波动,设置网络秒级探针(ping/synthetics)并在不同ISP节点布点。
问:如何快速在PH云上线基础监控?
答:在每台机上部署node_exporter,集中部署Prometheus并添加targets,安装Grafana导入面板,最后配置简单告警规则和Alertmanager通知,整个流程可在数小时内完成。
问:Linux上安装node_exporter具体命令?
答:示例:wget 下载二进制→解压→sudo mv node_exporter /usr/local/bin→创建systemd单元文件(ExecStart=/usr/local/bin/node_exporter)→systemctl daemon-reload && systemctl enable --now node_exporter。
问:如何防止告警风暴?
答:采用告警分级、抑制规则、分组与合并(group_by)、设置for持续时间、在部署窗口静默,并添加速率限制与去重策略。
