监控平台 Grafana+Prometheus+node_exporter初识

监控平台 Grafana+Prometheus+node_exporter初识

三个组件的角色与关系(黄金组合)

这是一个分层架构,各司其职:

  1. node_exporter:数据采集器
    • 角色:像一个"间谍"或"探针",安装在被监控的目标机器(如 Linux 服务器)上。
    • 功能 :专门用于收集主机级别的硬件和操作系统指标,如 CPU 使用率、内存占用、磁盘 I/O、网络流量、系统负载、温度等。它本身不存储数据,只提供一个 HTTP 端点供 Prometheus 抓取。
    • 输出:以纯文本格式暴露指标数据。
  2. Prometheus:监控核心与时序数据库
    • 角色:整个系统的"大脑"和"数据库"。
    • 功能
      • 拉取模式 :定期主动从配置好的目标(如 node_exporter)的 HTTP 端点"抓取"指标数据。
      • 存储:将抓取到的时序数据存储在其内置的高效时序数据库中。
      • 处理 :提供强大的查询语言 PromQL,允许您对数据进行复杂的查询、聚合和分析。
      • 告警 :通过 Alertmanager 组件,可以基于 PromQL 查询结果设置报警规则,并在触发条件时发送通知。
  3. Grafana:数据可视化平台
    • 角色:专业的"仪表盘"和"展示层"。
    • 功能
      • 数据源:连接各种数据源,其中 Prometheus 是最主要的数据源之一。
      • 可视化:将 Prometheus 查询到的数据通过丰富的图表(如曲线图、仪表盘、热图等)展示出来。
      • 仪表盘:允许用户创建、共享和定制功能强大且美观的监控仪表盘。

简单比喻:

  • node_exporter 是餐厅里负责记录每道菜出菜速度、食材消耗的服务员
  • Prometheus餐厅经理,定期从服务员那里收集记录,并分析哪些菜畅销、哪些食材需要补货,同时决定何时需要报警(比如食材快用完了)。
  • Grafana 是挂在厨房和老板办公室的大屏幕,实时、直观地展示经理分析出的各种数据和图表。

核心优势

  • 开源与生态:全部开源,拥有庞大的社区和丰富的 exporter 生态(如 MySQL exporter, Redis exporter 等)。
  • 维度化数据模型:Prometheus 的每个数据点都通过一组键值对标签来标识,使得数据筛选和聚合非常灵活。
  • 强大的查询语言:PromQL 功能强大,可以应对复杂的查询场景。
  • 高效的时序数据库:针对监控场景的时序数据做了高度优化,压缩和查询性能出色。
  • 简单的部署:所有组件都是独立的二进制文件,无需依赖第三方服务(如数据库),部署简单。
  • 拉取模型为主:简化了防火墙和安全配置,中心端主动拉取,更容易管理目标。

典型部署与实践步骤

以下是一个在单台 Linux 服务器上部署该监控系统的简化流程,用于监控该服务器自身。

步骤 1:安装并运行 node_exporter
  1. Prometheus 官网 下载最新版本的 node_exporter

  2. 解压并运行:

    bash

    复制下载

    复制代码
    tar -xzf node_exporter-*.linux-amd64.tar.gz
    cd node_exporter-*.linux-amd64/
    ./node_exporter &
  3. 验证:访问 http://<服务器IP>:9100/metrics,你应该能看到大量的文本指标数据。

步骤 2:安装并配置 Prometheus
  1. 下载 Prometheus

  2. 解压并编辑其配置文件 prometheus.yml

    yaml

    复制下载

    复制代码
    global:
      scrape_interval: 15s # 每15秒抓取一次
    
    scrape_configs:
      - job_name: 'prometheus' # 监控Prometheus自己
        static_configs:
          - targets: ['localhost:9090']
    
      - job_name: 'node_exporter' # 监控node_exporter所在的主机
        static_configs:
          - targets: ['<服务器IP>:9100'] # 替换为你的服务器IP
  3. 启动 Prometheus:

    bash

    复制下载

    复制代码
    ./prometheus --config.file=prometheus.yml &
  4. 验证:访问 http://<服务器IP>:9090,进入 Prometheus 的 Web UI。你可以在 "Status" -> "Targets" 中看到两个监控目标(Prometheus 自身和 node_exporter)的状态应为 "UP"。

步骤 3:安装并配置 Grafana
  1. 按照 官方文档 安装 Grafana(例如,在 CentOS/RHEL 上可以直接添加 RPM 仓库安装)。

  2. 启动 Grafana 服务:

    bash

    复制下载

    复制代码
    systemctl start grafana-server
    systemctl enable grafana-server
  3. 访问 http://<服务器IP>:3000,默认用户名和密码是 admin/admin

  4. 添加数据源

    • 登录后,进入 "Configuration" -> "Data Sources"。
    • 点击 "Add data source",选择 "Prometheus"。
    • 在 "URL" 中填写 http://localhost:9090(如果 Grafana 和 Prometheus 在同一台机器上)。
    • 点击 "Save & Test",应显示 "Data source is working"。
  5. 导入仪表盘

    • 无需从零开始创建,Grafana 官网有大量社区贡献的仪表盘模板。
    • 访问 Grafana Labs Dashboards
    • 搜索 "Node Exporter Full",找到最流行的主机监控仪表盘,记下其 ID(例如 1860)。
    • 在 Grafana 中,点击 "+" -> "Import",输入 ID 1860,选择你的 Prometheus 数据源,即可导入一个功能全面的主机监控仪表盘。

进阶概念与生产环境考量

  • Alertmanager:用于接收来自 Prometheus 的告警,并进行去重、分组、静默,并通过邮件、Slack、PagerDuty、Webhook 等路由发送通知。
  • 服务发现 :在生产环境中,手动在 prometheus.yml 中写 IP 地址不现实。Prometheus 支持基于 Kubernetes, Consul, DNS 等的自动服务发现,动态管理监控目标。
  • 远程存储:对于海量数据或长期存储,Prometheus 可以配置将数据写入远程存储后端,如 Thanos, Cortex 或 M3DB,以实现高可用和长期历史数据查询。
  • 安全:配置 TLS 加密通信、基本认证等,确保监控数据的安全。

总结

Grafana + Prometheus + node_exporter 组合提供了一个从数据采集、存储、告警到可视化的完整、强大且灵活的监控解决方案。它已经成为容器化和微服务架构时代监控领域的事实标准。

  • 安全:配置 TLS 加密通信、基本认证等,确保监控数据的安全。

总结

Grafana + Prometheus + node_exporter 组合提供了一个从数据采集、存储、告警到可视化的完整、强大且灵活的监控解决方案。它已经成为容器化和微服务架构时代监控领域的事实标准。

对于初学者,从单机部署开始,理解其工作流程和核心概念,是掌握这套强大工具的最佳途径。

相关推荐
java_logo13 小时前
MILVUS Docker 容器化部署指南
运维·人工智能·docker·容器·prometheus·milvus
juma90022 天前
西门子S7-200SMART_PLC基于RS485通讯恒压供水一拖二程序样例,采样PLC+sm...
prometheus
❀͜͡傀儡师2 天前
Docker 部署 Grafana + Loki + Promtail 日志可视化搭建
docker·容器·grafana
袁煦丞 cpolar内网穿透实验室2 天前
Grafana突破局域网限制,随时随地访问数据看板! cpolar内网穿透实验室第 515 个成功挑战
grafana·远程工作·内网穿透·cpolar·随时访问
比奥利奥还傲.2 天前
无需复杂操作!Prometheus+cpolar+实现跨网监控自由
prometheus
听风吟丶3 天前
云原生 APM 实战:Prometheus Operator+K8s 构建容器化微服务监控体系
云原生·kubernetes·prometheus
听风吟丶3 天前
Java 微服务 APM 实战:Prometheus+Grafana 构建全维度性能监控与资源预警体系
java·微服务·prometheus
递归尽头是星辰3 天前
架构实战:1 小时搭建Java微服务指标监控体系(Prometheus+Grafana 落地指南)
grafana·prometheus·可观测性·micrometer·指标监控·java 微服务监控
IDOlaoluo5 天前
Windows 安装 Grafana 看板详细步骤
windows·grafana
忙里偷闲学python5 天前
prometheus部署,解锁监控新篇章
信息可视化·数据分析·prometheus