1. 普罗米修斯概述
-
Prometheus(是由go语言(golang)开发)是一套开源的监控& 警&时间序列数 据库的组合。适合监控docker容器。
-
Prometheus是最初在SoundCloud上构建的开源系统监视和警 工具包 。自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户 区。现在,它是一个独立的开源项目,并且独立于任何公司进行维护。为了强调这一点并阐明项目的治理结构,Prometheus 于2016年加入了 Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。
-
Prometheus是一个时间序列数据库。但是,它不仅仅是一个时间序列数据库。
-
它涵盖了可以绑定的整个生态系统工具集及其功能。
-
Prometheus主要用于对基础设施的监控。包括服务器,数据库,VPS,几乎所有东西都可以通过Prometheus进行监控。Prometheus希望通过对Prometheus配置中定义的某些端点执行的HTTP调用来检索度量标准。
Prometheus 的优点
- 非常少的外部依赖,安装使用超简单
- 已经有非常多的系统集成 例如:docker HAProxy Nginx JMX等等
- 服务自动化发现
- 直接集成到代码
- 设计思想是按照分布式、微服务架构来实现的
- 可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端
- 可以通过服务发现或者静态配置去获取监控的 targets。
- 有多种可视化图形界面。
- 易于伸缩。
Prometheus 的特性
- 一个多维数据模型,其中包含通过度量标准名称和键/值对标识的时间序列数据
- PromQL,一种灵活的查询语言 ,可利用此维度
- 不依赖分布式存储;单服务器节点是自治的
- 时间序列收集通过HTTP上的拉模型进行
- 通过中间 关支持推送时间序列
- 通过服务发现或静态配置发现目标
- 多种图形和仪表板支持模式
2. 时间序列数据
1、什么是序列数据
时间序列数据(TimeSeries Data) : 按照时间顺序记录系统、设备状态变化 的数据被称为时序数据。
应用的场景很多, 如:
无人驾驶车辆运行中要记录的经度,纬度,速度,方向,旁边物体的距 离等等。每时每刻都要将数据记录下来做分析。
某一个地区的各车辆的行驶轨迹数据
传统证券行业实时交易数据
实时运维监控数据等
2.1 时间序列数据特点
性能好
关系型数据库对于大规模数据的处理性能糟糕。NOSQL可以比较好的处理 大规模数据,让依然比不上时间序列数据库。
存储成本低
高效的压缩算法,节省存储空间,有效降低IO
Prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占 用3.5byte左右空间,上百万条时间序列,30秒间隔,保留60天,大概花了 200多G(来自官方数据)
3. Prometheus原理架构图
下图说明了Prometheus的体系结构及其某些生态系统组件:
-
global:全局配置,其中scrape_interval表示抓取一次数据的间隔时间,evaluation_interval表示进行告警规则检测的间隔时间;
-
alerting:告警管理器(Alertmanager)的配置,目前还没有安装Alertmanager;
-
rule_files:告警规则有哪些;
-
scrape_configs:抓取监控信息的目标。一个job_name就是一个目标,其targets就是采集信息的IP和端口。这里默认监控了Prometheus自己,可以通过修改这里来修改Prometheus的监控端口。Prometheus的每个exporter都会是一个目标,它们可以上 不同的监控信息,比如机器状态,或者mysql性能等等,不同语言sdk也会是一个目标,它们会上 你自定义的业务监控信息。
4.6 校验配置文件
4.7配置service启动文件
4.8启动参数介绍
4.9访问测试
输入: “ip地址”+”:9090″ 在浏览器中进行访问,如果出现可视化界面说明成功;
6.7访问测试是否连接成功
使用Prometheus主机IP地址和端口 http://192.168.200.154:9100/targets访问
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!