使用 Prometheus 监控集群硬件指标
2024-02-01 06:18:06
前言
监控集群的硬件指标对于确保系统的健康和性能至关重要。通过监测 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 和节点导出器,我们可以有效地监控集群硬件指标。这使我们能够及早发现和解决问题,从而提高系统的可靠性和性能。本指南提供了逐步说明,帮助您安装和配置所有必要的组件,并创建仪表板以可视化指标。