侧边栏壁纸
博主头像
一揽芳华 博主等级

行动起来,活在当下

  • 累计撰写 265 篇文章
  • 累计创建 24 个标签
  • 累计收到 4 条评论

目 录CONTENT

文章目录

1.3.Prometheus监控介绍

芳华是个男孩!
2024-10-14 / 0 评论 / 0 点赞 / 8 阅读 / 0 字
广告 广告

title: 1.3.Prometheus监控介绍
order: 3

icon: lightbulb

1、概述

什么是普罗米修斯?

Prometheus是一个开源系统监控和警报工具包,受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。

2、特点

普罗米修斯的主要特点是:

  • 支持多维数据模型由指标名称和键值对标识的时间序列数据

  • 内置时间序列库TSDB(Time Serices Database)

  • 支持PromQL(Promethues Query Language),对数据的查询和分析、图形展示和监控告警。

  • 不依赖分布式存储;单个服务器节点是自治的

  • 支持HTTP 的拉取(pull)方式收集时间序列数据

  • 通过中间网关Pushgateway推送时间序列

  • 通过服务发现或静态配置2种方式发现目标

  • 支持多种可视化和仪表盘,如:grafana

3、核心组件

  • Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。

  • client libraries,用于检测应用程序代码的客户端库。

  • push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。

  • exporters 收集监控样本数据,并以标准格式向 Prometheus 提供。例如:收集服务器系统数据的 node_exporter, 收集 MySQL 监控样本数据的是 MySQL exporter 等等。

  • 用于告警通知管理的 alertmanager

4、基础架构

从这个架构图,也可以看出 Prometheus 的主要模块包含, Server, Exporters, Pushgateway, PromQL, Alertmanager, WebUI 等。

它大致使用逻辑是这样:

  1. Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据(Targets是Prometheus采集Agent需要抓取的采集目标)

  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。

  3. Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alerts 推送到配置的 Alertmanager。

  4. Alertmanager 收到警告的时候,可以根据配置(163,钉钉等),聚合,去重,降噪,最后发送警告。

  5. 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

5、Prometheus与Zabbix的对比

Prometheus对比Zabbix:

Zabbix

Prometheus

后端用C开发,界面用PHP开发,定制化难度很高。

后端用golang开发,前端是Grafana,JSON编辑即可解决定制化难度较低

6.0支持单个Zabbix实例监控超过10万个业务服务

支持更大的集群规模,速度也更快

更适合监控物理机环境(物理主机,交换机,网络等监控)

更适合云环境的监控,对OpenStack,Kubernetes有更好的集成

监控数据存储在关系型数据库内,如 MySQL,很难从现有数据中扩展维度

监控数据存储在基于时间序列的数据库内,便于对已有数据进行新的聚合。十万级监控数据,Prometheus数据查询速率比Zabbix更快

安装简单,zabbix-server 一个软件包中包括了所有的服务端功能

安装相对复杂,监控、告警和界面都分属于不同的组件

图形化界面比较成熟,界面上基本上能完成全部的配置操作

界面相对较弱,很多配置需要修改配置文件

发展时间更长,对于很多监控场景,都有现成的解决方案

2015 年后开始快速发展,发展时间短,但现在也非常的成熟

总结

监控系统没有绝对的谁好谁不好,最重要的是适合自己的公司团队,能够合理利用最小的成本解决问题。prometheus,zabbix 都只是工具,监控思想才是最重要的。

实在不知道怎么选?参考如下:

物理机、硬件设备的监控推荐使用Zabbix

而docker容器,Kubernetes监控推荐用Prometheus

云服务器厂商自带有监控系统,有的监控不全面,也可以搭配zabbix和Prometheus来一起使用。

0
广告 广告

评论区