博客
关于我
Prometheus 云原生 - 微服务监控报警系统 (Promethus、Grafana、Node_Exporter)部署、简单使用
阅读量:796 次
发布时间:2023-03-04

本文共 4342 字,大约阅读时间需要 14 分钟。

Prometheus 安装指南

开始

Prometheus 介绍

Prometheus 是一个开源的系统监控和报警系统,主要由 Go 语言开发。它不仅是一套监控框架,还内置了一个时序列数据库(TSDB)。Prometheus 的主要特点是通过 HTTP 协议周期性地从被监控组件(称为 exporter)拉取数据,因此无需依赖 SDK 或其他复杂集成过程,特别适合用于虚拟化环境的监控,如 VM、Docker 和 Kubernetes 等。

基本原理

Prometheus 的基本工作原理是通过 HTTP 协议定期从 exporter 接收数据。任何提供标准 HTTP 接口的组件都可以接入监控,无需额外的 SDK 或集成步骤。这种设计使得 Prometheus 在虚拟化环境的监控中特别高效,例如用于监控 VM、Docker 容器或 Kubernetes 集群。

组件介绍

Prometheus 的组件包括:

  • Prometheus 服务器:核心组件,用于收集目标数据并存储在本地磁盘的时序数据库中,同时支持数据查询和自定义 PromeQL 语言。

  • Client Library:用于在应用程序中集成监控功能,向 Prometheus 提供 metric 数据类型。

  • Exporter:数据采集器,通过 HTTP 接口(如 /metrics)向 Prometheus 服务器提交数据。

  • Pushgateway:用于处理短期或批量任务的数据汇聚节点。Prometheus 默认通过 pull 方式从 exporter 获取数据,而 Pushgateway 则通过 push 方式向 Prometheus 服务器提交数据。

  • Alertmanager:负责处理和路由告警信息,支持多种告警接收方式(如邮箱、钉钉等)。

  • Service Discovery:动态发现待监控目标,简化监控配置。

  • 组件工作方式

    Prometheus

    Prometheus 不直接监控特定目标,而是依赖 exporter 提供数据。Exporter 可以是独立运行的程序,也可以内置在监控目标中,只要能够提供标准格式的监控数据即可。

    Node_Exporter

    Node_Exporter 是一个常用的 exporter,通过 HTTP 接口(如 /metrics)暴露监控数据,Prometheus服务器定期从此接口拉取数据。

    Grafana

    Grafana 是一个开源的可视化工具,用于展示 Prometheus 的监控数据。使用步骤如下:

  • 在 Grafana 中添加 Prometheus 作为数据源,配置查询语句以获取所需数据。

  • 创建仪表盘并添加图表,Grafana 会根据查询语句从 Prometheus 获取数据并进行可视化。

  • Node_Exporter 安装

    方法一:手动安装

  • 拉取 Node_Exporter 镜像:

    docker pull prom/node-exporter
  • 启动 Node_Exporter:

    docker run -d -p 9100:9100 --name=node_exporter --restart=always -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /: /rootfs:ro --net=host prom/node-exporter
  • 访问 Node_Exporter 界面:

    http://localhost:9100

  • 方法二:通过 Homebrew 安装

  • 使用 Homebrew 安装:

    brew install node_exporter
  • 启动服务:

    brew services start node_exporter
  • 访问 Node_Exporter 界面:

    http://localhost:9100

  • 配置 Prometheus.yml

    在 Prometheus 配置文件中添加 Node_Exporter 的配置:

    scrape_configs:  - job_name: "prometheus"    static_configs:      - targets: ["localhost:9090"]  - job_name: "node_exporter"    static_configs:      - targets: ["localhost:9100"]

    Prometheus 生态安装(Mac)

    安装 Prometheus

  • 使用 Homebrew 安装:

    brew install prometheus
  • 查看安装目录:

    which prometheus
  • 启动 Prometheus:

    nohup ./prometheus --config.file=/opt/homebrew/etc/prometheus.yml &
  • 启动成功:

    cat nohup.out 查看启动日志。

  • 安装 Grafana

  • 使用 Homebrew 安装:

    brew install grafana
  • 启动 Grafana:

    grafana-server --config=/opt/homebrew/etc/grafana/grafana.ini --homepath=/opt/homebrew/share/grafana --packaging=brew cfg:default.paths.logs=/opt/homebrew/var/log/grafana cfg:default.paths.data=/opt/homebrew/var/lib/grafana cfg:default.paths.plugins=/opt/homebrew/var/lib/grafana/plugins
  • 访问 Grafana 界面:

    http://localhost:3000

  • Node_Exporter 配置

  • 创建配置文件:

    mkdir -p ~/env/prometheusvim ~/env/prometheus/prometheus.yml
  • 添加 Node_Exporter 配置:

    global:  scrape_interval: 15s  evaluation_interval: 15sscrape_configs:  - job_name: "prometheus"    static_configs:      - targets: ["localhost:9090"]  - job_name: "node_exporter"    static_configs:      - targets: ["localhost:9100"]
  • 重载 Prometheus 配置:

    kill -f prometheus./prometheus --config.file=/opt/homebrew/etc/prometheus.yml
  • 测试 Node_Exporter:

    http://localhost:9100

  • Prometheus 生态安装(Docker)

    安装 Prometheus

  • 拉取 Prometheus 镜像:

    docker pull prom/prometheus
  • 创建配置文件:

    mkdir -p ~/env/prometheusvim ~/env/prometheus/prometheus.yml
  • 启动 Prometheus:

    docker run -d --name=prometheus --restart=always -p 9090:9090 -v ~/env/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
  • 访问 Prometheus 界面:

    http://env-base:9090

  • 安装 Grafana

  • 拉取 Grafana 镜像:

    docker pull grafana/grafana
  • 启动 Grafana:

    docker run -d --name=grafana --restart=always -p 3000:3000 -v ~/env/grafana:/var/lib/grafana grafana/grafana
  • 访问 Grafana 界面:

    http://env-base:3000

  • Node_Exporter 安装

  • 拉取 Node_Exporter 镜像:

    docker pull prom/node-exporter
  • 启动 Node_Exporter:

    docker run -d -p 9100:9100 --name=node_exporter --restart=always -v /proc:/host/proc:ro -v /sys:/host/sys:ro -v /: /rootfs:ro --net=host prom/node-exporter
  • 访问 Node_Exporter 界面:

    http://env-base:9100

  • Prometheus.yml 配置

    在 Docker 环境下配置 Prometheus.yml:

    global:  scrape_interval: 15s  evaluation_interval: 15sscrape_configs:  - job_name: "prometheus"    static_configs:      - targets: ['env-base:9090']  - job_name: "grafana"    static_configs:      - targets: ['env-base:3000']  - job_name: "node_exporter"    static_configs:      - targets: ['env-base:9100']

    Grafana 可视化

    导入 Prometheus 数据源

  • 在 Grafana 中添加数据源:

    选择 Prometheus,配置 URL 和查询语句。

  • 创建仪表盘:

    添加图表并配置查询,Grafana 会从 Prometheus 获取数据并进行可视化。

  • 引入仪表盘

  • 在 Grafana 中找到喜欢的仪表盘,复制其 ID。

  • 将 ID粘贴到目标仪表盘的路径中,完成引入。

  • 通过以上步骤,可以完成 Prometheus 生态的安装和配置,包括 Grafana 的可视化展示。

    转载地址:http://lhxfk.baihongyu.com/

    你可能感兴趣的文章
    Postman接口测试实战讲解
    查看>>
    Postman接口测试工具安装部署与快速入门
    查看>>
    postman接口测试常见问题
    查看>>
    postman接口测试,1个参数有好几个值的时候如何测试比较简单快速?
    查看>>
    Postman接口测试:配置token为全局变量,配置测试环境
    查看>>
    Postman接口自动化测试之——批量参数化(参数文件)
    查看>>
    Postman接口自动化测试之——批量执行(集合操作)
    查看>>
    Postman接口自动化测试之——批量执行(集合操作)
    查看>>
    Postman接口自动化测试实战整理
    查看>>
    Postman接口自动化测试:从入门到实践!
    查看>>
    Postman断言与依赖接口测试详解!
    查看>>
    Postman核心功能解析 —— 参数化和测试报告
    查看>>
    Postman环境变量以及设置token全局变量!
    查看>>
    postman的使用
    查看>>
    Postman的使用说明
    查看>>
    Postman被低估的功能 — 自动化接口测试
    查看>>
    Postman被低估的功能 — 自动化接口测试
    查看>>
    Postman轻松签名,让SHA256withRSA保驾护航
    查看>>
    Postman还能做Mock?又学了一招!
    查看>>
    Postman还能做Mock?又学了一招!
    查看>>