zoukankan      html  css  js  c++  java
  • prometheus(1)之核心概念

    个人理解: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

     

  • 相关阅读:
    Java程序的设计环境配置
    Java总结之Java简介
    Python Panda
    Python with MYSQL
    python string与list互转
    Filter/replace
    django-pagination分页
    python 链接MS SQL
    Django 文件下载功能
    Sharepoint list webpart
  • 原文地址:https://www.cnblogs.com/dahuige/p/15090435.html
Copyright © 2011-2022 走看看