融合Zabbix和Prometheus,打造无短板可视化的监控不难!

​一、监控工具简介

1、Zabbix

Zabbix 是由Alexei Vladishev开源的分布式监控系统,是一个企业级的分布式开源监控方案。2004年3月发布1.0 稳定版,比Prometheus早了10年以上。能够监控各种网络参数以及服务器健康性和完整性的软件。使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。

后端使用数据库存储监控配置和历史数据,可以较为方便地对接数据分析、报表定制等渠道,在前端开放了丰富的 RESTful API 供第三方平台调用,整体架构符合当前 DevOps 的趋势。

2、Prometheus

Prometheus是由前Google员工创办公司SoundCloud开发的开源监控报警系统和时序列数据库。相对于k8s是Google Borg系统的开源实现,Prometheus是Google BorgMon的开源实现。

Prometheus 由两个部分组成,一个是监控报警系统,另一个是自带的时序数据库(TSDB)。

Prometheus 在开源社区十分活跃,在 GitHub 上拥有四万多Star,并且系统每隔两三周就会有一个小版本的更新,Prometheus 与它的“师兄”k8s 自带云原生的光环,天然能够友好协作。

二、架构对比

1、Zabbix 架构

融合Zabbix和Prometheus,打造无短板可视化的监控不难!插图亿华云

Zabbix Server​

核心组件,C 语言编写,负责接收 Agent、Proxy 发送的监控数据,也支持 JMX、SNMP 等多种协议直接采集数据。同时,它还负责数据的汇总存储以及告警触发等。

Zabbix Proxy​

Zabbix Agentd​

部署在被监控主机上,用于采集本机的数据并发送给 Proxy 或者 Server,它的插件机制支持用户自定义数据采集脚本。

Agent 可在 Server 端手动配置,也可以通过自动发现机制被识别。数据收集方式同时支持主动 Push 和被动 Pull 两种模式。

Database​

用于存储配置信息以及采集到的数据,支持 MySQL、Oracle 等关系型数据库。同时,最新版本的 Zabbix 已经开始支持时序数据库,不过成熟度还不高。

Web Server​

Zabbix 的 GUI 组件,PHP 编写,提供监控数据的展现和告警配置。

2、Prometheus架构

融合Zabbix和Prometheus,打造无短板可视化的监控不难!插图1亿华云

Prometheus Server​

用于定时抓取数据指标(metrics)、存储时间序列数据(TSDB),TSDB在存储监控的性能会优于传统关系型数据库。

Jobs/exporters​

Prometheus 使用各种 exporter 进行监控,exporter 的功能类似于 Zabbix 的 Agent,负责收集监控对象端的数据。

Pushgateway​

监控端的数据会用push的方式主动传给此组件,随后被 Prometheus 服务定时 pull 此组件数据即可。

Alertmanager​

报警组件,类似于Zabbix的Action,可以进行报警触发,比如发送短信和邮件。

Web UI 用于多样的UI展示,一般为Grafana,还有一些例如配置自动发现目标的小组件和后端存储组件。

三、Zabbix和Prometheus优劣

THE END
Copyright © 2024 亿华云