返回

使用 Prometheus 监控集群硬件指标

见解分享

前言

监控集群的硬件指标对于确保系统的健康和性能至关重要。通过监测 CPU 使用率、内存消耗和存储空间等指标,我们可以及时发现和解决问题,避免服务中断和数据丢失。

Prometheus 是一个开源的监控和警报系统,广泛用于监控各种应用程序和基础设施。它可以收集和存储来自各种来源的指标,并提供强大的查询和可视化功能。

安装和配置节点导出器

节点导出器是一个由 Prometheus 提供的导出器,可收集有关节点硬件的指标。要安装节点导出器,请下载最新版本并将其解压缩到要安装的每个节点上的目录中。

wget https://github.com/prometheus/node_exporter/releases/download/v0.19.0/node_exporter-0.19.0.linux-amd64.tar.gz
tar -xzvf node_exporter-0.19.0.linux-amd64.tar.gz

编辑节点导出器配置文件(通常位于 /etc/node_exporter/node_exporter.yml):

# 设置绑定的监听端口
listen_address: 192.168.1.2:9100

启动节点导出器:

./node_exporter

使用 Ansible 批量安装节点导出器

如果集群中有大量节点,可以使用 Ansible 来批量安装节点导出器。创建一个 playbook,如下所示:

---
- hosts: all
  become: yes
  tasks:
    - name: 下载节点导出器
      get_url:
        url: https://github.com/prometheus/node_exporter/releases/download/v0.19.0/node_exporter-0.19.0.linux-amd64.tar.gz
        dest: /tmp/node_exporter-0.19.0.linux-amd64.tar.gz
    - name: 解压缩节点导出器
      unarchive:
        src: /tmp/node_exporter-0.19.0.linux-amd64.tar.gz
        dest: /opt/node_exporter
    - name: 创建系统用户和组
      user:
        name: node_exporter
        group: node_exporter
    - name: 复制二进制文件
      copy:
        src: /opt/node_exporter/node_exporter
        dest: /usr/bin/node_exporter
        mode: 0755
    - name: 设置监听端口
      lineinfile:
        dest: /etc/node_exporter/node_exporter.yml
        line: listen_address: 192.168.1.2:9100
    - name: 启动节点导出器
      systemd:
        name: node_exporter
        state: started
        enabled: yes

运行 playbook:

ansible-playbook -i hosts node_exporter.yml

创建 Prometheus 作业

要从节点导出器收集指标,我们需要创建一个 Prometheus 作业。创建一个名为 node_exporter 的作业文件:

scrape_configs:
  - job_name: node_exporter
    scrape_interval: 5s
    target_groups:
      - targets: ['192.168.1.1:9100', '192.168.1.2:9100', '192.168.1.3:9100']

将作业文件添加到 Prometheus 配置目录(通常位于 /etc/prometheus/prometheus.yml)。

创建仪表板

为了可视化硬件指标,我们可以创建一个仪表板。创建一个名为 hardware_monitoring 的仪表板文件:

apiVersion: v1
kind: ConfigMap
metadata:
  name: hardware_monitoring-dashboard
data:
  dashboard.yaml: |
    apiVersion: 1
    title: 硬件监控
    rows:
      - title: CPU
        panels:
          - type: stat
            title: CPU 使用率
            targets:
              - node_cpu_seconds_total
      - title: 内存
        panels:
          - type: gauge
            title: 内存使用率
            targets:
              - node_memory_MemTotal_bytes
              - node_memory_MemFree_bytes
      - title: 存储
        panels:
          - type: singlestat
            title: 磁盘空间使用率
            targets:
              - node_filesystem_size_bytes
              - node_filesystem_avail_bytes

将仪表板文件添加到 Prometheus 配置目录(通常位于 /etc/prometheus/dashboards/)。

重启 Prometheus

在进行上述更改后,重启 Prometheus 以加载新的作业和仪表板:

systemctl restart prometheus

验证

使用以下命令访问 Prometheus 仪表板:

http://<prometheus_ip>:9090/graph

仪表板中应显示有关 CPU 使用率、内存消耗和存储空间的指标。

结论

通过使用 Prometheus 和节点导出器,我们可以有效地监控集群硬件指标。这使我们能够及早发现和解决问题,从而提高系统的可靠性和性能。本指南提供了逐步说明,帮助您安装和配置所有必要的组件,并创建仪表板以可视化指标。