1.1、前言

https://prometheusio/docs/prometheus/latest/getting started/

灵活的时间序列数据库;

定制各式各样的监控规则;

Prometheus的开发人员和用户社区非常活跃:

独立的开源项目,不依赖于任何公司;

继Kurberntes之后第二个入驻的项目

1.2、prometheus架构

打造基于Prometheus的全方位监控平台_k8s

Prometheus的工作原理主要分为五步:

1.数揭采集(Exporters):Prometheus 定明通过HTTP请求从目标资源中拉取数据。目标资源可以是应用租序、系统、服务或其他资源,

2.数据存储(Storage):Prometheu 将采集到的数据存储在本地存肇中,存储以时间列方式存储款,其中每个时间序列都由指标名称和一组健值对组成

3数据合(PromQL):Prometheu 通过查询表达式聚合数据,PromQL是 Prometheus 的查言,它允许用户通过查问表达式从存整中检索指标的

特定信息

4.告警处理(Alertmanager): Prometheus 可以根揭用户指定的规则对数想进行警报,当指损的值超出特定值时,Prometheus 向 Alertmanager 发送警报,Alertmanager 可以帮助用户对警报进行分组、消除和路由,并将警报发送到相应的接收器,例如邮件、企微、钉钉等。

5. 数据大盘(Grafana):帮助用户通过可视化方式展示 Prometheus 的数据,包括仪表盘、图表、日志和警报等。

1.3、prometheus时问序列数据

1.3.1、什么是序列致据?

时间序列数据(TimeSeries Data): 按照时间顺序记录系统、设备状态变化的据被称为时序数据

1.3.2时间序列数据特点

性能好:关系型数据库对于大规模数据的处理性能槽糕。NSQL 可以比较好的处理大规模数据,依然比不上时间序列数据库。

存储成本低:高效的压缩算法,节省存储空间,有效降低IO

官方数:Prometheus 有着非常高效的时间产列教据存储方法,每个采样据仅仅占用 3.5byte 左右空间,上百万条间产列,30 秒间隔,保留 60天,200多G。

1.3.3、Promethues适合场景

Prometheus 非常适合记录任何纯数字时间序列,它既适合以机器为中心的监控,也适合监控高庭动态的而向服务的体系架构,

2.1、Prometheus部署

整个监控体系涉及的技术栈较多,几乎可覆盖真实企业中的所有场暴。主要技术栈如下:

。Prometheus:监控主服务

。 node-exporter: 数据采集器

。 kube-state-metrics; 数据采集器

。 metrics-server: 数据采集器

。 Consul:自动发现

。 blackbox:黑盒拨测

。Alertmanager: 监控告警服务

。Grafana:数据展示服务

。prometheusAlert: 告警消息转发服务

打造基于Prometheus的全方位监控平台_监控_02

2.1.1、创建命名空间

$ kubectl create namespace monitor

2.1.2、创建RBAC规则

创建RBAC规则,包含serviceAccount、ClusterRole、ClusterRoleBinding三类YAML文件,

打造基于Prometheus的全方位监控平台_监控_03

打造基于Prometheus的全方位监控平台_监控_04

2.1.3、创建ConfigMap类型的Prometheus配置文件

打造基于Prometheus的全方位监控平台_k8s_05

打造基于Prometheus的全方位监控平台_k8s_06

2.1.4、创建ConfigMap类型的prometheus rules配置文件

包含的内容是两块,分别是general,rules 和node.rules,使用以下命令创理Prometheus的另外两个配置文件:

2,1.5、创建service 爆露prometheus 服务svc

2.1.6、创建deployment部署prometheus 容器

由于Prometheus需要对改据进行持久化,以便在重启后能够恢复历史数据。

]通过早先程部署的NFS做存储来实现持久化。当前我们使用NFS提供的StorageClass来做数据存储.

2.1.7、创建prometheus ingress实现外部城名访问

四、总结

prometheus监控平台:

1Graph:用于绘制图表,可以选择不同的时间范围、指标和标签,还可以添加多个图表进行比较,

2.Alet:用于设置告警规则,当指标达到设定的闻值时,会发送告警通知。

3.Explore:用于查询和浏览指标数据,可以通过查询表达式或者标签过滤器来查找数据

4.Status:用于查看prometheus的状态信息,包括当前的targets、rules、alerts等.

5.Config: 用于编辑prometheus的配置文件,可以添加、修改和删除配置项。

全面的监控:

1、Prometheus可以监控各种数据源,比如服务器、容器等,还支持度量数据和日志数圳等多种炎型的监控。

2.支持动态服务发现: Prometheus可以自动地发现并监控正在运行的服务,从而避免手动配置,

3.灵活的告警机制:Prometheus支持可配置的告警规则,可以根据不同的情况发出不同的告警信息,并且可以通过AP通知其他服务,(后续课程会介绍到)

4、多维数据模型:Prometheus的数据模型支持多维座的数规,可以使用标准的PromQL查询语言对数现进行分析和展示。

5.高效的存储:Prometheus使用自己的时间序列数据库存储数据,采用一种基于时间的存储方式,可以高效地处理大量数据。