1-什么是 Prometheus

什么是 Prometheus

Prometheus 是由 SoundCloud 开源监控告警解决方案,从 2012 年开始编写代码,再到 2015 年 github 上开源以来,已经吸引了 9k+ 关注,以及很多大公司的使用;2016 年 Prometheus 成为继 k8s 后,第二名 CNCF(Cloud Native Computing Foundation) 成员。

作为新一代开源解决方案,很多理念与 Google SRE 运维之道不谋而合。

主要功能

  • 多维 数据模型(时序由 metric 名字和 k/v 的 labels 构成)。
  • 灵活的查询语句(PromQL)。
  • 无依赖存储,支持 local 和 remote 不同模型。
  • 采用 http 协议,使用 pull 模式,拉取数据,简单易懂。
  • 监控目标,可以采用服务发现或静态配置的方式。
  • 支持多种统计数据模型,图形化友好。

核心组件

  • Prometheus Server, 主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。
  • client libraries,用于对接 Prometheus Server, 可以查询和上报数据。
  • push gateway ,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。
  • 各种汇报数据的 exporters ,例如汇报机器数据的 node_exporter, 汇报 MongoDB 信息的 MongoDB exporter 等等。
  • 用于告警通知管理的 alertmanager

基础架构

一图胜千言,先来张官方的架构图

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

它大致使用逻辑是这样:

  1. Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
  3. Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
  4. Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
  5. 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

注意

  • Prometheus 的数据是基于时序的 float64 的值,如果你的数据值有更多类型,无法满足。
  • Prometheus 不适合做审计计费,因为它的数据是按一定时间采集的,关注的更多是系统的运行瞬时状态以及趋势,即使有少量数据没有采集也能容忍,但是审计计费需要记录每个请求,并且数据长期存储,这个 Prometheus 无法满足,可能需要采用专门的审计系统。

原文地址:https://www.cnblogs.com/hanxiaohui/p/9213167.html

时间: 2024-11-12 09:14:00

1-什么是 Prometheus的相关文章

prometheus简介

一.prometheus简介 1.1 什么是prometheus? Prometheus是一个开源监控系统,它前身是SoundCloud的警告工具包.从2012年开始,许多公司和组织开始使用Prometheus.该项目的开发人员和用户社区非常活跃,越来越多的开发人员和用户参与到该项目中.目前它是一个独立的开源项目,且不依赖与任何公司.为了强调这点和明确该项目治理结构,Prometheus在2016年继Kurberntes之后,加入了Cloud Native Computing Foundatio

我感觉prometheus这种日志收集模式不错

思想可以,可推可拉,可自己写接入点...还有报警... 按官方文档试一下安装 https://prometheus.io/docs/introduction/getting_started/

基于prometheus监控k8s集群

本文建立在你已经会安装prometheus服务的基础之上,如果你还不会安装,请参考:prometheus多维度监控容器 如果你还没有安装库k8s集群,情参考: 从零开始搭建基于calico的kubenetes 前言 kubernetes显然已成为各大公司亲睐的容器编排工具,各种私有云公有云平台基于它构建,那么,我们怎么监控集群中的所有容器呢?目前有三套方案: heapster+influxDB heapster为k8s而生,它从apiserver获取节点信息,每个节点kubelet内含了cAdv

prometheus 版本1.7 常用启动参数

参数是使用./prometheus -h 获取的,部分翻译参考网上已有资料.部分参数已经废弃了,因此我这里就没有列出来. prometheus 版本1.7 常用启动参数: 日志类: -log.level 可选值 [debug, info, warn, error, fatal]  例:-log.level "info" -log.format  可选输出到syslog或者控制台  例:-log.format "logger:syslog?appname=prom&lo

基于prometheus+grafana 搭建监控mysql redis mongodb等

先把题目定好,具体待这几天整理我的笔记补充进来. 官方网站 https://prometheus.io/ 参考文档: http://www.cnblogs.com/sfnz/p/6566951.html http://www.jb51.net/article/107386.htm https://www.iamle.com/archives/2130.html

基于etcd+confd对监控prometheus的服务注册发现

Prometheus是对容器监控的一个开源解决方案,可以对宿主机和容器内的信息进行详细监控,通过grafna展示出来,Prometheus是根据node节点上的cadvisor来获取每个容器的监控状态,相对zabbix而言,prometheus相当于server,cadvisor相当于agent,默认情况走的是类似zabbix的被动模式,cadvisor在收到prometheus要数据的请求后,将采集后的数据发送给prometheus. Prometheus是通过读取配置文件去采集指定cadvi

360 基于 Prometheus的在线服务监控实践

转自:https://mp.weixin.qq.com/s/lcjZzjptxrUBN1999k_rXw 主题简介: Prometheus基础介绍 Prometheus打点及查询技巧 Prometheus高可用和服务发现经验 初衷 最近参与的几个项目,无一例外对监控都有极强的要求,需要对项目中各组件进行详细监控,如服务端API的请求次数.响应时间.到达率.接口错误率.分布式存储中的集群IOPS.节点在线情况.偏移量等. 比较常见的方式是写日志,将日志采集到远端进行分析和绘图,或写好本地监控脚本进

prometheus statsd 监控

Prometheus是一套开源的监控&报警&时间序列数据库的组合,起始是由SoundCloud公司开发的.随着发展,越来越多公司和组织接受采用Prometheus,社会也十分活跃,他们便将它独立成开源项目,并且有公司来运作.google SRE的书内也曾提到跟他们BorgMon监控系统相似的实现是Prometheus.现在最常见的Kubernetes容器管理系统中,通常会搭配Prometheus进行监控. 介绍 http://www.cnblogs.com/vovlie/p/Prometh

Prometheus 普罗米修斯监控

周末在家无聊 看新闻 看到关于监控的东西 拿来玩玩 试一下 感觉还蛮有意思 特此记录一下 这里只介绍客户端的配置 1:首先在POM中添加依赖 <dependency> <groupId>io.prometheus</groupId> <artifactId>simpleclient</artifactId> <version>${prometheus.version}</version> </dependency&g

利用Prometheus和Grafana监控MySQL

一. Prometheus 是一个开源的服务监控系统和时间序列数据库.: 官方GitHub地址为:https://github.com/prometheus/prometheus 官方地址:https://prometheus.io/ 官方拓扑图如下 特性: 高维度数据模型 自定义查询语言 可视化数据展示 高效的存储策略 易于运维 提供各种客户端开发库 警告和报警 数据导出 二.安装Prometheus(服务器环境为Centos7.2,本实验服务端跟被监控MySQL在同一台服务器) 前提条件请关