前言

本文主要记录下如何使用 Prometheus + Grafana 搭建对各种服务的性能监控,涵盖对 Prometheus、Grafana 的基本介绍,以及如何使用二者进行对 Linux、MySQL、Redis等监控。为了方便操作,所有的组件都是基于 Docker 容器进行操作。

概述

Prometheus

概述

Prometheus 是云原生计算基金会的项目,是一个系统和服务监控系统。 它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并在观察到指定条件时触发警报。

Prometheus 与其他指标和监控系统的区别在于:

  • 多维数据模型(由指标名称和键/值维度集定义的时间序列)
  • 支持PromQL,一种强大且灵活的查询语言,可利用此维度
  • 不依赖分布式存储,单个服务器节点是自治的
  • 用于时间序列收集的 HTTP 拉取模型
  • 通过用于批处理作业的中间网关支持推送时间序列
  • 通过服务发现或静态配置发现目标
  • 支持多种模式的图形和仪表板
  • 支持分层和水平联合

官网地址

Github 地址

架构图

安装

  1. 使用原生方式安装:下载地址

  2. 使用 Docker 安装

    1. 拉取镜像

      docker pull prom/prometheus:v2.35.0
    2. 启动命令

      docker run --name prometheus -d -p 9090:9090 prom/prometheus:v2.35.0
    3. 配置文件挂载

      • 将容器内部的配置文件拷贝到宿主机

        docker cp prometheus:/etc/prometheus /data/software/docker/prometheus/
      • 配置文件

        prometheus.yml

        # my global config
        global:
        scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
        evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
        # scrape_timeout is set to the global default (10s). # Alertmanager configuration
        alerting:
        alertmanagers:
        - static_configs:
        - targets:
        # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
        rule_files:
        # - "first_rules.yml"
        # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape:
        # Here it's Prometheus itself.
        scrape_configs:
        # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
        - job_name: "prometheus" # metrics_path defaults to '/metrics'
        # scheme defaults to 'http'. static_configs:
        - targets: ["localhost:9090"]
    4. 挂载配置文件启动容器

      docker run --name prometheus -d -p 9090:9090 -v /data/software/docker/prometheus/conf:/etc/prometheus  prom/prometheus:v2.35.0
    5. 测试结果:

      浏览器访问:http://ip:9090

Grafana

概述

Grafana 是一个可以监控,分析指标、日志,进行团队管理,提供漂亮仪表板的平台系统。无论数据存储在何处, 都可以进行查询、可视化、提醒。

Grafana 官网地址

安装

原生方式安装

下载地址

Docker 安装

  1. 拉取镜像

    docker pull grafana/grafana:7.5.16
  2. 启动容器

    docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.5.16
  3. 测试结果:

    浏览器访问:http://ip:3000,成功访问如下页面

    初始用户名:admin

    初始密码:admin

配置 Prometheus 数据源

Grafana 展示 Promethus 监控需要配置对应的数据源,如下步骤进行配置:

  1. 新建数据源

  2. 选择 Prometheus

  3. 填写 Prometheus 地址(注意:要以 http 开头)

  4. 保存测试

应用

搭建 Linux 服务器性能监控

概述

使用 Node exporter 可以来收集 Linux 服务器相关的性能指标。

安装

  1. 拉取镜像

    docker pull prom/node-exporter:v1.3.0
  2. 启动容器

    docker run --name node-export -p 9100:9100 -d prom/node-exporter:v1.3.0
  3. 浏览器访问:http://ip:9100, 出现如下页面:

配置

  1. Prometheus 配置文件 prometheus.yml 添加配置

      - job_name: "linux"
    
        # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'. static_configs:
    - targets: ["ip:9100"]
  2. 重启 Prometheus 容器

    docker restart prometheus
  3. 进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示

在 Grafana 中展示上述配置的 Node exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载

  1. 下载对应 dashboard 的 JSON 文件

    下载地址

  2. 在 Grafana 导入对应的 json 文件

    也可以通过 url 或 id 进行导入

  3. 展示效果

搭建 MySQL 服务器性能监控

概述

使用 MySQLd exporter 可以来收集 MySQL 服务器相关的性能指标。

安装

  1. 拉取镜像

    docker pull prom/mysqld-exporter:v0.13.0
  2. 启动容器

    docker run -d -p 9104:9104 --name mysql-exporter  -e DATA_SOURCE_NAME="username:password@(ip:3306)/" prom/mysqld-exporter:v0.13.0
  3. 测试,浏览器访问:http://ip:9104

配置

  1. Prometheus 配置文件 prometheus.yml 添加配置

      - job_name: "mysql"
    
        # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'. static_configs:
    - targets: ["ip:9104"]
    labels:
    instance: mysql
  2. 重启 Prometheus 容器

    docker restart prometheus
  3. 进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示

在 Grafana 中展示上述配置的 MySQLd exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载

  1. 下载对应 dashboard 的 JSON 文件

    下载地址

  2. 在 Grafana 导入对应的 json 文件

    也可以通过 url 或 id 进行导入

  3. 展示效果

搭建 Redis 服务器性能监控

概述

使用 Redis exporter 可以来收集 Redis 服务器相关的性能指标。

安装

  1. 拉取镜像

    docker pull oliver006/redis_exporter:v1.37.0
  2. 启动容器

    docker run -d --name redis-exporter -p 9121:9121 oliver006/redis_exporter:v1.37.0 --redis.addr redis://ip:6379 --redis.password password
  3. 测试,浏览器访问:http://ip:9121

    配置

    1. Prometheus 配置文件 prometheus.yml 添加配置

        - job_name: "redis"
      
          # metrics_path defaults to '/metrics'
      # scheme defaults to 'http'. static_configs:
      - targets: ["ip:9121"]
      labels:
      instance: redis
    2. 重启 Prometheus 容器

      docker restart prometheus
    3. 进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示

在 Grafana 中展示上述配置的 Redis exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载

  1. 下载对应 dashboard 的 JSON 文件

    下载地址

  2. 在 Grafana 导入对应的 json 文件

    也可以通过 url 或 id 进行导入

  3. 展示效果

Prometheus + Grafana 搭建监控系统的更多相关文章

  1. Prometheus+Grafana搭建监控系统

    之前在业务中遇到服务器负载过高问题,由于没有监控,一直没发现,直到业务方反馈网站打开速度慢,才发现问题.这样显得开发很被动.所以是时候搭建一套监控系统了. 由于是业余时间自己捯饬,所以神马业务层面的监 ...

  2. Prometheus+Grafana企业监控系统

    Prometheus+Grafana企业监控系统 作者 刘畅 实验配置: 主机名称 Ip地址 controlnode 172.16.1.70/24 slavenode1 172.16.1.71/24 ...

  3. 实战 Prometheus 搭建监控系统

    实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...

  4. go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控

    0.转载 go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控 0.1源码地址 https://github.com/liuyuede123/ ...

  5. Prometheus+Grafana+kafka_exporter监控kafka

    Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 一.Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 1.1K ...

  6. Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警

    Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警 一.添加依赖 1.1 Actuator 的 /prometheus端点 二.Prometheus 配置 部 ...

  7. 基于Centos7.4搭建prometheus+grafana+altertManger监控Spring Boot微服务(docker版)

    目的:给我们项目的微服务应用都加上监控告警.在这之前你需要将 Spring Boot Actuator引入 本章主要介绍 如何集成监控告警系统Prometheus 和图形化界面Grafana 如何自定 ...

  8. Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统

    Prometheus 持久化安装 我们prometheus采用nfs挂载方式来存储数据,同时使用configMap管理配置文件.并且我们将所有的prometheus存储在kube-system #建议 ...

  9. k8s实战之部署Prometheus+Grafana可视化监控告警平台

    写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...

  10. Prometheus+grafana搭建

    一.简介 1.1 Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等 ...

随机推荐

  1. 尚医通day01-【项目环境搭建和医院设置详细步骤】(内附源码)

    第01章-项目介绍 1.课程介绍 项目名称:尚医通预约挂号统一平台 项目原型:https://www.114yygh.com 北京市预约挂号统一平台 项目技术栈:前后端分离 后端技术:SpringBo ...

  2. 搭建私人GPT及域名配置

    前几天在掘金看到一个搭建私人ChatGPT的教程,看起来并不难. 我也有OpenAI的API Key,然后前阵子我看到我的账号余额还有很多,我的api key其实就一个机器人在用,没用多少. 还有,就 ...

  3. Go应用性能优化的8个最佳实践,快速提升资源利用效率!

    作者|Ifedayo Adesiyan 翻译|Seal软件 链接|https://earthly.dev/blog/optimize-golang-for-kubernetes/ 优化服务器负载对于确 ...

  4. 非常简单好用实用的轮播图swiper banner组件

    非常简单好用实用的轮播图swiper banner组件; 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12786 效果图如下: ...

  5. Pinot2的无人机任务和数据处理实践

    目录 1. 引言 2. 技术原理及概念 2.1 基本概念解释 2.2 技术原理介绍 2.3 相关技术比较 3. 实现步骤与流程 4. 应用示例与代码实现讲解 4.1 应用场景介绍 4.2 应用实例分析 ...

  6. Kafka中的消费者Offset

    消费者位移 每个 consumer 实例都会为它消费的分区维护属于自己的位置信息来记录当前消费了多少条消息.这在 Kafka 中有一个特有的术语:位移(offset). 相比较将offset保存在服务 ...

  7. 掌握把“烂”SQL牢牢关进笼子里的密钥

    摘要:本文通过5个部分内容帮助开发者快速了解GaussDB(DWS) 资源管理机制,让数仓过载烦恼不再,把"烂"SQL牢牢关进笼子里. 本文分享自华为云社区<直播回顾 | 掌 ...

  8. JAVA代码下载TXT文件(本地和服务器上的代码都可以)

    // 读取服务器文件内容(TXT文件测试可以) public static List<String> showTxt(String filePath) throws IOException ...

  9. Redis的设计与实现-总结

    个人真的很喜欢这本书, 从对C语言一窍不通, 到发现C语言竟然如此简洁, 以至于我喜欢上了C! 对此前面的底层数据结构也读了几次, 大致整理了书里的内容, 后面的就粗略看了一下, 不再细细整理了. R ...

  10. [windows]远程桌面失败提示CredSSP加密修正

    前言 windows远程桌面失败,提示"CredSSP加密--" 远程桌面服务器的系统版本:Windows Server 2016 本地电脑的系统版本:Windows 10 方式1 ...