1) 操作系统示例:使用 Ubuntu 20.04/22.04。SSH 登录后先执行:sudo apt update && sudo apt upgrade -y。
2) 建议创建监控用户:sudo adduser monitoring;并配置公钥登录:在 /home/monitoring/.ssh/authorized_keys 写入你的公钥。
3) 防火墙规则:允许 22 (SSH)、9090 (Prometheus)、3000 (Grafana)、9100 (node-exporter) 端口到指定管理 IP。示例:sudo ufw allow from <管理IP>/32 to any port 9090 proto tcp。
1) 下载并解压最新版:VERSION=1.7.0;wget https://github.com/prometheus/node_exporter/releases/download/v$VERSION/node_exporter-$VERSION.linux-amd64.tar.gz && tar xzf ...。
2) 创建 systemd:/etc/systemd/system/node_exporter.service 内容指向可执行文件,User=node_exporter;然后 sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter。
3) 在防火墙开放 9100 端口,并在云控制台做健康检查。
1) 下载 Prometheus 二进制并解压,创建 /etc/prometheus/prometheus.yml。基本 scrape 配置示例:
scrape_configs:\n - job_name: 'node'\n static_configs:\n - targets: ['<主机IP>:9100']。
2) 创建 systemd 服务 prometheus.service 并启动。
3) 配置存储:为 Prometheus 指定 --storage.tsdb.path=/var/lib/prometheus 并确保磁盘有足够 IOPS 和容量。
1) 安装:用官方 apt 仓库或下载 deb 包安装 grafana。sudo systemctl enable --now grafana-server。
2) 在 Grafana 中添加 Prometheus 数据源(URL 指向 http://localhost:9090)。
3) 导入社区 dashboard(如 Node Exporter Full),或者按照 CPU/Memory/Disk/Network 分别建 panel,设置合适的 time range 与 alert visualization。
1) 安装 Alertmanager 并在 /etc/alertmanager/config.yml 中配置接收器:邮件(smtp)、Slack、Webhook 或 PagerDuty。
2) 在 Prometheus 的 prometheus.yml 添加 alertmanager 的地址:alerting: alertmanagers: - static_configs: - targets: ['localhost:9093']。
3) 编写告警规则文件 alerts.yml 并在 Prometheus 启动参数中引用:常见规则:CPU 使用率持续 5 分钟 > 85%;磁盘空闲 < 10%;主机不可达(up==0)等。示例:
- alert: HighCPU\n expr: 100 - (avg by (instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85\n for: 5m\n labels: {severity: "critical"}\n annotations: {summary: "CPU 高负载 on {{ $labels.instance }}"}。
1) 黑盒探测:部署 blackbox_exporter 用于 HTTP/ICMP/HTTPS 外部连通性检查,并在 Prometheus 中配置 probe。
2) 日志:推介使用 Promtail + Loki + Grafana 或 Filebeat + Elasticsearch + Kibana,配置关键服务日志的抓取和告警(例如 NGINX 5xx、应用异常)。
3) HA 策略:Prometheus 可配置两个副本并通过 Alertmanager 集中管理告警,Grafana 使用外部数据库或文件共享做备份。
问:如何在马来西亚云服务器上快速验证告警是否生效?
答:先在 Prometheus web UI /alerts 查看规则状态,再人为制造故障。示例:临时增大 CPU 负载:sudo apt install stress && stress --cpu 4 --timeout 300s,观察 Prometheus 的 CPU 告警在 5 分钟内触发并通过 Alertmanager 推送到配置的接收器;同时检查 Grafana 面板数据是否波动。
问:如何避免告警泛滥(告警风暴)?
答:使用分级告警(warning/critical)、设置 for 持续时间(避免瞬时抖动触发)、用抑制(routing/ silence)规则对维护窗口静默告警;在 Alertmanager 中配置分组(group_by)与间隔(group_interval、repeat_interval),并对低价值告警降低通知频率。
问:本地化(马来西亚)部署注意网络与合规要点是什么?
答:确保选择物理靠近用户的机房以降低延迟;根据数据主权与合规(如个人数据保护法 PDPA)评估日志与监控数据的存储位置与加密;在跨境告警通知(如将告警推送到外部云)时加密 webhook 和 SMTP,使用 TLS 及 API 密钥管理。