Prometheus + Grafana 监控系统-Prometheus 的安装部署

系列文章目录

  1. Prometheus 的安装部署
  2. Grafana的安装部署
  3. Linux服务器接入Prometheus监控-Node Exporter 安装指南
  4. Prometheus 接入SpringBoot微服务监控
  5. Mysql 接入 Prometheus
  6. RocketMQ 接入Prometheus 监控
  7. ElasticSearch 接入 Prometheus
  8. Nacos 接入 Prometheus 监控
  9. Redis 接入 Prometheus 监控系统
  10. Prometheus + Grafana 监控系统-告警规则配置
  11. Prometheus + Grafana 监控系统-PrometheusAlert安装与配置指南

简介

  • 整体架构图

  • Prometheus

    • Prometheus是一个开源的系统监控和警报工具包。它具有多维数据模型和强大的查询语言,可帮助您有效地监控应用程序和基础设施。
    • Prometheus 是由谷歌研发的一款开源的监控软件,它通过安装在远程机器上的 exporter,通过HTTP协议从远程的机器收集数据并存储在本地的时序数据库上
  • Grafana

    • Grafana是一个开源的数据可视化和监控平台,它允许您通过图表和图形直观地展示和分析监控数据。
  • 重要概念

    • Exporters
      • Exporters是用于将各种类型的监控数据导出到Prometheus的中间件。它们允许Prometheus监控不同类型的系统和服务,如数据库、操作系统等。
    • 数据源
      • 在Grafana中,数据源是指用于连接到外部数据源的配置。Prometheus作为数据源可以让Grafana获取监控数据并进行可视化展示。
    • 仪表板
      • 仪表板是Grafana中用于展示监控数据的可视化界面。它可以包含多个图表和面板,用于呈现各种监控指标和数据。
    • 警报规则
      • 警报规则用于定义在监控数据达到特定条件时应触发的警报。这些规则可以在Prometheus中定义,并集成到Grafana中进行管理和显示。

搭建指南

建议搭建配置顺序: Prometheus --> Grafana --> 各种Explorer --> 告警规则配置

下文将重点介绍 Prometheus 的搭建过程。

安装和配置 Prometheus

Prometheus Server 主要负责数据的收集,存储并且对外提供数据查询支持。

  1. 下载最新版本的Prometheus:

    sh 复制代码
    # 下载,解压
    wget https://github.com/prometheus/prometheus/releases/download/v2.53.0/prometheus-2.53.0.linux-amd64.tar.gz
    tar -xvf prometheus-*.tar.gz
    # 将Prometheus二进制文件复制到生产服务器的合适位置:
    # /usr/local/bin/prometheus
  2. 配置prometheus.

    1. 配置prometheus.yml文件,定义监控目标和规则

      yml 复制代码
      global:
        scrape_interval: 15s  # 定义全局的抓取间隔,这里设置为每15秒抓取一次数据
      
      scrape_configs:
        - job_name: 'node'  # 定义作业名称,这里以监控节点为例
          static_configs:
            - targets: ['node1:9100', 'node2:9100']  # 定义要监控的目标节点及其端口,这里假设节点1和节点2上运行了Node Exporter并监听在9100端口
          # 可以添加更多的作业,用于监控其他类型的目标,比如数据库、消息队列等
        - job_name: 'mysql'
          static_configs:
            - targets: ['mysql1:9104']  # 假设MySQL Exporter监听在9104端口
          # 可以继续添加其他作业和目标
    2. 指定数据存储位置

      在早期版本中可以在prometheus.yml中配置storage.tsdb.path,但是从Prometheus 2.0版本开始,官方更倾向于将数据存储路径作为命令行参数传递给Prometheus。,而不是在配置文件中指定。这是因为数据存储路径通常被视为运行时配置,而不是静态配置。

      您可以在启动命令中通过 --storage.tsdb.path参数来指定数据存储位置。

      sh 复制代码
      ./prometheus --config.file=prometheus.yml --storage.tsdb.path=/path/to/data
      • --storage.tsdb.path参数指定了数据存储的路径。这样的做法可以将数据存储位置与配置文件分离,使得配置文件更加清晰和易于管理。
  3. 启动Prometheus服务器:

    • 启动命令:./prometheus --config.file=prometheus.yml
    • 验证prometheus是否启动成功,prometheus默认端口为: 9090
    • 数据可视化:
      • Prometheus 自带了 Web Console, 安装成功后可以访问 http://localhost:9090/graph 页面,用它可以进行任何 PromQL 查询和调试工作,非常方便
      • Grafana : Grafana 是一套开源的分析监视平台,支持 Graphite, InfluxDB, OpenTSDB, Prometheus, Elasticsearch, CloudWatch 等数据源,其 UI 非常漂亮且高度定制化。
  4. 建议:创建 Prometheus 服务来管理,而不是直接命令行启动

    1. 创建一个systemd服务单元文件,以便Prometheus可以作为服务在后台运行。

      • 服务单元文件示例(/etc/systemd/system/prometheus.service):
      sh 复制代码
      [Unit]
      Description=Prometheus
      After=network.target
      
      [Service]
      ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/path/to/data
      Restart=always
      
      [Install]
      WantedBy=multi-user.target
      • 如果需要修改web监听端口,则增加启动参数: --web.listen-address=":9091"
    2. 启动 Prometheus 服务

      1. 启动Prometheus服务并设置开机自启:
      • 启动服务命令:sudo systemctl start prometheus
      • 设置开机自启命令:sudo systemctl enable prometheus
    3. 查看日志

      日志位置:如果你使用systemd作为服务管理器启动Prometheus,那么日志通常会被记录到systemd的日志系统中。

      journalctl -u prometheus.service

    4. 查看所有可用的命令行参数

      ./prometheus -h

  5. 其他

    1. 配置防火墙和安全组
      1. 如果您的生产环境使用防火墙或安全组,请确保允许Prometheus的端口(默认为9090)通过防火墙或安全组。
    2. 集成各种 Exporters 和 Alertmanager
      在Prometheus的配置文件中添加各种Exporters的监控目标,并配置Alertmanager以便处理警报通知。
      如果需要动态添加或修改监控目标,通常的做法是修改prometheus.yml配置文件,然后重新加载或重启Prometheus服务。
      * 注意:在某些情况下,可以使用Prometheus的API来动态修改配置,但这需要谨慎操作,因为配置的动态修改可能会影响Prometheus的稳定性和性能。
相关推荐
张声录12 天前
【Prometheus】【实战篇(七)】在 Grafana 中配置数据源并使用 Prometheus Node Exporter
grafana·prometheus
DevilHeart灬2 天前
使用Grafana中按钮插件实现收发HTTP请求
http·grafana
泰勒今天不想展开2 天前
jvm接入prometheus监控
jvm·windows·prometheus
-KamMinG2 天前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Mitch3113 天前
【漏洞复现】CVE-2021-45788 SQL Injection
sql·web安全·docker·prometheus·metersphere
福大大架构师每日一题4 天前
37.1 prometheus管理接口源码讲解
ios·iphone·prometheus
Cairry.5 天前
WatchAlert - 开源多数据源告警引擎
云原生·开源·prometheus
Mitch3115 天前
【漏洞复现】CVE-2023-37461 Arbitrary File Writing
web安全·网络安全·prometheus·metersphere·漏洞复现
福大大架构师每日一题7 天前
36.3 grafana-dashboard看图分析
linux·网络·grafana·prometheus
福大大架构师每日一题8 天前
36.2 内置的k8s采集任务分析
算法·贪心算法·kubernetes·prometheus