1.1、前言
https://prometheusio/docs/prometheus/latest/getting started/
灵活的时间序列数据库;
定制各式各样的监控规则;
Prometheus的开发人员和用户社区非常活跃:
独立的开源项目,不依赖于任何公司;
继Kurberntes之后第二个入驻的项目
1.2、prometheus架构
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: 告警消息转发服务
2.1.1、创建命名空间
$ kubectl create namespace monitor
2.1.2、创建RBAC规则
创建RBAC规则,包含serviceAccount、ClusterRole、ClusterRoleBinding三类YAML文件,
2.1.3、创建ConfigMap类型的Prometheus配置文件
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使用自己的时间序列数据库存储数据,采用一种基于时间的存储方式,可以高效地处理大量数据。