分享

prometheus

 南方小姑 2023-04-18 发布于北京

prometheus是一个开源的系统监控和报警系统,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支 持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

图片

工作流程:

1Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据。

2)Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库。

3)Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager。

4)Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等。

5)Prometheus自带的web ui界面提供PromQL查询语言,可查询监控数据以及排查数据问题。

6)可通过接入prometheus数据源,把监控数据以图形化形式展示出,如Grafana。

监控数据:

1)集群节点状态监控:从集群中各节点的kubelet服务获取节点的基本运行状态。

2)集群节点资源用量监控:通过Daemonset的形式在集群中各个节点部署Node Exporter采集节点的资源使用情况。

3)节点中运行的容器监控:通过各个节点中kubelet内置的cAdvisor中获取个节点中所有容器的运行状态和资源使用情况。

4)如果在集群中部署的应用程序本身内置了对Prometheus的监控支持,那么我们还应该找到相应的Pod实例,并从该Pod实例中获取其内部运行状态的监控指标。

5)对k8s本身的组件做监控:apiserver、scheduler、controller-manager、kubelet、kube-proxy、ingress。

6)应用【Java】及中间件状态指标:延迟、错误,QPS,内部状态,资源用量,以及服务状态,代码集中集成Prometheus Client。

Prometheus部署方案:

1)基本高可用方案:

图片

适用范围:监控规模不大,Promthues Server也不会频繁发生迁移的情况,并且只需要保存短周期监控数据的场景。

2)基本高可用+远程存储方案

图片

适用范围:用户监控规模不大,但是希望能够将监控数据持久化,同时能够确保Promthues Server的可迁移性的场景。

3)远程存储+联邦集群方案:

图片

Promthues的性能瓶颈主要在于大量的采集任务,因此用户需要利用Prometheus联邦集群的特性,将不同类型的采集任务划分到不同的Promthues子服务中,从而实现功能分区。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多