性能监控报警平台是用于实时监视网络基础设备、应用服务程序的运行状态,从而及时发现问题,及时故障预警,进而让工程师们及时定位并解决问题,同时借助图形化输出,有利于工程们直观的感知未来态势,预判性能瓶颈与故障,从而提前做好准备工作,防范与未然。
在性能监控报警平台技术领域,存在着很多的技术,当前较为常用的是Zabbbix和Prometheus。
Zabbix是一个分布式的企业级性能监控报警平台,被广泛应用于基础架构的性能监控,例如:交换机、路由器、服务器、应用程序等等。
随着Kubernetes容器技术的发展与广泛应用,Prometheus逐步进入人们的视野,现已广泛应用于Kubernetes集群基础架构与容器的性能监控与报警。
一、Prometheus架构简介
官方文档中描述,Prometheus主要有以下几个组件构成:
Prometheus Server 服务组件:负责通过pull拉取方式,从<exporter>和<Prometheus Pushgateway>获取数据。
负责:依据<记录规则>来生成<时间序列数据>,并在本机保存数据。
负责:评估<告警规则>来生成<报警事件通知>。
♦ 已集成Prometheus Web UI(Web用户界面)功能。
♦ 已集成promlens(PromQL查询语言支持)功能。
Prometheus Alertmanager 报警组件:是一个Prometheus的<独立组件>,负责依据<报警事件通知>来执行<报警动作>。
Prometheus Pushgateway 推送网关:是一个Prometheus的<独立组件>,可以接收<exporter主动方式>push推送的数据,
<Prometheus Server组件>pull拉取<Prometheus Pushgateway数据>来获取数据。
各类exporter导出器 :就是一个个的<客户端守护进程>。
负责:采集<本地的指标数据>
负责:为<Prometheus Server>或<Prometheus Pushgateway>提供<指标数据>。
♦ blackbox_exporter :是一个通过HTTP、HTTPS、DNS、TCP、ICMP和gRPC进行<健康探测>的<客户端守护进程>。
♦ consul_exporter :是一个提供<Consul服务的指标数据>的<客户端守护进程>。
♦ graphite_exporter :是一个提供<Graphite工具>所采集的<网站实时信息>的<客户端守护进程>。
♦ memcached_exporter :是一个提供<Memcached的指标数据>的<客户端守护进程>。
♦ mysqld_exporter :是一个提供<MySQL/MariaDB的指标数据>的<客户端守护进程>。
♦ node_exporter :是一个提供<*NIX/Linux的指标数据>的<客户端守护进程>。
♦ statsd_exporter :是基于<StatsD 协议>提供<指标数据>的<客户端守护进程>。

二、Prometheus工作流程

二、Prometheus工作流程
什么时候合适?
普罗米修斯能很好地记录任何纯数字时间序列。它既适合以机器为中心的监视,也适合监视高度动态的面向服务的体系结构。
在微服务的世界中,它对多维数据收集和查询的支持是一个特别的优势。
普罗米修斯是为可靠性而设计的,它是您在停机期间使用的系统,允许您快速诊断问题。
个Prometheusser服务器都是独立的,不依赖于网络存储或其他远程服务。当基础设施的其他部分出现故障时,您可以依赖它,并且不需要设置大量基础设施来使用它。
什么时候不合适?
普罗米修斯重视可靠性。
即使在出现故障的情况下,您也可以随时查看系统的可用统计信息。
如果您需要100准确度,例如每次请求计费,普罗米修斯不是一个好选择,因为收集的数据可能不够详细和完整。在这种情况下,您最好使用其他系统来收集和分析计费数据,并使用普罗米修斯进行其余的监控。
本文介绍了性能监控报警平台的重要性,特别关注了Zabbix和Prometheus两种技术的应用,包括Prometheus的架构组成、工作流程以及适用场景。强调了Prometheus在微服务和高可靠性的优点,以及其与Kubernetes和容器技术的结合。

5725

被折叠的 条评论
为什么被折叠?



