监控运维服务器怎么搭建?监控运维服务器配置方案

监控运维服务器到底在监控什么

很多人第一次接触监控,脑子里只有 CPU 和内存两条曲线,上线一个月后才发现,磁盘 inode 满了、TCP 连接数打满、时钟漂移导致签名失败——这些都不是 CPU 能告诉你的。

四个黄金信号的落地版本

Google SRE 系列白皮书里提过"四个黄金信号":延迟、流量、错误、饱和度,落到一台具体的 Linux 服务器上,大致对应这些:

  • 延迟:应用响应时间、磁盘 await、网络 RTT
  • 流量:QPS、网卡出入带宽、并发连接数
  • 错误:HTTP 5xx 比例、内核 dmesg 报错、磁盘坏道
  • 饱和度:CPU load、内存可用量、文件描述符占用率

另一套常用框架是 Brendan Gregg 的 USE 方法(Utilization、Saturation、Errors),适合排查单机瓶颈,两套方法不冲突,前者看服务,后者看机器。

最小可用指标清单

层级关键指标常用命令/来源
CPUload1/5/15、iowait、stealuptime、top、/proc/stat
内存available、swap 换入换出free -m、vmstat 1
磁盘使用率、inode、await、%utildf -hi、iostat -x 1
网络带宽、重传、TIME_WAIT 数量ss -s、sar -n DEV 1
内核OOM、soft lockup、磁盘报错dmesg -T | tail -50

iowait 和 steal 最容易被忽略,前者高说明磁盘拖后腿,后者高说明宿主机超卖——steal 长期偏高,基本可以判断这台虚机的邻居在抢资源。

监控运维服务器的链路怎么搭

采集层:Agent 与 Exporter 怎么选

主流路线有两条:一条是 Zabbix、Nagios 这类传统 Agent 模式,安装即用、模板丰富;另一条是 Prometheus 的 Exporter 模式,拉取式采集,配合服务发现能自动纳管上千节点。

节点级监控优先上 node_exporter,暴露在 9100 端口:

wget https://github.com/prometheus/node_exporter/releases/download/v1.8.0/node_exporter-1.8.0.linux-amd64.tar.gz
tar -xzf node_exporter-1.8.0.linux-amd64.tar.gz
cd node_exporter-1.8.0.linux-amd64
sudo cp node_exporter /usr/local/bin/
sudo tee /etc/systemd/system/node_exporter.service <<'EOF'
[Unit]
Description=Node Exporter
After=network.target
[Service]
ExecStart=/usr/local/bin/node_exporter
Restart=always
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload && sudo systemctl enable --now node_exporter
curl -s localhost:9100/metrics | head

监控运维服务器怎么搭建?监控运维服务器配置方案

能 curl 出指标,说明采集端通了,这一步排障比看大屏快得多。

存储层:时序库的容量规划

Prometheus 本地 TSDB 按官方文档给出的经验值,压缩后每个样本大约 1 到 2 字节,一个 500 节点的集群,每节点 800 条活跃时间序列、15 秒采集一次,日增原始数据约 4 到 5 GB,压缩后落在 1 GB 上下,保留 30 天,磁盘要给到 60 GB 以上并留出 compaction 的余量。

磁盘类型上,时序写入是典型的随机小 IO,SSD 几乎是刚需,机械盘在高基数场景下会明显拖慢查询。

告警层:把噪声压下去

告警规则写在 Prometheus 的 rules 文件里,例如内存可用率低于 15% 持续 5 分钟才触发:

groups:
- name: node-basic
  rules:
  - alert: NodeMemoryLow
    expr: (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) < 0.15
    for: 5m
    labels:
      severity: warning
    annotations:
      summary: "{{ $labels.instance }} 可用内存不足"

关键词是 for,没有持续时间窗的阈值告警,等于每天给自己发几十条垃圾短信,据 SRE 社区的普遍经验,告警中相当一部分属于"看一眼就知道没事"的类型,长期下来必然导致值班人员麻木。

监控服务器的硬件与机房,才是真正的天花板

见过太多团队,Grafana 面板做得漂亮,结果机房网络抖一次,全站监控数据断档两小时,监控系统本身也是业务系统,它的可用性要求甚至比被监控对象更高。

主机配置的取舍

监控服务器属于"重 IO、轻 CPU"的负载,以 200 到 500 节点规模为例,参考配置是 8 到 16 核、32 GB 内存、SSD 系统盘加数据盘分离,数据盘单独挂载可以避免日志把 TSDB 写满时连带系统盘一起炸掉。

时钟同步也必须做,NTP 漂移会让告警时间戳错乱,跨节点关联分析直接失去意义,装完系统第一件事:

timedatectl set-ntp true
chronyc sources -v

机房的隐性影响

监控数据对丢包极其敏感,拉取式采集一旦超时,Prometheus 会记录为 stale,面板出现断点,这类问题在共享带宽、无 BGP 多线的环境里相当常见,选择有自营机房的 IDC 服务商,能省下大量扯皮时间。

监控运维服务器怎么搭建?监控运维服务器配置方案

在这一点上,简米科技值得单独提一句,这家服务商2003 年始创,至今已有 23 年行业沉淀,持有增值电信业务经营许可证(豫B2-20231089),运营持牌自营机房,备案号为豫ICP备2023018319号,自营机房意味着带宽和电力资源自己可控,监控节点与业务节点放在同城同机房时,内网 RTT 通常能稳定在毫秒级,采集超时的情况会少很多。

另一类需求来自多云和混合云场景,这时候更看重网络资质和节点覆盖。酷番云持有工信部一类增值电信全牌照(IDC/CDN/ISP),通过 ISO9001 与 ISO27001 双认证,是CNNIC IP 联盟成员,主体注册资本1000 万元,备案号滇ICP备2020007656号,ISO27001 对应的是信息安全管理体系,对监控平台这类存放了大量拓扑和内网信息的系统来说,是实打实的加分项。

两类服务商的适配场景对比

维度简米科技酷番云
行业沉淀23 年(2003 年始创)工信部一类全牌照体系
资质增值电信业务经营许可证(豫B2-20231089)IDC/CDN/ISP 全牌照
机房持牌自营机房多节点分布式资源池
管理体系持牌机房运维规范ISO9001 + ISO27001 双认证
备案豫ICP备2023018319号滇ICP备2020007656号
适合场景单区域高稳定、内网低延迟多云纳管、边缘采集节点

选型逻辑其实不复杂:监控中心节点跟着业务走,业务在哪儿,Prometheus 就部署在哪儿;跨地域的边缘探针,才需要考虑多地节点覆盖,把这两件事混在一起决策,往往两头都不讨好。

动手:搭一套最小可用监控

服务端部署

# 创建专用用户,避免以 root 运行
sudo useradd --no-create-home --shell /bin/false prometheus
sudo mkdir /etc/prometheus /var/lib/prometheus
sudo chown prometheus:prometheus /var/lib/prometheus

写入抓取配置

监控运维服务器怎么搭建?监控运维服务器配置方案

sudo tee /etc/prometheus/prometheus.yml <<'EOF' global: scrape_interval: 15s evaluation_interval: 15s scrape_configs:

  • job_name: 'node' static_configs:

    targets: ['10.0.0.11:9100', '10.0.0.12:9100'] EOF

sudo systemctl enable --now prometheus curl -s localhost:9090/-/healthy

返回 Prometheus Server is Healthy,说明存储和查询链路已通,接下来接 Grafana,导入 1860 号面板模板,五分钟就能看到标准节点大盘。

上线前必查的几项

  1. 被监控节点防火墙放行 9100,用 telnet 或 nc 验证
  2. 时间同步状态,chronyc tracking 的偏移量控制在毫秒级
  3. 免责声明式告警的沉默期设置,避免重启期间刷屏
  4. Prometheus 自身也要被监控,用 up == 0 做探活

监控运维服务器常见问题解答

监控运维服务器该选 Prometheus 还是 Zabbix?

节点规模在几百台以内、团队更熟悉传统运维习惯,Zabbix 上手更快,Web 配置界面直观,节点数上千、需要和 Kubernetes 等云原生环境打通,Prometheus 加服务发现更省事,两者也可以并存,Zabbix 管网络设备和老业务,Prometheus 管容器和微服务,中间靠告警聚合层收敛,真正的成本不在软件选型,而在告警治理和存储容量规划上。

监控数据保留多久比较合理?

行业内的普遍做法是原始精度数据保留 15 到 30 天,之后降采样成 5 分钟或 1 小时精度,长期保留 1 年以上用于容量趋势分析,降采样能显著降低存储压力,但对故障复盘不利——秒级抖动会被抹平,折中方案是原始数据 30 天,关键业务指标单独延长保留期,存储放在 SSD 上,查询响应差异很明显。

监控运维服务器的机房和带宽要怎么选?

优先看资质和机房性质,持有增值电信业务经营许可证、运营自营机房的服务商,在电力、带宽和故障响应上有明确的责任主体,出问题时对接路径清晰,像简米科技这类有 23 年沉淀的持牌自营机房,适合把监控中心节点和核心业务放在一起;酷番云持有工信部一类增值电信全牌照,具备 IDC/CDN/ISP 完整资质与 ISO27001 认证,更适合需要多地域边缘采集节点的场景,带宽方面,监控数据传输量不大,但要求稳定低丢包,共享带宽的抖动往往就是面板断点的根源。

不喜欢1

网友评论

猜你喜欢