【架构】prometheus+grafana系统监控

文章目录

Prometheus+Grafana系统监控是一个强大的组合,用于实时监控和分析系统的性能与状态。以下是对这一组合在系统监控中的详细解析:

一、Prometheus简介

Prometheus(普罗米修斯)是一个开源的系统监控和警报工具包,由Go语言开发,是云原生计算基金会(CNCF)的项目之一。它主要特点包括:

  • 时间序列数据库:Prometheus的核心是一个时间序列数据库,能够高效存储来自各种应用程序和系统的指标数据,如CPU利用率、内存使用情况、HTTP请求响应时间等。
  • 灵活的查询语言:PromQL(Prometheus Query Language)允许用户对存储的指标数据进行复杂的查询和聚合操作。
  • 强大的警报系统:Prometheus可以根据定义的规则触发警报,并通过多种渠道(如邮件、Slack等)发送通知。
  • 不依赖分布式存储:单个节点即可实现自治,易于部署和扩展。

Prometheus四种数据类型
Counter

Counter用于累计值,例如记录请求次数、任务完成数、错误发生次数。一直增加,不会减少。重启进程后,会被重置。

例如:http_response_total{method="GET",endpoint="/api/tracks"} 100,10秒后抓取http_response_total{method="GET",endpoint="/api/tracks"} 100。

Gauge

Gauge常规数值,例如 温度变化、内存使用变化。可变大,可变小。重启进程后,会被重置。

例如: memory_usage_bytes{host="master-01"} 100 < 抓取值、memory_usage_bytes{host="master-01"} 30、memory_usage_bytes{host="master-01"} 50、memory_usage_bytes{host="master-01"} 80 < 抓取值。

Histogram

Histogram(直方图)可以理解为柱状图的意思,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。它特别之处是可以对记录的内容进行分组,提供count和sum全部值的功能。

例如:{小于10=5次,小于20=1次,小于30=2次},count=7次,sum=7次的求和值。

Summary

Summary和Histogram十分相似,常用于跟踪事件发生的规模,例如:请求耗时、响应大小。同样提供 count 和 sum 全部值的功能。

例如:count=7次,sum=7次的值求值。

它提供一个quantiles的功能,可以按%比划分跟踪的结果。例如:quantile取值0.95,表示取采样值里面的95%数据。

二、Grafana简介

Grafana是一个开源的数据可视化和监控平台,由Torkel Ödegaard于2014年创建。其主要特点包括:

  • 多数据源支持:Grafana能够连接多种数据源,包括Prometheus、Graphite、Elasticsearch、InfluxDB等,并在同一仪表板中统一展示数据。
  • 丰富的可视化选项:提供多种图表类型和配置选项,如折线图、柱状图、仪表板、热图等,用户可以根据需求自由组合和定制。
  • 告警功能:支持设置警报规则,并在达到特定条件时发送通知。
  • 插件生态系统 :拥有丰富的插件生态系统,用户可以根据需要扩展和定制功能。

三、Prometheus+Grafana系统监控的实现

  1. 环境准备

    • 选择合适的操作系统(如Ubuntu、CentOS等)。
    • 安装Prometheus和Grafana,以及必要的Exporter(如Node Exporter用于收集Linux系统指标)。
  2. Prometheus配置

    • 下载并解压Prometheus安装包。
    • 配置prometheus.yml文件,定义监控目标和抓取间隔。
    • 启动Prometheus服务,并验证其正常运行。
  3. Grafana配置

    • 下载并解压Grafana安装包。
    • 启动Grafana服务,并使用默认用户名和密码登录。
    • 在Grafana中添加Prometheus数据源,并配置数据源URL。
  4. 创建仪表板

    • 在Grafana中创建新的仪表板。
    • 添加图表组件,并设置查询以展示所需的指标数据(如CPU使用率、内存占用等)。
    • 自定义图表样式和布局,以满足监控需求。
  5. 配置告警

    • 在Prometheus中定义告警规则文件(如alerts.yml)。
    • 在Grafana中添加告警规则,并配置通知渠道(如邮件、Slack等)。
    • 测试告警功能,确保在指标异常时能够及时收到通知。

四、优势与应用场景

Prometheus+Grafana组合在系统监控中具有以下优势:

  • 实时监控:能够实时监控系统的各项性能指标,确保系统稳定运行。
  • 可视化展示:通过Grafana提供的丰富图表和仪表板,用户可以直观地了解系统状态。
  • 灵活扩展:支持多种数据源和插件,可以根据需求灵活扩展监控范围和功能。
  • 告警通知:强大的告警系统能够在指标异常时及时通知相关人员,便于快速响应和处理问题。

该组合广泛应用于云计算、微服务架构、容器化部署等场景,为系统稳定性和性能提供了有力的保障。

参考

【Prometheus】Prometheus 监控 + Grafana 可视化平台部署
Prometheus+grafana监控系统-学习笔记
大数据监控系列(一)------Prometheus+Grafana监控概述

相关推荐
传而习乎19 分钟前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary21 分钟前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
天天扭码25 分钟前
五天SpringCloud计划——DAY2之单体架构和微服务架构的选择和转换原则
java·spring cloud·微服务·架构
余生H1 小时前
transformer.js(三):底层架构及性能优化指南
javascript·深度学习·架构·transformer
凡人的AI工具箱1 小时前
15分钟学 Go 第 60 天 :综合项目展示 - 构建微服务电商平台(完整示例25000字)
开发语言·后端·微服务·架构·golang
运维&陈同学2 小时前
【zookeeper01】消息队列与微服务之zookeeper工作原理
运维·分布式·微服务·zookeeper·云原生·架构·消息队列
是阿建吖!2 小时前
【Linux】进程状态
linux·运维
明明跟你说过2 小时前
Linux中的【tcpdump】:深入介绍与实战使用
linux·运维·测试工具·tcpdump
Mr_Xuhhh3 小时前
重生之我在学环境变量
linux·运维·服务器·前端·chrome·算法
朝九晚五ฺ11 小时前
【Linux探索学习】第十四弹——进程优先级:深入理解操作系统中的进程优先级
linux·运维·学习