活学活用Prometheus(五):Prometheus Exporter详解

随着Prometheus的流行,很多系统都已经自带了用于Prometheus监控的接口,例如etcd、Kubernetes、coreDNS等,所以这些系统可以直接被Prometheus所监控。但是,有很多应用目前还没有提供用于Prometheus监控的接口,针对这这类应用,Prometheus提出了Exporter的解决方案。

Exporter是一个采集被监控系统的监控数据,通过Prometheus监控规范对外提供数据的组件。简单来说,为了采集被监控系统的监控样本数据,需要安装一个程序,该程序对外暴露了一个用于获取当前监控样本数据的HTTP访问地址,这样的一个程序称为Exporter,Exporter的实例称为一个Target。Prometheus通过轮询的方式定时从Target中获取监控数据样本,并且存储在数据库当中。

Prometheus官方和社区提供了非常丰富的Exporter,例如Node Exporter、HAProxy Exporter、MySQL Exporter、Redis Exporter和Rabbitmq Exporter等等。

这些Exporter主要通过被监控对象提供的监控相关的接口获取监控数据,通过例如以下几种方式获取到被监控对象的监控指标:

  • HTTP/HTTPs,例如Rabbitmq Exporter通过HTTPs接口获取监控数据。

  • TCP,例如Redis Exporter通过Redis提供的系统监控相关命令获取监控指标,MySQL Server Exporter通过MySQL开放的监控相关的表获取监控指标

  • 本地文件,例如Node Exporter通过读取整个proc文件系统下的文件,得到整个系统的当前状态。

  • 标准协议,例如IPMI Exporter通过IPMI协议获取硬件相关信息,并将这些信息的格式进行转化,输出为Prometheus能够识别的监控数据格式,从而扩大Prometheus的数据采集能力

所有的Exporter程序都需要按照Prometheus的规范返回监控的样本数据。

你可能感兴趣的:(活学活用Prometheus,prometheus)