1.
目标与总体架构
目标:对台湾VPS(提供原生公网IP且启用高防能力)的可用性、性能和安全进行实时监控与告警,能自动化触发防护或人工响应。
总体架构:主机指标采集(node_exporter/WinExport)-> Prometheus抓取 -> Alertmanager告警路由 -> Grafana展示 -> 黑盒探针(blackbox_exporter)做外部可达性/HTTP检查 -> 日志与IDS(Filebeat/Loki 或 Filebeat/ELK + Suricata)-> 与云厂商API联动做自动化封堵/流量清洗。
2.
准备工作与前提
(1) 确认VPS能分配“原生公网IP”,并记录管理控制台API凭证(必要时用于触发流量清洗)。
(2) 开放必要端口:Prometheus抓取端口(9100/node_exporter)、blackbox探针(9115),Grafana(3000)对管理网段开放。
(3) 选择监控主机(建议独立管理网段或云端监控节点)并预留公网出口用于对被监控台湾VPS做黑盒探测。
3.
主机指标采集(Linux)安装 node_exporter
(1) 下载与安装(Debian/Ubuntu 示例):sudo apt update && sudo apt install -y wget tar
(2) wget https://github.com/prometheus/node_exporter/releases/download/v1.5.0/node_exporter-1.5.0.linux-amd64.tar.gz && tar xzf ... && sudo mv node_exporter /usr/local/bin/
(3) 建立 systemd 单元:/etc/systemd/system/node_exporter.service 内容:ExecStart=/usr/local/bin/node_exporter --web.listen-address=":9100"
(4) sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter,确认 curl http://localhost:9100/metrics 可访问。
4.
Prometheus 服务器部署与配置
(1) 安装:下载 Prometheus 二进制并解压到 /opt/prometheus。
(2) 编辑 prometheus.yml,加入抓取配置示例:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['203.x.x.x:9100','台湾VPS2:9100']
(3) 如需黑盒探测,加入 blackbox job 指向监控节点的 9115。
(4) 启动并后台运行,访问 http://monitor:9090/targets 检查抓取状态。
5.
Blackbox Exporter(外部可达性)配置
(1) 安装:在监控节点安装 blackbox_exporter,默认端口 9115。
(2) 编辑 blackbox.yml,配置 modules: http_2xx、tcp_connect、icmp(需要 CAP_NET_RAW 权限或运行在 root 下)。
(3) 在 Prometheus 中增加 job:
- job_name: 'blackbox-http'
metrics_path: /probe
params: {module: [http_2xx]}
static_configs: - targets: ['http://your-taiwan-vps/health','https://...']
relabel_configs: ...
(4) 验证:访问 /probe?target=...&module=http_2xx,应返回 HTTP 200 与 probe_success=1。
6.
Alertmanager 与告警规则实操
(1) 安装 Alertmanager 并配置 alertmanager.yml,示例接收器:邮件、Webhook(企业微信/钉钉/Telegram)。
(2) Prometheus 中配置 rules 文件 alerts.yml,示例规则:
- alert: HighCPU
expr: 100 - (avg by(instance)(irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 85
for: 3m
labels: {severity: critical}
annotations: {summary: "CPU高于85%"}
(3) 在 prometheus.yml 中加入 rule_files: ['alerts.yml'] 并 reload。
(4) Alertmanager 路由示例:根据 severity 路由到不同接收器,并配置抑制(inhibit_rules)。
7.
告警接收器与自动化响应
(1) 邮件:在 alertmanager receiver 配置 smtp_smarthost、from、to。
(2) 企业IM/钉钉/Telegram:配置 webhook,示例:curl -X POST -H 'Content-Type: application/json' -d '{"msgtype":"text","text":{"content":"告警内容"}}' WEBHOOK_URL
(3) 自动化:若检测到异常流量(如 if_rate > 500Mbps 且 packet_loss>5%),通过脚本调用云厂商API触发“流量清洗”或调整ACL。示例伪码:curl -X POST -H "Authorization: Bearer $APIKEY" https://api.provider/clean -d '{"ip":"203.x.x.x","action":"enable_clean"}'
8.
日志与入侵检测整合
(1) 部署 Filebeat 或 Promtail 将 /var/log/* 发往 ELK 或 Loki。
(2) 部署 Suricata 做 IDS,配置 EVE 输出到 Filebeat -> ELK。
(3) 将关键日志(nginx 4xx/5xx,大量连接,ssh authfail)转为 Prometheus 指标(使用 exporter 如 mtail、prometheus-fluentd-exporter 或 filebeat -> Logstash -> prometheus metrics)。
(4) 基于日志产生告警规则,如短时间内 100 次 401 或 5xx 则触发高优先级告警。
9.
可视化与演练
(1) Grafana:安装并添加 Prometheus 数据源,导入现成 dashboard(Node Exporter Full, Blackbox)。
(2) 建议面板:CPU/内存/磁盘/网络带宽/连接数/ICMP延迟/HTTP响应码分布/日志异常计数。
(3) 演练:定期进行告警演练,模拟高CPU(stress-ng --cpu 2 --timeout 180s)、磁盘满(dd if=/dev/zero of=/tmp/fillfile bs=1M count=...)、网络抖动(tc qdisc)并验证告警触达与自动化响应是否生效。
10.
常见运维脚本与巡检清单
(1) 常用脚本:检查 node_exporter 状态、Prometheus targets 状态、黑盒响应脚本。示例:curl http://prometheus:9090/api/v1/alerts | jq '.data.alerts'。
(2) 巡检清单:数据抓取率、Prometheus TSDB 可用磁盘、Alertmanager 队列、Grafana dashboard 完整性、日志采集延迟、云厂商API凭证有效期。
(3) 记录:建立 Runbook,包含故障判断步骤、切换到备用监控节点、联系云厂商紧急电话。
11.
问:台湾VPS在遭遇DDoS时,监控系统如何快速识别并自动触发高防?
回答:通过网络带宽与包速率(node_exporter +自定义BPF或ifstat exporter)建立阈值规则,Prometheus 中定义如 NetIn > X Mbps 且 pkt_rate > Y 且 for:1m 的高优先级告警;告警到 Alertmanager 触发 webhook,调用云厂商清洗API或自动下发 ACL(示例 curl 调用),同时在 Grafana 显示实时流量图并通知值班人以确认并观察清洗效果。
12.
问:如何保证监控本身高可用及不被攻击影响?
回答:监控系统应至少两地三机部署:Prometheus 主/备(利用 Thanos 或 Cortex 做长期存储与高可用),监控节点分布在台湾外网与内网,黑盒探针放在不同运营商,Alertmanager 高可用(多实例+共享存储或HA代理),并对监控链路启用ACL和防护,监控API接口不暴露到公网或加上IP白名单与认证。
13.
问:部署这一套系统的优先级与资源建议是什么?
回答:优先级:1) 主机指标采集(node_exporter)、Prometheus 抓取;2) Alertmanager 基本告警收敛;3) Grafana 可视化与黑盒探针;4) 日志与IDS;5) 与云厂商高防联动自动化。资源:Prometheus 建议至少 2 vCPU/4GB 起,磁盘根据保留时间(短期 15 天需较大IO),Grafana 1vCPU/2GB 足够小规模监控;黑盒探针根据探测频率选用低延迟公网出口。
来源:台湾vps原生ip 高防空间 监控与告警体系建设指南