要使用 Prometheus 监控一台机器的内存占用和磁盘占用情况,通常需要以下步骤:
1. 安装 Node Exporter
Node Exporter 是 Prometheus 官方提供的工具,用于收集机器的系统指标(如 CPU、内存、磁盘等)。
安装 Node Exporter
-
下载 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
-
解压并安装:
tar xvfz node_exporter-*.tar.gz cd node_exporter-* -
启动 Node Exporter:
./node_exporterNode Exporter 默认会监听
9100端口。 -
设置为系统服务(可选): 创建 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 的抓取目标。
-
编辑
prometheus.yml:scrape_configs: - job_name: 'node' static_configs: - targets: ['<机器IP>:9100']将
<机器IP>替换为运行 Node Exporter 的机器的 IP 地址。 -
重启 Prometheus:
- 如果 Prometheus 是通过 Systemd 管理的:
sudo systemctl restart prometheus - 如果是直接运行的:
./prometheus --config.file=prometheus.yml
- 如果 Prometheus 是通过 Systemd 管理的:
3. 验证数据抓取
- 访问 Prometheus 的 Web UI(默认地址:
http://localhost:9090)。 - 在查询框中输入以下指标,查看是否有数据:
- 内存占用:
node_memory_MemTotal_bytes和node_memory_MemAvailable_bytes - 磁盘占用:
node_filesystem_size_bytes和node_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 可以更直观地展示监控数据:
- 安装 Grafana。
- 添加 Prometheus 数据源。
- 导入 Node Exporter 的仪表盘模板(如 ID:
1860)。