美文网首页
第一节 监控Prometheus与Zabbix

第一节 监控Prometheus与Zabbix

作者: 农民工进城 | 来源:发表于2022-01-04 19:07 被阅读0次

1.Prometheus简介

Prometheus 架构 如下:
image.png

Prometheus的基本原理是通过HTTP周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口并且符合Prometheus定义的数据格式,就可以接入Prometheus监控。它的的整个工作流程大致分为收集数据,存储数据,展示监控数据,监控告警;核心组件包括:Exporters,Prometheus Server,AlertManager,PushGateway;

  • Exporters:监控数据采集器,将数据通过Http的方式暴露给Prometheus Server;
    各种Exporter

  • Prometheus Server:负责对监控数据的获取,存储以及查询;获取的监控数据需要是指定的Metrics格式,这样才能处理监控数据;对于查询Prometheus提供了PromQL方便对数据进行查询汇总,当然Prometheus本身也提供了Web UI;

  • AlertManager:Prometheus支持通过PromQL来创建告警规则,如果满足规则则创建一条告警,后续的告警流程就交给AlertManager,其提供了多种告警方式包括email,webhook等方式;

  • PushGateway:正常情况下Prometheus Server能够直接与Exporter进行通信,然后pull数据;当网络需求无法满足时就可以使用PushGateway作为中转站了;

2.Zabbix

Zabbix 架构
image.png

Zabbix 核心组件主要是Agent和Server。

  • Agent主要负责采集数据并通过主动或者被动的方式采集数据发送到Server/Proxy,除此之外,为了扩展监控项,Agent还支持执行自定义脚本。
  • Server主要负责接收Agent发送的监控信息,并进行汇总存储,触发告警等。Zabbix Server将收集的监控数据存储到Zabbix Database中。
  • Zabbix Database支持常用的关系型数据库,如果MySQL、PostgreSQL、Oracle等,默认是MySQL。
  • Zabbix Web : zabbix的GUI接口,通常与server运行在同一台机器上
  • Proxy:可选组件,常用于分布式监控环境中,代理Server收集部分被监控数据并统一发往Server端

3.Prometheus与zabbix对比

对比项 Prometheus Zabbix Prometheus优势 Zabbix优势
管理 二进制文件启动 LNMP+编译 轻量级Server,便于迁移和维护 -
配置 配置文件 图形化 更好的支持自动化配置 学习成本低
Client 丰富的Client库 Zabbix、Agent自定义脚本 为各种中间件、应用提供专业的exporter,监控项更全面 支持自定义监控项,对监控设计者的格局要求较高
数据存储方式 Prometheus TSDB MySQL 监控数据以时间为维度统计情况较多,时序数据库更适用于监控数据的存储,按时间索引性能更高 MySQL较常用,学习成本低
数据处理 PromQL MySQL PromQL计算函数丰富,统计维度广 同上
二次开发 丰富的sdk API 提供了GO、Java/Scala、Python、Ruby等SDK,二次开发更便捷 API适配较为常用,学习成本低
对云环境的支持 原生支持容器监控 更适合物理机监控 自动发现容器,更好的适配k8x -
告警方式 可按照标签分组,收敛 在次数上收敛 告警收敛方式更多样化 -
监控项值 支持数字 支持数字字符串 - 可做日志监控

相关文章

网友评论

      本文标题:第一节 监控Prometheus与Zabbix

      本文链接:https://www.haomeiwen.com/subject/opmqcrtx.html