Prometheus 如何监控一个机器节点的内存占用和磁盘占用情况?

1,411 阅读2分钟

要使用 Prometheus 监控一台机器的内存占用和磁盘占用情况,通常需要以下步骤:


1. 安装 Node Exporter

Node Exporter 是 Prometheus 官方提供的工具,用于收集机器的系统指标(如 CPU、内存、磁盘等)。

安装 Node Exporter

  1. 下载 Node Exporter:

    • 访问 Node Exporter 官方下载页面,选择适合的版本。
    • 例如,在 Linux 上:
      wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
      
  2. 解压并安装:

    tar xvfz node_exporter-*.tar.gz
    cd node_exporter-*
    
  3. 启动 Node Exporter:

    ./node_exporter
    

    Node Exporter 默认会监听 9100 端口。

  4. 设置为系统服务(可选): 创建 Systemd 服务文件 /etc/systemd/system/node_exporter.service

    [Unit]
    Description=Node Exporter
    After=network.target
    
    [Service]
    User=node_exporter
    ExecStart=/path/to/node_exporter/node_exporter
    
    [Install]
    WantedBy=multi-user.target
    

    启用并启动服务:

    sudo systemctl enable node_exporter
    sudo systemctl start node_exporter
    

2. 配置 Prometheus 抓取 Node Exporter 数据

在 Prometheus 的配置文件 prometheus.yml 中,添加 Node Exporter 的抓取目标。

  1. 编辑 prometheus.yml

    scrape_configs:
      - job_name: 'node'
        static_configs:
          - targets: ['<机器IP>:9100']
    

    <机器IP> 替换为运行 Node Exporter 的机器的 IP 地址。

  2. 重启 Prometheus:

    • 如果 Prometheus 是通过 Systemd 管理的:
      sudo systemctl restart prometheus
      
    • 如果是直接运行的:
      ./prometheus --config.file=prometheus.yml
      

3. 验证数据抓取

  1. 访问 Prometheus 的 Web UI(默认地址:http://localhost:9090)。
  2. 在查询框中输入以下指标,查看是否有数据:
    • 内存占用:node_memory_MemTotal_bytesnode_memory_MemAvailable_bytes
    • 磁盘占用:node_filesystem_size_bytesnode_filesystem_free_bytes

4. 查询内存和磁盘占用

内存占用

  • 总内存
    node_memory_MemTotal_bytes
    
  • 可用内存
    node_memory_MemAvailable_bytes
    
  • 内存使用率
    100 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100)
    

磁盘占用

  • 磁盘总大小
    node_filesystem_size_bytes{mountpoint="/"}
    
  • 磁盘可用空间
    node_filesystem_free_bytes{mountpoint="/"}
    
  • 磁盘使用率
    100 - (node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"} * 100)
    

5. 可视化(可选)

使用 Grafana 可以更直观地展示监控数据:

  1. 安装 Grafana。
  2. 添加 Prometheus 数据源。
  3. 导入 Node Exporter 的仪表盘模板(如 ID:1860)。