答:针对在台湾机房或区域的虚拟服务器与云主机,关键指标应覆盖主机、网络、存储与应用四大类。主机层面包括:CPU 利用率(user/system/iowait)、内存使用率(used/available/swap)、负载(load1/5/15)、磁盘使用与 I/O(iops、await、%util)等。网络层面监控吞吐(bytes_in/out)、包丢失、重传、延迟(RTT)和接口错误。存储层面关注磁盘剩余空间、inode、文件系统延迟及队列深度。应用层面监控进程数、响应时间、QPS/TPS、错误率和连接数。对于台湾区域要额外关注网络延迟与跨境链路稳定性(如往大陆或境外的链路),以及本地时区(UTC+8)对报警时间窗口的影响。
CPU/内存/磁盘/网络必须同时存在告警阈值,建议将阈值区分为警告(Warning)与严重(Critical),例如:CPU 平均利用率 80%(Warning),95%(Critical);磁盘使用率 75%(Warning),90%(Critical);磁盘 IO wait > 20%(Warning),> 50%(Critical)。
若服务面向台湾本地用户,需关注本地 CDN、负载均衡器与 ISP 路径质量;若存在跨境访问,需单独监控到境外出口链路的丢包与延时。
在监控文档与告警中务必使用标准化的命名,如:tw-server-01.cpu.usage、tw-db-02.disk.iops,便于筛选与聚合。
答:常见实战架构是:在每台云主机上部署 node_exporter(采集主机指标),在数据库/应用节点部署 exporter(如 mysqld_exporter、blackbox_exporter),Prometheus 负责抓取指标并存储,Grafana 做可视化。Prometheus 可集中部署在台湾或异地,建议与被监控主机网络延时低的一侧布署以降低抓取失败率。
1)在云主机上安装并配置 node_exporter;2)在 Prometheus server 上配置 scrape_configs,指定靶机或服务发现标签(static_configs、consul、kubernetes);3)在 Grafana 上导入或自建 Dashboard(CPU、Memory、Disk、Network、Application);4)对关键面板设置时间区间为本地时区(UTC+8),并开启自动刷新。
在 prometheus.yml 中添加:
scrape_configs: 静态目标或使用服务发现,注意为台湾主机添加 region/tags,如:job_name: 'tw-servers'。
在 Grafana 中至少创建:主机总体概览(CPU/内存/磁盘)、网络延时/带宽面板、磁盘 I/O 面板、应用响应时间面板,并为每个面板设置阈值颜色映射,便于运维快速定位。
答:自动报警由 Prometheus Alertmanager 或第三方告警平台承担。告警设计分为三层:检测(Prometheus 规则)、路由(Alertmanager routes)、通知(Email/SMS/LINE/Telegram/Webhook)。在台湾场景,建议支持本地通知渠道,例如 LINE Notify、Telegram、企业微信、SMS(透过本地电信或国际供应商如 Twilio)、以及 PagerDuty 等。
告警规则应包括抑制(for duration)与重复抑制(repeat_interval),例如 CPU 使用率连续 5 分钟 > 95% 才触发严重告警。规则要区分 Service(服务级)与 Infrastructure(基础设施级),并附带 runbook 链接。
根据标签(severity, team, region)把告警路由到不同接收器:运维班(电话/SMS/电话树)接收 Critical;值班群组(LINE/Telegram)接收 Warning;开发组接收与应用相关的告警。
在台湾,建议同时启用多通道通知:LINE Notify 为团队即时通知;SMS 用于严重/无人值守时的短信;Webhook 用于触发自动化工单或 Runbook;Email 用于日报/周报。
答:遇到性能下降或告警时,建议遵循“快速定位—横向确认—纵向深挖—修复/缓解”的流程。快速定位通过 Dashboard 看热点:是 CPU、内存、磁盘还是网络。横向确认检查同机房或同服群组是否有类似问题,排除网络或上游问题。纵向深挖则针对热点做更精细的采样与追踪(top、iotop、ss/netstat、strace、perf、应用层 trace)。
CPU 瓶颈:使用 top/htop、pidstat;内存泄漏:free -m、ps aux --sort=-rss;磁盘 IO:iostat -x、iotop;网络:iftop、tcptraceroute、ping/tracepath。对数据库类应用要查看慢查询日志、锁等待与连接数。
1)垂直扩容(临时增配 CPU/内存)或横向扩容(增加实例);2)暂时流量降级/限流、启用缓存;3)重启有问题的服务进程作为短期缓解;4)启用临时备援链路或更换节点。
通过容量规划、引入 APM(例如 Jaeger、Zipkin)做分布式追踪、以及长期优化慢查询与依赖调用,减少重复告警并提升系统稳定性。
答:平衡的关键在于合理设置采集频率、告警条件与分级策略。高频采集(如 5s)能捕捉瞬时抖动但成本高且易产生噪声;低频采集(如 60s)成本低但可能漏掉短时峰值。建议对关键业务或高风险指标使用较高频率(10s-15s),对非关键指标使用 30s-60s。
1)使用“连续触发时间”(for)限制短时抖动触发;2)设置告警抑制和抑制规则(inhibit_rules)在上游故障时屏蔽下游告警;3)统一告警分级并为每个分级设定明确的响应规范;4)定期清理陈旧或失效的告警规则。
利用采样、分层存储(Prometheus 的远程写/长期存储)、以及按需启用高频抓取。对冷数据使用较低分辨率的存储或聚合(例如 rollup),减少长期存储费用。
把每条重要告警绑定 runbook,并在 runbook 中写明排查步骤、临时缓解命令与责任人。在台湾本地团队中,明确值班电话与替补机制,可大幅提升告警响应效率并避免重复通知导致的“告警疲劳”。