➔
服务器性能监控是运维工作中最重要的环节之一。通过实时监控CPU、内存、磁盘和网络状况,可以在问题发生前预警,或在故障发生后快速定位原因。本文介绍在Debian上搭建服务器监控体系的方法。
▶一、系统自带监控工具
code
top # 实时查看进程和系统负载
htop # top的增强版,更直观
free -h # 查看内存使用情况
df -h # 查看磁盘使用情况
iostat -x 1 # 查看磁盘IO性能
vmstat 1 # 查看系统整体性能
ss -tuln # 查看端口监听情况
▶二、使用Netdata实现可视化监控
Netdata提供开箱即用的美观仪表盘,安装非常简单:
code
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
安装完成后访问 http://服务器IP:19999 即可看到实时监控仪表盘,涵盖CPU、内存、磁盘、网络、进程等2000+指标。
▶三、安装Prometheus + Node Exporter
code
# 下载Node Exporter
wget https://github.com/prometheus/node_exporter/releases/latest/download/node_exporter-linux-amd64.tar.gz
tar xzf node_exporter-linux-amd64.tar.gz
cp node_exporter-linux-amd64/node_exporter /usr/local/bin/
# 创建systemd服务
cat > /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
systemctl daemon-reload && systemctl start node_exporter && systemctl enable node_exporter
# 验证指标
curl http://localhost:9100/metrics
▶四、配置告警通知
以Netdata为例,配置企业微信或其他渠道告警:
code
# 编辑告警配置文件
vim /etc/netdata/health_alarm_notify.conf
# 启用通知
SEND_WECHAT="YES"
DEFAULT_RECIPIENT_WECHAT="your_webhook_key"
▶五、关键监控指标和阈值
- ●CPU使用率:持续超过80%需关注
- ●内存使用率:超过90%可能触发OOM Killer
- ●磁盘使用率:超过80%应预警,超过90%需紧急处理
- ●磁盘IO等待:持续超过30%表示磁盘成为瓶颈
- ●网络带宽:持续超过80%应考虑升级带宽
- ●负载(Load Average):超过CPU核心数表示负载过高
▶六、日志集中管理
使用ELK(Elasticsearch+Logstash+Kibana)或Loki+Grafana搭建日志集中管理平台。将所有服务器日志聚合到统一平台,支持全文检索、可视化分析和告警配置。
▶七、自定义告警规则
code
# Prometheus告警规则示例
groups:
- name: server_alerts
rules:
- alert: HighCPULoad
expr: 100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
annotations:
summary: "CPU负载过高 - {{ $labels.instance }}"
▶八、监控可视化看板
使用Grafana搭建统一监控看板,将服务器资源、应用性能、业务指标整合到同一视图。支持多数据源混合展示,配置定期报告邮件自动发送给管理团队。