创作不易,来了的客官点点关注,收藏,订阅一键三连❤😜
前言
运维之基础——Linux。我是一个即将毕业的大学生,超超。如果你也在学习Linux,不妨跟着萌新超超一起学习Linux,拿下Linux,一起加油,共同努力,拿到理想offer!
系列文章
Linux进阶 | 实现负载均衡高可用(LB+HA)Web服务
Linux进阶 | ❤Docker+NFS+Volume实现数据一致性❤
Linux进阶 | 超详细全方面的Docker Swarm Web集群介绍与部署!
概述
本期内容为Docker第八期,通过本期内容将会掌握Prometheus的基本架构的使用以及grafana的简单使用。
目录
超超Docker学习思维导图
何为Prometheus
Prometheus的定义
Prometheus 属于一站式监控告警平台,依赖少,功能齐全。 Prometheus 支持对云的或容器的监控,其他系统主要对主机监控。 Prometheus 数据查询语句表现力更强大,内置更强大的统计函数。 Prometheus 在数据存储扩展性以及持久性上没有 InfluxDB,OpenTSDB,Sensu 好。
Prometheus服务,可以直接通过目标拉取数据,或者间接地通过中间网关拉取数据。它在本地存储抓取的所有数据,并对这些数据运行规则,以汇总和记录现有数据中的新时间序列,或生成警报。 Grafana或其他API使用者可用于可视化收集的数据。
Prometheus 将其指标收集并存储为时间序列数据,即指标信息与记录的时间戳一起存储,以及称为标签的可选键值对。
Prometheus的主要特点
- 一个多维数据模型,具有由指标名称和键/值对标识的时间序列数据
- PromQL,一种利用这种维度的灵活查询语言
- 不依赖分布式存储;单个服务器节点是自治的
- 时间序列收集通过 HTTP 上的拉模型发生
- 通过中间网关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
Prometheus的组成
Prometheus 生态系统由多个组件组成,其中许多是可选的:
- 抓取和存储时间序列数据的主要Prometheus服务器
- 用于检测应用程序代码的客户端库
- 支持短期工作的推送网关
- HAProxy、StatsD、Graphite 等服务的专用出口商。
- 一个警报管理器来处理警报
- 各种支持工具
大多数 Prometheus 组件都是用Go编写的,这使得它们易于构建和部署为静态二进制文件。
Prometheus的架构
exporter:可以理解为客户机的一个程序,用来专门收集客户机的数据,发送给Prometheus服务器
pull metrics:拉取数据,Prometheus server拉取数据
TSDB:时间序列数据库
short-lived jobs:短时间任务
Pushgateway:短时间运行的程序可以主动将自己的数据push到pushgateway里存放,Prometheus server会在pushgateway拉取数据。
service discovery:
PromQL:Prometheus Query language,Prometheus时序数据据库里的查询语言。
Grafana:一个图形绘制工具
pull和push哪个好点?
对于数据实时性,push方式更好地获取实时数据
服务器和网络的负载,可控性而言,pull更好
Prometheus适用场景
Prometheus非常适合记录任何纯数字时间序列。它既适用于面向服务器等硬件指标的监控,也适合于高度动态的面向服务的体系结构的监视。 在微服务世界中,它对多维数据收集和查询的支持是一种特别的优势。
Prometheus的设计旨在提高可靠性,使其成为中断期间要使用的系统,以使您能够快速诊断问题。 每个Prometheus服务器都是独立的,而不依赖于网络存储或其他远程服务。 当服务出现故障时,它可以使你快速定