个人理解:prometheus核心在于

1.prom数据类型的理解 (4钟数据类型 与常用的promQL语法 其实很容易)

2.各种服务发现与正则拼接(服务发现的拼接其实官方定义好的 理解就行)

3.各种度量指标的换算 

prometheus简介

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群。

prometheus特点

1.多维度数据模型

时间序列数据由metrics名称和键值对来组成

可以对数据进行聚合,切割等操作

所有的metrics都可以设置任意的多维标签。

2.灵活的查询语言(PromQL)

可以对采集的metrics指标进行加法,乘法,连接等操作;

3.可以直接在本地部署,不依赖其他分布式存储;

4.通过基于HTTP的pull方式采集时序数据;

5.可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;

6.可通过服务发现或者静态配置来发现目标服务对象(targets)。

7.有多种可视化图像界面,如Grafana等。

8.高效的存储,每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。

9.做高可用,可以对数据做异地备份,联邦集群,部署多套prometheus,pushgateway上报数据

架构图

从上图可发现,Prometheus整个生态圈组成主要包括prometheus server,Exporter,pushgateway,alertmanager,grafana,Web ui界面,Prometheus server由三个部分组成,Retrieval(检索),Storage存储队列,PromQL

prometheus server三大核心:

1.Retrieval负责在活跃的target主机上抓取监控指标数据

2.Storage存储主要是把采集到的数据存储到磁盘或后端队列中

3.PromQL是Prometheus提供的查询语言模块。

Prometheus组件介绍

1.Prometheus Server: 用于收集和存储时间序列数据。

2.Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。

3.Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端

4.Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。

5.Grafana:监控仪表盘

6.pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。

prometheus工作流程:

1.  Prometheus  server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现(服务发现可基于约定的annotations,以及k8s内置角色node endpoints)的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;

2.Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;

3.Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager

4.Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等

5.Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据

6.Grafana可接入prometheus数据源,把监控数据以图形化形式展示出

4、Prometheus和zabbix对比分析

5、Prometheus的几种部署模式

5.1 基本高可用模式

基本的HA模式只能确保Promthues服务的可用性问题,但是不解决Prometheus Server之间的数据一致性问题以及持久化问题(数据丢失后无法恢复),也无法进行动态的扩展。因此这种部署方式适合监控规模不大,Promthues Server也不会频繁发生迁移的情况,并且只需要保存短周期监控数据的场景。

5.2 基本高可用+远程存储

在解决了Promthues服务可用性的基础上,同时确保了数据的持久化,当Promthues Server发生宕机或者数据丢失的情况下,可以快速的恢复。 同时Promthues Server可能很好的进行迁移。因此,该方案适用于用户监控规模不大,但是希望能够将监控数据持久化,同时能够确保Promthues Server的可迁移性的场景。

5.3 基本HA + 远程存储 + 联邦集群方案

Promthues的性能瓶颈主要在于大量的采集任务,因此用户需要利用Prometheus联邦集群的特性,将不同类型的采集任务划分到不同的Promthues子服务中,从而实现功能分区。例如一个Promthues Server负责采集基础设施相关的监控指标,另外一个Prometheus Server负责采集应用监控指标。再有上层Prometheus Server实现对数据的汇聚。

7、Prometheus能监控什么?

  • Databases
  • Hardware related
  • Messaging systems
  • Storage
  • HTTP
  • APIs
  • Logging
  • Other monitoring systems
  • Miscellaneous
  • Software exposing Prometheus metrics

7.1 DATABASES-数据库

  • Aerospike exporter
  • ClickHouse exporter
  • Consul exporter (official)
  • Couchbase exporter
  • CouchDB exporter
  • ElasticSearch exporter
  • EventStore exporter
  • Memcached exporter (official)
  • MongoDB exporter
  • MSSQL server exporter
  • MySQL server exporter (official)
  • OpenTSDB Exporter
  • Oracle DB Exporter
  • PgBouncer exporter
  • PostgreSQL exporter
  • ProxySQL exporter
  • RavenDB exporter
  • Redis exporter
  • RethinkDB exporter
  • SQL exporter
  • Tarantool metric library
  • Twemproxy

7.2 HARDWARE RELATED-硬件相关

  • apcupsd exporter
  • Collins exporter
  • IBM Z HMC exporter
  • IoT Edison exporter
  • IPMI exporter
  • knxd exporter
  • Netgear Cable Modem Exporter
  • Node/system metrics exporter (official)
  • NVIDIA GPU exporter
  • ProSAFE exporter
  • Ubiquiti UniFi exporter

7.3 Messaging systems-消息服务

  • Beanstalkd exporter
  • Gearman exporter
  • Kafka exporter
  • NATS exporter
  • NSQ exporter
  • Mirth Connect exporter
  • MQTT blackbox exporter
  • RabbitMQ exporter
  • RabbitMQ Management Plugin exporter

7.4 Storage-存储

  • Ceph exporter
  • Ceph RADOSGW exporter
  • Gluster exporter
  • Hadoop HDFS FSImage exporter
  • Lustre exporter
  • ScaleIO exporter

7.5 http-网站服务

  • Apache exporter
  • HAProxy exporter (official)
  • Nginx metric library
  • Nginx VTS exporter
  • Passenger exporter
  • Squid exporter
  • Tinyproxy exporter
  • Varnish exporter
  • WebDriver exporter

7.6 API

  • AWS ECS exporter
  • AWS Health exporter
  • AWS SQS exporter
  • Cloudflare exporter
  • DigitalOcean exporter
  • Docker Cloud exporter
  • Docker Hub exporter
  • GitHub exporter
  • InstaClustr exporter
  • Mozilla Observatory exporter
  • OpenWeatherMap exporter
  • Pagespeed exporter
  • Rancher exporter
  • Speedtest exporter

7.7 Logging-日志

  • Fluentd exporter
  • Google's mtail log data extractor
  • Grok exporter

7.8 Other monitoring systems

  • Akamai Cloudmonitor exporter
  • Alibaba Cloudmonitor exporter
  • AWS CloudWatch exporter (official)
  • Cloud Foundry Firehose exporter
  • Collectd exporter (official)
  • Google Stackdriver exporter
  • Graphite exporter (official)
  • Heka dashboard exporter
  • Heka exporter
  • InfluxDB exporter (official)
  • JavaMelody exporter
  • JMX exporter (official)
  • Munin exporter
  • Nagios / Naemon exporter
  • New Relic exporter
  • NRPE exporter
  • Osquery exporter
  • OTC CloudEye exporter
  • Pingdom exporter
  • scollector exporter
  • Sensu exporter
  • SNMP exporter (official)
  • StatsD exporter (official)

7.9 Miscellaneous-其他

  • ACT Fibernet Exporter
  • Bamboo exporter
  • BIG-IP exporter
  • BIND exporter
  • Bitbucket exporter
  • Blackbox exporter (official)
  • BOSH exporter
  • cAdvisor
  • Cachet exporter
  • ccache exporter
  • Confluence exporter
  • Dovecot exporter
  • eBPF exporter
  • Ethereum Client exporter
  • Jenkins exporter
  • JIRA exporter
  • Kannel exporter
  • Kemp LoadBalancer exporter
  • Kibana Exporter
  • Meteor JS web framework exporter
  • Minecraft exporter module
  • PHP-FPM exporter
  • PowerDNS exporter
  • Presto exporter
  • Process exporter
  • rTorrent exporter
  • SABnzbd exporter
  • Script exporter
  • Shield exporter
  • SMTP/Maildir MDA blackbox prober
  • SoftEther exporter
  • Transmission exporter
  • Unbound exporter
  • Xen exporter
  • App Connect Enterprise
  • Ballerina
  • Ceph
  • Collectd
  • Concourse
  • CRG Roller Derby Scoreboard (direct)
  • Docker Daemon
  • Doorman (direct)
  • Etcd (direct)
  • Flink
  • FreeBSD Kernel
  • Grafana
  • JavaMelody
  • Kubernetes (direct)
  • Linkerd

7.10 Software exposing Prometheus metrics-Prometheus度量指标

  • App Connect Enterprise
  • Ballerina
  • Ceph
  • Collectd
  • Concourse
  • CRG Roller Derby Scoreboard (direct)
  • Docker Daemon
  • Doorman (direct)
  • Etcd (direct)
  • Flink
  • FreeBSD Kernel
  • Grafana
  • JavaMelody
  • Kubernetes (direct)
  • Linkerd

 

prometheus(1)之核心概念的更多相关文章

  1. 01 . 容器编排简介及Kubernetes核心概念

    Kubernetes简介 Kubernetes是谷歌严格保密十几年的秘密武器-Borg的一个开源版本,是Docker分布式系统解决方案.2014年由Google公司启动. Kubernetes提供了面 ...

  2. 3.k8s核心概念

    k8s的核心概念 一. Pod pod,中文翻译过来叫豆荚,如下图.我们都知道豆荚,一个豆荚里面有很多豆子.豆荚就可以理解为pod,一个个的豆子就可以理解为容器.pod和容器的关系是一个pod里面可以 ...

  3. 领域驱动设计(DDD)部分核心概念的个人理解

    领域驱动设计(DDD)是一种基于模型驱动的软件设计方式.它以领域为核心,分析领域中的问题,通过建立一个领域模型来有效的解决领域中的核心的复杂问题.Eric Ivans为领域驱动设计提出了大量的最佳实践 ...

  4. Javascript本质第一篇:核心概念

    很多人在使用Javascript之前都至少使用过C++.C#或Java,面向对象的编程思想已经根深蒂固,恰好Javascript在语法上借鉴了Java,虽然方便了Javascript的入门,但要深入理 ...

  5. [程序设计语言]-[核心概念]-02:名字、作用域和约束(Bindings)

    本系列导航 本系列其他文章目录请戳这里. 1.名字.约束时间(Binding Time) 在本篇博文开始前先介绍两个约定:第一个是“对象”,除非在介绍面向对象语言时,本系列中出现的对象均是指任何可以有 ...

  6. spring技术核心概念纪要

    一.背景 springframework 从最初的2.5版本发展至今,期间已经发生了非常多的修正及优化.许多新特性及模块的出现,使得整个框架体系显得越趋庞大,同时也带来了学习及理解上的困难. 本文阐述 ...

  7. ElasticSearch学习笔记-01 简介、安装、配置与核心概念

    一.简介 ElasticSearch是一个基于Lucene构建的开源,分布式,RESTful搜索引擎.设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便.支持通过HTTP使用JSON进 ...

  8. Playmaker Input篇教程之引入的核心概念

    Playmaker Input篇教程之引入的核心概念 Playmaker Input引入的核心概念 Playmaker引入了4个核心概念:状态机.动作.变量和事件.了解它们是学习操作Playmaker ...

  9. Maven的几个核心概念

    POM (Project Object Model) 一个项目所有的配置都放置在 POM 文件中:定义项目的类型.名字,管理依赖关系,定制插件的行为等等.比如说,你可以配置 compiler 插件让它 ...

随机推荐

  1. Docker系列(10)- 常用命令小结

    #橙色前面笔记已记录,黑色后面笔记将完善#勤加练习!!!attach Attach to a running container # 当前 shell 下 attach 连接指定运行镜像 build ...

  2. 基于pgpool搭建postgressql集群部署

    postgresql集群搭建 基于pgpool中间件实现postgresql一主多从集群部署,这里用两台服务器作一主一从示例 虚拟机名 IP 主从划分 THApps 192.168.1.31 主节点 ...

  3. Fiddler修改抓包请求

    hi,说到fiddler的用途,第一时间想到抓包,不过还有一个功能是:支持修改请求. 那么问题来了,怎么做呢?很简单,先定下我们需要修改哪个请求. 这里用F12跟fiddler做演示. 首先我们在F1 ...

  4. 2021“MINIEYE杯”中国大学生算法设计超级联赛(8)(1002,1004,1006,1009)

    前言 依旧是白嫖账号,只打了一些题/kk 正题 1002 Buying Snacks 题目大意 \(n\)个物品,每个可以买一次也可以不买,如果买需要选择\(1/2\)块钱的,然后也可以相邻两个一起买 ...

  5. AT2164-[AGC006C]Rabbit Exercise【差分,倍增,数学期望】

    正题 题目链接:https://www.luogu.com.cn/problem/AT2164 题目大意 \(n\)只兔子编号为\(1\sim n\),第\(i\)只在坐标轴\(x_i\)处.然后\( ...

  6. 从零开始部署 Yapi(Windows+Nginx)

    一.环境准备及安装 本文中是以本地 Windows 作为安装环境,Nginx 做反向代理,亲测验证可用. Yapi 运行需要的环境: Nodejs,MongoDB 安装包都在文档末尾处 1.1 安装 ...

  7. Spring面试复习整理

    Spring Spring核心分为三方面: 控制反转(IoC): 就是将创建对象的权利交给框架处理/控制,不需要人为创建,有效降低代码的耦合度,降低了开发成本. 依赖注入(DI): 容器动态地将将某种 ...

  8. MySQL8.0.20下载与安装详细图文教程,mysql安装教程

    MySQL下载与安装(8.0.20版)教程 mysql安装包+mysql学习视频+mysql面试指南视频教程 下载地址: 链接:https://pan.baidu.com/s/1FmLFhGlajBQ ...

  9. 微服务+异步工作流+ Serverless,Netflix 决定弃用稳定运行 7 年的旧平台

    作者 | Frank San Miguel 策划 | 田晓旭 2021 年,Netflix 会将大部分的工作负载从 Reloaded 转移到 Cosmos 平台.Cosmos 是一个计算平台,它将微服 ...

  10. NOIP模拟79

    T1 F 解题思路 因为每个点会产生贡献当且仅当它在可以到他的点之前被删除,并且此题遵守期望的线性性. 因此设所有可以到达点 \(i\) 的数量为 \(c_i\) 那么答案就是 \(\sum \fra ...