服务器监控哪些项目
服务器监控是保障业务稳定运行的生命线,核心监控项目包括:

- CPU性能监控: 利用率、负载、进程状态。
- 内存使用监控: 总量、使用率、Swap、缓存/缓冲。
- 磁盘存储监控: 空间使用率、I/O性能、文件系统健康。
- 网络性能监控: 带宽、流量、连接数、延迟、丢包。
- 系统与服务状态监控: 进程存活、端口监听、服务响应。
- 日志监控与分析: 系统日志、应用日志、安全日志。
- 安全监控: 异常登录、恶意进程、漏洞扫描。
- 应用性能监控: 关键业务接口响应时间、吞吐量、错误率。
- 虚拟化/容器监控: 宿主机资源、虚拟机/容器性能、编排状态。
- 温度与环境监控: 硬件温度、风扇转速、电源状态。
深入解析核心监控项目:
CPU性能监控:系统的“大脑”负荷
- CPU利用率:
- 监控什么: 用户态(
%us)、系统态(%sy)、空闲(%id)、等待I/O(%wa)、软硬中断(%si/%hi)、虚拟化开销(%st)等占比。 - 为什么重要: 持续高利用率(如 >80%)表明CPU是瓶颈,可能导致应用响应缓慢。
%wa过高通常指向磁盘I/O问题;%st过高(在虚拟机中)表示物理CPU资源竞争激烈。 - 关键阈值与观察: 设定利用率告警阈值(如持续5分钟>90%);关注
%wa和%st的异常波动;结合负载(Load Average)判断整体压力。
- 监控什么: 用户态(
- CPU负载(Load Average):
- 监控什么: 系统在特定时间间隔(1分钟、5分钟、15分钟)内,处于可运行状态(正在使用CPU或等待CPU)和不可中断状态(通常等待磁盘I/O)的平均进程数。
- 为什么重要: 比单纯利用率更能反映系统的“繁忙”程度和排队情况,单核CPU上,5分钟负载持续>1表示进程需要等待。
- 关键阈值与观察: 负载值应结合CPU核心数评估(理想值应接近或略低于核心数),持续高于核心数数倍(如4核机器负载>8)是严重警告信号,关注5分钟和15分钟负载趋势。
- 进程级CPU消耗:
- 监控什么: 单个进程的CPU使用率、消耗时间、状态(运行、睡眠、僵尸等)。
- 为什么重要: 定位消耗CPU资源的“元凶”,识别异常进程(如挖矿病毒、失控的应用线程)。
- 关键操作: 使用
top,htop,ps等工具实时查看;对持续高CPU进程进行深入分析(代码优化、配置调整或查杀)。
内存使用监控:避免“贫血”与“泄漏”
- 物理内存使用:
- 监控什么: 总内存量、已用量、空闲量、缓存(
cached)、缓冲(buffers)。 - 为什么重要: 内存不足会触发频繁的磁盘交换(
Swap),导致性能急剧下降(称为“颠簸”),充分利用cached/buffers是Linux优化性能的关键。 - 关键阈值与观察: 监控可用内存(
available)而非单纯空闲(free)(available包含可回收的缓存/缓冲),设定available内存过低告警(如 < 总内存10%)。
- 监控什么: 总内存量、已用量、空闲量、缓存(
- Swap空间使用:
- 监控什么: Swap总量、已用量、换入(
si)/换出(so)速率。 - 为什么重要: 少量Swap使用正常,但持续高
si/so速率是内存严重不足和性能劣化的明确信号。 - 关键阈值与观察: 监控Swap使用率(如 >20%告警);尤其警惕
si持续>0,表明系统正努力从Swap换回数据,性能已受显著影响,目标是尽量减少Swap活跃使用。
- 监控什么: Swap总量、已用量、换入(
- 内存泄露检测:
- 监控什么: 特定进程(尤其是应用进程如Java JVM)的内存使用量(
RSS,VSZ)随时间增长趋势。 - 为什么重要: 内存泄露会导致内存被无效占用,最终耗尽引发OOM(Out-Of-Memory)错误和进程崩溃。
- 关键操作: 对关键应用进程建立内存使用基线并监控其增长趋势(即使总体内存充足),结合应用日志(如Java的GC日志)分析,使用
pmap,valgrind等工具辅助定位。
- 监控什么: 特定进程(尤其是应用进程如Java JVM)的内存使用量(
磁盘存储监控:空间与速度的双重保障
- 磁盘空间使用率:
- 监控什么: 文件系统挂载点、总容量、已用量、可用量、使用百分比、Inode使用率(特别针对小文件多的场景)。
- 为什么重要: 磁盘满会导致应用无法写入(日志、数据库操作失败),甚至系统崩溃。
- 关键阈值与观察: 对关键分区(如,
/var,/home, 数据库目录)设置严格阈值(如 >80% 警告, >90% 严重告警)。特别关注Inode耗尽问题(df -i),即使空间充足也无法创建新文件。
- 磁盘I/O性能:
- 监控什么:
- 吞吐量: 读取(
rKB/s)/写入(wKB/s)速率。 - IOPS: 每秒读写操作次数。
- 延迟: 平均等待时间(
await)、平均服务时间(svctm)、I/O队列长度(avgqu-sz)。 - 利用率: 磁盘忙碌时间百分比(
%util)。
- 吞吐量: 读取(
- 为什么重要: I/O瓶颈(特别是高
await、长队列、高%util)会拖慢所有依赖磁盘的操作(数据库、文件服务)。 - 关键阈值与观察: 关注
await(通常期望 < 10ms,数据库等关键应用要求更高);%util持续接近100%是瓶颈标志;结合svctm和avgqu-sz分析是磁盘本身慢还是请求太多,区分随机IO(高IOPS敏感)和顺序IO(高吞吐敏感)。
- 监控什么:
- 文件系统与磁盘健康:
- 监控什么: RAID阵列状态(
/proc/mdstat,硬件RAID卡工具)、S.M.A.R.T.属性(针对物理磁盘)、文件系统错误(dmesg,fsck)。 - 为什么重要: 早期预警磁盘硬件故障(坏道、预测性故障),防止RAID失效或数据丢失。
- 关键操作: 定期检查RAID状态(Degraded/Recovering需立即处理);监控S.M.A.R.T.关键属性(
Reallocated_Sector_Ct,Current_Pending_Sector,Uncorrectable_Error_Cnt等)变化;配置监控工具主动告警。
- 监控什么: RAID阵列状态(
网络性能监控:连接的桥梁与瓶颈

- 带宽与流量:
- 监控什么: 网络接口的流入(
RX)/流出(TX)流量(bps, pps)、错误包(errs)、丢弃包(drops)。 - 为什么重要: 饱和的带宽会导致网络延迟增加、丢包,影响应用访问速度,错误和丢弃包可能指示硬件或驱动问题。
- 关键阈值与观察: 监控流量占接口理论带宽的百分比(如持续 >70% 警告);关注
errs/drops的持续增长(即使流量不高)。
- 监控什么: 网络接口的流入(
- 连接状态与数量:
- 监控什么: TCP/UDP连接总数、各状态连接数(
ESTABLISHED,TIME_WAIT,CLOSE_WAIT等)、特定端口连接数。 - 为什么重要: 连接数耗尽可能导致新连接失败(
Can't assign requested address)。TIME_WAIT过多可能占用端口资源;CLOSE_WAIT堆积常因应用未正确关闭连接,可能导致资源泄露。 - 关键操作: 监控总连接数趋势,设定阈值告警;分析异常状态连接堆积的原因(应用Bug、配置不当、攻击?)。
- 监控什么: TCP/UDP连接总数、各状态连接数(
- 网络延迟与丢包:
- 监控什么: 到关键网关、上游DNS、核心业务服务器的Ping延迟、丢包率;关键服务的TCP连接建立时间。
- 为什么重要: 高延迟和丢包直接影响用户体验(网页打开慢、视频卡顿、应用操作延迟)。
- 关键操作: 持续内网&外网探测;设定延迟阈值(如 >50ms 警告, >100ms 严重)和丢包阈值(如 >1% 警告);发生问题时进行
traceroute/mtr定位故障点(机房内、运营商网络、目标服务器)。
系统与服务状态监控:生命体征检查
- 进程存活监控:
- 监控什么: 关键系统进程(
sshd,crond)和业务应用进程(Web服务器、数据库、中间件)是否在运行。 - 为什么重要: 进程意外退出意味着服务中断。
- 关键操作: 使用进程名或PID文件监控;配置失败后自动重启(需谨慎,避免掩盖根本问题)。
- 监控什么: 关键系统进程(
- 端口监听监控:
- 监控什么: 关键服务监听的TCP/UDP端口是否能成功连接(
telnet/nc)。 - 为什么重要: 进程在但端口未监听(如配置错误、绑定失败)或无法连接(如防火墙阻拦)同样导致服务不可用。
- 关键操作: 对关键服务端口(如SSH-22, HTTP-80/443, DB-3306/5432)进行定时的连接性测试。
- 监控什么: 关键服务监听的TCP/UDP端口是否能成功连接(
- 服务响应与业务健康检查:
- 监控什么: 模拟用户访问关键业务接口(如HTTP GET /health, API调用),检查返回状态码、响应时间、内容匹配(如包含
"status": "OK")。 - 为什么重要: 这是最接近用户体验的监控,端口通不等于服务真正常(如应用内部错误、数据库连接失败)。
- 关键操作: 实现从用户角度出发的业务逻辑检查脚本或使用专业APM工具。
- 监控什么: 模拟用户访问关键业务接口(如HTTP GET /health, API调用),检查返回状态码、响应时间、内容匹配(如包含
日志监控与分析:洞察问题的根源
- 集中收集: 使用
Rsyslog/Syslog-ng/Fluentd/Logstash等工具将系统和应用日志集中到中心服务器(如ELK Stack, Graylog, Splunk)。 - 关键日志源:
- 系统日志(
/var/log/messages,syslog): 内核消息、系统服务日志、认证日志(auth.log/secure)。 - 应用日志: Web服务器(
access_log,error_log)、数据库日志、自定义应用日志。
- 系统日志(
- 监控重点:
- 错误(ERROR, FATAL)与警告(WARN): 立即告警。
- 关键模式匹配: 如登录失败暴破、数据库连接错误、OOM Killer记录、文件系统错误、应用特定的崩溃信息。
- 日志速率异常: 突然暴增或归零都可能预示问题(攻击、服务宕机)。
- 为什么重要: 日志是故障诊断和事后分析的黄金数据源,提供错误上下文和根本原因线索。
安全监控:构筑防御壁垒
- 认证与访问监控:
- 监控什么: 成功/失败的登录尝试(SSH, 管理后台)、
sudo提权操作、异常账号创建/权限变更。 - 为什么重要: 及时发现暴力破解、未授权访问和内部滥用。
- 监控什么: 成功/失败的登录尝试(SSH, 管理后台)、
- 文件与进程完整性监控:
- 监控什么: 关键系统文件(
/bin,/sbin,/usr,/etc, 配置文件)的哈希值或属性变更;异常进程执行(如挖矿程序、Rootkit特征)。 - 为什么重要: 检测入侵痕迹和后门植入。
- 监控什么: 关键系统文件(
- 漏洞扫描与合规: 定期使用工具扫描操作系统和应用程序漏洞,检查安全配置基线合规性。
- 为什么重要: 主动发现弱点,防患于未然。
应用性能监控:用户体验的直接映射
-
- 关键事务响应时间: 用户登录、搜索、下单等核心操作的耗时。
- 吞吐量: 每秒处理请求数(RPS/QPS)。
- 错误率: HTTP 5xx错误、应用逻辑错误的比例。
- 应用内部指标: 方法执行时间、SQL查询耗时、缓存命中率、线程池状态、JVM GC情况(针对Java)、外部服务调用延迟。
- 为什么重要: 从业务视角量化用户体验和系统健康,精准定位性能瓶颈在应用层、数据库层还是外部依赖。
- 实现方式: 集成APM工具(如SkyWalking, Pinpoint, Elastic APM, New Relic, Dynatrace)在应用代码中或通过服务网格(
Service Mesh)实现无侵入监控。
虚拟化/容器环境监控:云时代的必备项

- 宿主机(Hypervisor/Node)监控: 涵盖前述所有物理资源监控(CPU, 内存, 磁盘, 网络),是虚拟机/容器资源的上限。
- 虚拟机/容器监控:
- 资源配额与使用: 分配的vCPU/内存/磁盘限额与实际使用量、是否发生资源限制(
Throttling)。 - 性能指标: 同物理服务器,但需注意在容器中获取准确资源使用(特别是内存)的方法(
cgroup指标)。 - 状态与生命周期: 运行状态(
Running,Stopped,Crashed)、重启次数、调度事件。
- 资源配额与使用: 分配的vCPU/内存/磁盘限额与实际使用量、是否发生资源限制(
- 编排层监控: 如Kubernetes集群的
Node状态、Pod状态与事件、Deployment/StatefulSet副本数、Service/Ingress状态、资源请求(Requests)/限制(Limits)使用率。 - 为什么重要: 云原生环境下,需要同时关注底层基础设施和上层动态调度的业务负载状态。
温度与环境监控:硬件稳定的基石
- 监控什么: CPU核心温度、主板温度、硬盘温度、风扇转速、电源状态(输入电压、各路输出电压、是否冗余失效)。
- 为什么重要: 过热是硬件故障和性能降频的主要诱因;风扇故障导致散热失效;电源问题可能导致宕机或损坏设备。
- 关键操作: 通过IPMI/BMC、硬件代理或机房环境监控系统获取数据;设定温度上限告警(依据设备规格);监控风扇转速异常降低。
构建有效的监控体系:
- 选择合适的工具栈: 结合开源(Prometheus+Grafana+Alertmanager, Zabbix, Nagios)与商业方案(Datadog, SolarWinds, Dynatrace),覆盖指标、日志、链路追踪。
- 统一监控平台: 集中展示、告警和分析,避免信息孤岛。
- 设定合理的告警阈值: 基于基线(如历史95分位数)动态调整,避免误报和漏报,实现分级告警(Warning, Critical)。
- 告警闭环管理: 明确告警接收人、升级策略、故障处理流程(SOP)和事后复盘机制。
- 持续优化: 定期评审监控项的有效性、告警的准确性,根据业务变化和技术演进调整监控策略。
服务器监控绝非简单的数据收集,它是将复杂系统运行状态转化为可理解、可预警、可行动的洞察力的核心工程实践,深入理解每个监控项背后的原理与意义,构建层次分明、覆盖全面、响应迅速的监控体系,是保障业务连续性和提升运维效率的重中之重。
您的服务器监控体系中,哪个环节曾帮助您最快定位并解决过棘手的生产问题?最常被忽视的关键指标又是哪一个? 欢迎分享您的实战经验与见解!
原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/14696.html