Prometheus 概述与安装 1
一. 概述
Prometheus 是一个开源的服务监控系统和时间序列数据库。包括监控和告警,实现流式监控数据的收集、存储、查询、告警 ,它将指标收集并存储为时间序列数据库(time series data)。大多数 Prometheus 组件都是用Go编写的,这使得它们易于构建和部署为静态二进制文件。
Prometheus 关注的是近期发生的事情,而不是跟踪数周或数月的数据,因为大多数监视查询和警报都是从最近(通常不到一天)的数据生成,Prometheus监控数据默认保留15天。
它支持灵活的查询语言PromQL,利用PromQL非常方便地查询和分析某个时间段内的各项指标数据,它提供了可视化UI,还支持告警配置等功能,如下所示。
下面是Prometheus 的架构及其一些生态系统组件:
上图Prometheus服务器周期性地或在设定的时间段内,可以通过以下方式获取内容。
1) 从已配置好的job或者exporter中拉取metric。
2) 接收从Pushgateway推送过来的metric。
3)从其它的Prometheus服务器中接取metric。
4)Prometheus服务器获取到数据后存储在本地(也可以选择远端存储),通过一定规则对数据进行清理和整理,并且把结果存储到新的时间序列中。
5)Prometheus服务器定时查询已经定义好的规则,若发现满足定义的触发条件,便将alert信息推送至已配置好的Alertmmanager。
6)Alertmmanager收到alert信息后,根据配置文件将接收到的alert信息进行处理(聚合,去重,降噪)然后将它们转换为网页,电子邮件和其它通知方式发出告警。
7) 最后通过PromQL或其它api可视化地展示收集的数据,例如自带的Prometheus的web ui、grafana可视化收集查询数据等。
数据存储的硬盘最好是SSD类型。
2.什么时候合适使用
Prometheus 可以很好的记录任何纯数字时间序列,它既适应于面向服务器硬件指标的监控,也适用于对高动态的面向服务的架构的监控,对于现在流行的微服务,它的多维度数据收集和数据筛选查询语言也是非常强大的。
Prometheus 专为可靠性而设计,是您在中断期间可以使用的系统,可让您快速诊断问题。每个 Prometheus 服务器都是独立的,不依赖于网络存储或其他远程服务。当基础设施的其他部分损坏时,可以快速恢复,并且不需要设置大量的基础依赖架构。
3.什么时候不合适使用
使用者要求统计数 100% 的准确性那么它并不适用,因为收集的数据可能不够详细和完整。例如精准实时计费的服务平台应用环境就不适用,您最好使用其他系统来收集和分析数据以进行计费,并使用 Prometheus 进行其余的监控
4.快速部署
Prometheus官方给出了多种部署方式,如docker容器,如二进制文件,下面是二进制文件包下载
https://prometheus.io/download/ 下载解压,解压后如下所示
[root@iZwz97yqubb71vyxhuskfyZ prometheus-2.36.0.linux-amd64]# pwd /root/prometheus/prometheus-2.36.0.linux-amd64 [root@iZwz97yqubb71vyxhuskfyZ prometheus-2.36.0.linux-amd64]# ls console_libraries consoles data LICENSE NOTICE prometheus prometheus.yml promtool
[root@iZwz97yqubb71vyxhuskfyZ prometheus-2.36.0.linux-amd64]# ./prometheus --config.file=prometheus.yml
启动成功后,tcp地址为: 0.0.0.0:9090
打开 http://localhost:9090浏览到关于自身的状态页面。给它大约 30 秒的时间从它自己的 HTTP 指标端点收集关于它自己的数据。
打开 http://localhost:9090/metrics指标端点来验证 Prometheus 是否正在提供有关自身的指标
指标返回的时间序列数据将详细说明 Prometheus 服务器的状态和性能,如下所示:
官方文档地址: https://prometheus.io/docs/introduction/overview/