Prometheus + Grafana 搭建监控系统
前言
本文主要记录下如何使用 Prometheus + Grafana 搭建对各种服务的性能监控,涵盖对 Prometheus、Grafana 的基本介绍,以及如何使用二者进行对 Linux、MySQL、Redis等监控。为了方便操作,所有的组件都是基于 Docker 容器进行操作。
概述
Prometheus
概述
Prometheus 是云原生计算基金会的项目,是一个系统和服务监控系统。 它以给定的时间间隔从配置的目标收集指标,评估规则表达式,显示结果,并在观察到指定条件时触发警报。
Prometheus 与其他指标和监控系统的区别在于:
- 多维数据模型(由指标名称和键/值维度集定义的时间序列)
- 支持PromQL,一种强大且灵活的查询语言,可利用此维度
- 不依赖分布式存储,单个服务器节点是自治的
- 用于时间序列收集的 HTTP 拉取模型
- 通过用于批处理作业的中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 支持多种模式的图形和仪表板
- 支持分层和水平联合
架构图

安装
使用原生方式安装:下载地址
使用 Docker 安装
拉取镜像
docker pull prom/prometheus:v2.35.0
启动命令
docker run --name prometheus -d -p 9090:9090 prom/prometheus:v2.35.0
配置文件挂载
将容器内部的配置文件拷贝到宿主机
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"]
挂载配置文件启动容器
docker run --name prometheus -d -p 9090:9090 -v /data/software/docker/prometheus/conf:/etc/prometheus prom/prometheus:v2.35.0
测试结果:
浏览器访问:http://ip:9090

Grafana
概述
Grafana 是一个可以监控,分析指标、日志,进行团队管理,提供漂亮仪表板的平台系统。无论数据存储在何处, 都可以进行查询、可视化、提醒。
安装
原生方式安装
Docker 安装
拉取镜像
docker pull grafana/grafana:7.5.16
启动容器
docker run -d --name=grafana -p 3000:3000 grafana/grafana:7.5.16
测试结果:
浏览器访问:http://ip:3000,成功访问如下页面

初始用户名:admin
初始密码:admin
配置 Prometheus 数据源
Grafana 展示 Promethus 监控需要配置对应的数据源,如下步骤进行配置:
新建数据源

选择 Prometheus

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

保存测试

应用
搭建 Linux 服务器性能监控
概述
使用 Node exporter 可以来收集 Linux 服务器相关的性能指标。
安装
拉取镜像
docker pull prom/node-exporter:v1.3.0
启动容器
docker run --name node-export -p 9100:9100 -d prom/node-exporter:v1.3.0
浏览器访问:http://ip:9100, 出现如下页面:

配置
Prometheus 配置文件
prometheus.yml添加配置- job_name: "linux" # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. static_configs:
- targets: ["ip:9100"]
重启 Prometheus 容器
docker restart prometheus
进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示
在 Grafana 中展示上述配置的 Node exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载
下载对应 dashboard 的 JSON 文件
在 Grafana 导入对应的 json 文件

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

展示效果

搭建 MySQL 服务器性能监控
概述
使用 MySQLd exporter 可以来收集 MySQL 服务器相关的性能指标。
安装
拉取镜像
docker pull prom/mysqld-exporter:v0.13.0
启动容器
docker run -d -p 9104:9104 --name mysql-exporter -e DATA_SOURCE_NAME="username:password@(ip:3306)/" prom/mysqld-exporter:v0.13.0
测试,浏览器访问:http://ip:9104

配置
Prometheus 配置文件
prometheus.yml添加配置- job_name: "mysql" # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. static_configs:
- targets: ["ip:9104"]
labels:
instance: mysql
重启 Prometheus 容器
docker restart prometheus
进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示
在 Grafana 中展示上述配置的 MySQLd exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载
下载对应 dashboard 的 JSON 文件
在 Grafana 导入对应的 json 文件

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

展示效果

搭建 Redis 服务器性能监控
概述
使用 Redis exporter 可以来收集 Redis 服务器相关的性能指标。
安装
拉取镜像
docker pull oliver006/redis_exporter:v1.37.0
启动容器
docker run -d --name redis-exporter -p 9121:9121 oliver006/redis_exporter:v1.37.0 --redis.addr redis://ip:6379 --redis.password password
测试,浏览器访问:http://ip:9121

配置
Prometheus 配置文件
prometheus.yml添加配置- job_name: "redis" # metrics_path defaults to '/metrics'
# scheme defaults to 'http'. static_configs:
- targets: ["ip:9121"]
labels:
instance: redis
重启 Prometheus 容器
docker restart prometheus
进行测试,浏览器访问 http://ip:9090/service-discovery 出现如下页面:

展示
在 Grafana 中展示上述配置的 Redis exporter, 一些漂亮的 DashBoard 模板可以在 插件中心 中下载
下载对应 dashboard 的 JSON 文件
在 Grafana 导入对应的 json 文件

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

展示效果

Prometheus + Grafana 搭建监控系统的更多相关文章
- Prometheus+Grafana搭建监控系统
之前在业务中遇到服务器负载过高问题,由于没有监控,一直没发现,直到业务方反馈网站打开速度慢,才发现问题.这样显得开发很被动.所以是时候搭建一套监控系统了. 由于是业余时间自己捯饬,所以神马业务层面的监 ...
- Prometheus+Grafana企业监控系统
Prometheus+Grafana企业监控系统 作者 刘畅 实验配置: 主机名称 Ip地址 controlnode 172.16.1.70/24 slavenode1 172.16.1.71/24 ...
- 实战 Prometheus 搭建监控系统
实战 Prometheus 搭建监控系统 Prometheus 是一款基于时序数据库的开源监控告警系统,说起 Prometheus 则不得不提 SoundCloud,这是一个在线音乐分享的平台,类似于 ...
- go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控
0.转载 go-zero docker-compose 搭建课件服务(七):prometheus+grafana服务监控 0.1源码地址 https://github.com/liuyuede123/ ...
- Prometheus+Grafana+kafka_exporter监控kafka
Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 一.Prometheus+Grafana+kafka_exporter搭建监控系统监控kafka 1.1K ...
- Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警
Spring Boot 微服务应用集成Prometheus + Grafana 实现监控告警 一.添加依赖 1.1 Actuator 的 /prometheus端点 二.Prometheus 配置 部 ...
- 基于Centos7.4搭建prometheus+grafana+altertManger监控Spring Boot微服务(docker版)
目的:给我们项目的微服务应用都加上监控告警.在这之前你需要将 Spring Boot Actuator引入 本章主要介绍 如何集成监控告警系统Prometheus 和图形化界面Grafana 如何自定 ...
- Kubernetes1.16下部署Prometheus+node-exporter+Grafana+AlertManager 监控系统
Prometheus 持久化安装 我们prometheus采用nfs挂载方式来存储数据,同时使用configMap管理配置文件.并且我们将所有的prometheus存储在kube-system #建议 ...
- k8s实战之部署Prometheus+Grafana可视化监控告警平台
写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...
- Prometheus+grafana搭建
一.简介 1.1 Prometheus Prometheus是一套开源的监控系统,它将所有信息都存储为时间序列数据:因此实现一种Profiling监控方式,实时分析系统运行的状态.执行时间.调用次数等 ...
随机推荐
- NSDI-2023 微软论文:解构有状态网络功能
本文通过chatgpt代理站(支持gpt4):gptschools.cn翻译整理 微软Azure对每个虚拟机进行了为期三个月的网络监控,获得了新建.并发.PPS等指标情况,发现: 1) 网络功能负载不 ...
- 前端基于 radio 增强单选框组件
前端基于radio增强单选框组件, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12977 效果图如下: # ## ...
- MRS-MRS相同功能代码管理应用笔记
MRS相同功能代码管理应用笔记 使用 MounRiver(以下简称 MRS )进行 RISC-V 单片机开发时,工程目录下往往存在多个文件夹与文件,我们只需要着重关注截图中红框所示的部分,它们自上而下 ...
- 教程 | Datavines 自定义数据质量检查规则(Metric)
Metric 是 Datavines 中一个核心概念,一个 Metric 表示一个数据质量检查规则,比如空值检查和表行数检查都是一个规则.Metric 采用插件化设计,用户可以根据自己的需求来实现一个 ...
- PostgreSQL 性能优化: 执行计划
查询计划 扫描结点 顺序扫描 索引扫描 只用索引的扫描 位图堆扫描 位图索引扫描 公共表表达式的扫描 自定义扫描 外表扫描 函数结果扫描 子查询扫描 表样本扫描 行地址扫描 行集合扫描 工作表扫描 连 ...
- 自动化SQL注入工具——Sqlmap
Sqlmap – 简介 Sqlmap是一个自动化检测和利用SQL注入漏洞的免费开源工具 1.支持对多种数据库进行注入测试,能够自动识别数据库类型并注入 2.支持多种注入技术,并且能够自动探测使用合适的 ...
- linux_mint_21 vim配置:剪贴板支持和输入法自动切换
一.vim的剪贴板支持 有的vim版本不支持系统剪切板,也就是说在vim编辑器外面复制的内容,不能够粘贴到vim中;在vim中通过yy.d.c复制剪切的内容也不能粘贴在vim编辑器外面. 这实在是有点 ...
- 侯捷C++STL源码分析
STL六大部件 容器(Containers):放东西,需要占用内存. 分配器(Allocators):支持容器. 算法(Algorithms):操作容器里面的数据. 迭代器(Iterators):容器 ...
- CSP-S复习列表
DP:序列,区间,背包,多维,状压,树型 优化:滚动,单调性,树状数组 数据结构:栈,队,链,deque,priority_queue,vector,set,map 树状数组,分块思想 前缀和,差分思 ...
- 分布式数据库oceanBase部署
分布式数据库oceanBase部署 相关链接 文档中心 视频中心 软件下载 OceanBase数据库基本操作 OceanBase简介 SQL执行计划 基本概念 为了更好地管理 OceanBase 数据 ...