prometheus监控系统架构原理及组件介绍

目录

1.prometheus介绍

2.官网地址

3.时间序列数据

4.prometheus主要特征

5.prometheus组件介绍

6.prometheus原理及架构


1.prometheus介绍

prometheus是一套开源的监控报警、时间序列数据库的组合,适合监控docker容器,由于kubernetes的流行带动了prometheus的发展

prometheus最初在soundcloud上构建的开源系统监视和报警工具包、

2.官网地址

官网地址:https://prometheus.io/

国内中文技术文档:https://www.prometheus.wang/quickstart/why-monitor.html

3.时间序列数据

时间序列数据:按照时间顺序记录系统、设备状态变化的数据被称为时序数据

应用场景如下:

  • 无人驾驶车辆运行中要记录的经度、纬度、速度、方向、旁边物体的距离等待,每时每刻都要讲数据记录下来做分析
  • 某一个地区的各车辆行驶轨迹数据
  • 传统证券行业实时交易数据
  • 实时运维监控数据等

时序数据库简而言之就是实时的获取数据的最新状态,像zabbix的mysql数据库等关系型数据都需要去数据库里拉取最新值,而时序数据库则是实时展现最新数据的数据库

时间序列数据特点

  • 性能好
    • 关系型数据对于大规模数据的处理性能糟糕,nosql可以较好的处理大规模数据,仍然比不上时间序列数据库
  • 存储成本低
    • 高效的压缩算法,节省存储空间,有效降低IO
    • prometheus有着非常高效的时间序列数据存储方法,每个采样数据仅仅占有3.5字节左右空间,上百万条时间序列,30s间隔,保留60天,大概花费200G磁盘空间

4.prometheus主要特征

  • 多维度数据模型
  • 灵活的查询语言
  • 不依赖分布式存储,单个服务器节点是自主的
  • 以HTTP方式,通过pull模型拉取时间序列数据
  • 可以通过中间网关支持push模型
  • 通过服务发现或静态配置,来自动发现目标服务对象
  • 支持多种多样的图表和界面展示

5.prometheus组件介绍

prometheus主要由以下部分组成:

  • prometheus server:用于抓取和存储时间序列数据

  • exporters:主动拉取数据的插件

  • pushgateway:被动拉取数据的插件

  • altermanager:告警发送模块

  • prometheus web ui:界面化,也包含结合grafana进行数据展示或告警发送

组件详细介绍:

  • prometheus server:用于收集监控主机和存储时间序列数据
    • 也就是收集监控主机是数据并进行存储
  • client library:客户端库,检测应用程序代码,当prometheus抓取实例的http端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端
    • 类似于zabbix-agent客户端程序,当server端抓取数据时,将所有采集到的数据发送给server
  • exporters:prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端
  • alertmanager:从prometheus server接收到alerts后,会进行去重、分组,并路由到相应的接收方,发出报警
    • 报警程序,常用的方式有:邮件、微信、钉钉
  • grafana:监控仪表盘,也就是图形展现的程序
  • pushgateway:各个目标主机可以上报数据到pushgateway,然后prometheus server统一从pushgateway拉取数据
    • 类似于zabbix-proxy

6.prometheus原理及架构

原理:

​ 1.prometheus server可以定期从活跃的目标监控主机上拉取监控数据,目标监控主机可以通过配置静态job或者服务发现的方式被prometheus server采集到的,这种方式是默认的pull方式拉取指标,也可以通过pushgateway去收集目标监控主机的数据最后上报给prometheus server,也可以通过自带的exporter采集相应的数据

​ 2.prometheus把采集到的监控指标数据保存到本地磁盘或者数据库中

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

​ 4.altermanager通过配置报警接收方,发送报警到邮箱、微信、钉钉等

​ 5.prometheus自带的web ui界面使用promsql查询语言,可以查询监控数据

​ 6.grafana可接入prometheus数据源,展示监控数据
prometheus监控系统架构原理及组件介绍_第1张图片

你可能感兴趣的:(promethus从入门到精通,prometheus)