查看原文
其他

监控篇 | Prometheus 认识

刘宝龙 杰哥的IT之旅 2019-05-08

怎样才算是合格的运维工程师?系统监控是必备技能!

开 篇

什么是Prometheus?

Prometheus是由SoundCloud使用Go语言开发;

它是开源监控报警系统和时序列数据库(TSDB)。

它是Google BorgMon监控系统的开源版本。

2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Prometheus纳入其下第二大开源项目。Prometheus目前在开源社区相当活跃。

Prometheus和Heapster(Heapster是K8S的一个子项目,用于获取集群的性能数据。)相比功能更完善、更全面。Prometheus性能也足够支撑上万台规模的集群。

Prometheus的特点

New Menu

  • 多维度数据模型。

  • 灵活的查询语言。

  • 不依赖分布式存储,单个服务器节点是自主的。

  • 通过基于HTTP的pull方式采集时序数据。

  • 可以通过中间网关进行时序列数据推送。

  • 通过服务发现或者静态配置来发现目标服务对象。

  • 支持多种多样的图表和界面展示,比如Grafana等

Prometheus组件

New Menu

Prometheus生态系统由多个组件组成,它们中的一些是可选的。多数Prometheus组件是Go语言写的,这使得这些组件很容易编译和部署。

Prometheus Server 

主要负责数据采集和存储,提供PromQL查询语言的支持。

客户端SDK 

官方提供的客户端类库有go、java、scala、python、ruby,其他还有很多第三方开发的类库,支持nodejs、php、erlang等。

Push Gateway

支持临时性Job主动推送指标的中间网关。

PromDash

使用Rails开发可视化的Dashboard,用于可视化指标数据。

Exporter

Exporter是Prometheus的一类数据采集组件的总称。它负责从目标处搜集数据,并将其转化为Prometheus支持的格式。与传统的数据采集组件不同的是,它并不向中央服务器发送数据,而是等待中央服务器主动前来抓取。

alertmanager

警告管理器,用来进行报警。

prometheus_cli

命令行工具。

其他辅助性工具

多种导出工具,可以支持Prometheus存储数据转化为HAProxy、StatsD、Graphite等工具所需要的数据存储格式。

未完待续


没时间解释了,快长按左边二维码关注我们~~


    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存