如何在Linux上设置系统监控

来源:Golang编程网作者:松本一香头衔:网络博主
导读:本期聚焦于小伙伴创作的《如何在Linux上设置系统监控》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何在Linux上设置系统监控》有用,将其分享出去将是对创作者最好的鼓励。

在Linux系统中设置系统监控,可以根据需求选择轻量的命令行工具或者专业的监控平台方案,不同方案适配不同的使用场景,下面分别介绍具体的设置方法。

如何在Linux上设置系统监控

基础命令行监控工具设置

如果只是临时查看系统运行状态,不需要持久化监控数据,直接使用系统自带的命令行工具即可,这类工具无需额外安装,开箱即用。

top命令的使用

top是Linux系统默认的进程监控工具,可以实时显示系统的CPU、内存、进程等运行状态,直接执行以下命令即可启动:

# 直接执行top命令启动实时监控
top

# 常用参数说明
# -d 设置刷新间隔,单位为秒,例如每2秒刷新一次
top -d 2
# -p 监控指定PID的进程,例如监控PID为1234的进程
top -p 1234

top界面中,第一行的load average表示系统1分钟、5分钟、15分钟的平均负载,内存部分会显示总内存、已用内存、空闲内存的数值,进程列表默认按CPU使用率排序,按P键可以按CPU使用率排序,按M键可以按内存使用率排序。

htop工具的优化使用

htop是top的增强版,支持颜色显示、鼠标操作、横向纵向滚动查看进程信息,需要先安装后使用,不同发行版的安装命令如下:

# Ubuntu/Debian系统安装htop
sudo apt update && sudo apt install htop -y

# CentOS/RHEL系统安装htop
sudo yum install htop -y
# 或者CentOS 8及以上使用dnf
sudo dnf install htop -y

安装完成后直接执行htop命令即可启动,界面比top更直观,支持直接杀死进程、调整进程优先级等操作。

专业监控平台搭建

如果需要长期监控多台服务器,并且需要存储监控数据、设置告警规则,推荐使用Prometheus+node_exporter的组合搭建监控系统,该方案轻量且扩展性强。

node_exporter安装配置

node_exporter是Prometheus官方提供的用于收集Linux系统指标的导出器,需要在所有需要监控的Linux服务器上安装。

首先下载对应版本的node_exporter安装包,以当前最新稳定版为例:

# 下载node_exporter安装包,注意替换为自己需要的版本
wget https://ipipp.com/node_exporter/download/node_exporter-1.6.1.linux-amd64.tar.gz
# 解压安装包
tar -zxvf node_exporter-1.6.1.linux-amd64.tar.gz
# 移动到/usr/local/bin目录方便执行
sudo mv node_exporter-1.6.1.linux-amd64/node_exporter /usr/local/bin/
# 赋予执行权限
sudo chmod +x /usr/local/bin/node_exporter

然后创建systemd服务文件,让node_exporter可以开机自启:

# 创建服务文件
sudo vim /etc/systemd/system/node_exporter.service

在文件中写入以下内容:

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=root
ExecStart=/usr/local/bin/node_exporter
Restart=always

[Install]
WantedBy=multi-user.target

保存后执行以下命令启动服务并设置开机自启:

# 重新加载systemd配置
sudo systemctl daemon-reload
# 启动node_exporter服务
sudo systemctl start node_exporter
# 设置开机自启
sudo systemctl enable node_exporter
# 查看服务运行状态
sudo systemctl status node_exporter

服务启动后,默认会在9100端口提供指标数据,访问http://服务器IP:9100/metrics即可看到收集到的系统指标。

Prometheus服务端配置

Prometheus是核心的监控服务端,负责拉取各个node_exporter的指标数据并存储,首先下载安装Prometheus:

# 下载Prometheus安装包,替换为自己需要的版本
wget https://ipipp.com/prometheus/download/prometheus-2.45.0.linux-amd64.tar.gz
# 解压安装包
tar -zxvf prometheus-2.45.0.linux-amd64.tar.gz
# 移动到/opt目录
sudo mv prometheus-2.45.0.linux-amd64 /opt/prometheus

然后修改Prometheus的配置文件/opt/prometheus/prometheus.yml,添加需要监控的节点:

global:
  scrape_interval: 15s # 全局抓取间隔,默认15秒

scrape_configs:
  - job_name: "prometheus" # 监控Prometheus自身
    static_configs:
      - targets: ["localhost:9090"]

  - job_name: "linux_nodes" # 监控Linux节点
    static_configs:
      # 替换为实际安装了node_exporter的服务器IP和端口
      - targets: ["192.168.0.1:9100", "127.0.0.1:9100"]

同样创建systemd服务让Prometheus开机自启:

sudo vim /etc/systemd/system/prometheus.service

写入以下内容:

[Unit]
Description=Prometheus
After=network.target

[Service]
User=root
ExecStart=/opt/prometheus/prometheus --config.file=/opt/prometheus/prometheus.yml --storage.tsdb.path=/opt/prometheus/data
Restart=always

[Install]
WantedBy=multi-user.target

启动服务:

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

服务启动后,访问http://Prometheus服务器IP:9090即可进入Prometheus的Web界面,在查询框中输入node_cpu_seconds_total等指标名,即可查看对应的监控数据。

监控告警基础设置

如果需要设置告警,可以搭配Alertmanager组件,首先在Prometheus配置文件中添加Alertmanager的配置:

# 在prometheus.yml中添加以下内容
alerting:
  alertmanagers:
    - static_configs:
        - targets: ["localhost:9093"] # Alertmanager的地址

rule_files:
  - "rules/*.yml" # 告警规则文件路径

然后创建告警规则文件,例如/opt/prometheus/rules/node_alerts.yml,写入CPU使用率过高的告警规则:

groups:
  - name: node_alerts
    rules:
      - alert: HighCpuUsage
        expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
        for: 2m
        labels:
          severity: warning
        annotations:
          summary: "服务器 {{ $labels.instance }} CPU使用率过高"
          description: "当前CPU使用率为 {{ $value }}%,超过80%阈值"

重启Prometheus服务后,当CPU使用率超过80%持续2分钟,就会触发告警,再结合Alertmanager配置邮件、钉钉等告警通知渠道,即可实现完整的监控告警流程。

常用监控指标说明

以下是node_exporter收集的核心监控指标说明:

指标名称指标含义
node_cpu_seconds_totalCPU各模式的使用时长累计值
node_memory_MemTotal_bytes系统总内存大小
node_memory_MemAvailable_bytes系统可用内存大小
node_filesystem_size_bytes磁盘分区总大小
node_filesystem_free_bytes磁盘分区剩余大小
node_network_receive_bytes_total网卡接收字节数累计值
node_network_transmit_bytes_total网卡发送字节数累计值

Linux系统监控top命令Prometheusnode_exporter修改时间:2026-07-02 17:48:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。