Prometheus监控介绍
数据模型 Prometheus使用一种灵活的数据模型来表示时间序列数据。它使用指标名称、标签和时间戳来唯一标识每个数据点。 数据采集 Prometheus支持多种方式进行数据采集。它可以直接从应用程序、操作系统、容器和其他监控系统中获取指标数据。常见的数据采集方式包括客户端库、exporter和Pushgateway。 数据存储 Prometheus使用本地持久化存储来保存采集到的时间序列数据。默认情况下,数据存储为磁盘上的时间序列数据库。这种存储方式允许Prometheus有效地处理大量的数据,并支持快速查询和聚合。 查询语言 Prometheus提供了PromQL(Prometheus Query Language)作为查询和分析时间序列数据的语言。PromQL具有丰富的函数和操作符,可以用于过滤、聚合和计算指标数据。 监控和警报规则 Prometheus允许用户定义监控规则和警报规则。监控规则用于检测和记录系统的状态,而警报规则用于定义触发警报的条件和操作。 可视化和仪表盘 Prometheus提供了一个基本的Web界面,用于可视化指标数据和创建仪表盘。此外,Prometheus还与Grafana等外部工具集成,可以更灵活地创建丰富的可视化和仪表盘。
zabbix监控介绍
多样化的监控功能 Zabbix 可以监控各种IT环境中的不同指标,包括服务器性能、网络流量、数据库性能、应用程序状态等。 灵活的配置 用户可以通过 Zabbix 的 Web 界面进行灵活的配置,定义监控项、触发器、报警规则等。 自动发现 Zabbix 支持自动发现新的网络设备和服务,并添加到监控范围内。 数据存储和图形展示 Zabbix 可以存储历史数据,并生成图形化的报表和趋势图,帮助用户分析性能变化和趋势。 报警功能 当监控指标超出预设阈值时,Zabbix 可以发送报警通知,包括邮件、短信、即时消息等多种方式。 分布式监控 Zabbix 支持分布式监控,可以部署在多个地点来监控分布式的 IT 环境。 扩展性 Zabbix 提供了丰富的 API 接口和插件机制,用户可以根据需要进行定制和扩展。
Prometheus与zabbix的对比
数据模型 Prometheus 使用一种称为指标(metrics)的数据模型,每个指标包含了一个名称、一组标签和时间序列数据。而 Zabbix 使用主机、应用程序、监控项等传统的监控概念。 数据采集方式 Prometheus 支持多种数据采集方式,包括通过客户端库或者使用各种类型的 Exporter 提供指标数据。Zabbix 通过主动轮询或者被动代理方式进行数据采集。 灵活性 Prometheus 具有高度的灵活性,可以轻松地适应不同的监控场景,支持针对个别指标设置警报规则。Zabbix 相对来说更加固定,需要在 Web 界面中进行手动配置。 可扩展性 Prometheus 在设计时考虑到了云原生环境的因素,支持 Kubernetes、Docker 等容器化部署方式,可以与 Kubernetes 自动扩展相集成。Zabbix 则需要手动进行扩展。 开源性 Prometheus 是一个完全开源的项目,由 CNCF 托管。而 Zabbix 是一个开源的项目,但其商业版也存在。 性能 Prometheus 的数据存储采用了高度压缩的时间序列存储方式,可以在较小的磁盘空间内存储大量数据。Zabbix 则在数据存储方面相对较为传统。
Prometheus 更适合于云原生环境,具有更高的灵活性和扩展性,而 Zabbix 则更适用于传统 IT 环境。选择哪种监控系统,需要根据实际情况进行评估和选择。
实现方法
这里我使用的是第二种方式,当然不仅仅可以使用这两种方式。
Prometheus监控数据格式示例

例如查询状态,使用kube_pod_status_phase{namespace="dmz-10000",phase="Running"},在 Prometheus 中,可以使用 kube_pod_status_phase 标签来获取有关 Kubernetes Pod 状态的指标数据。{}里面加上过滤条件。
获取数据需求及解决方法





编写脚本获取数据并处理



通过zabbix监控平台获取数据



本文作者:王 扬(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




