Anlieferung Prometheus - Push Interface

<< Click to Display Table of Contents >>

Navigation:  Prometheus - Kennzahlen >

Anlieferung Prometheus - Push Interface

Einführung

Wenn Prometheus Daten sammelt, dann geht die Initiative i.d.R. von dem Prometheus-Server aus. Das bedeutet dann natürlich auch, dass das abgefragte System auch erreichbar ist. Das muß nun nicht immer der Fall sein - bei mir ist das sogar i.d.R. nciht der Fall.

In solchen Fällen muß das Zielsystem die Möglichkeit besitzen, die Prometheus-Daten aufzubereiten und diese dann auch an Prometheus zu senden - und dazu gibt es mehrere Lösungsmöglichkeiten von Prometheus.

PUSH-Interface

Normalerweise lauscht das PUSH-Interface auf allen Schnittstellen. Das sollte man unterbinden, denn ohne Absicherung kann dann jeder Daten senden an das Interface. Also besser absichern, und es sollte nur noch auf der Adresse "127.0.0.1:9091" lauschen (mit der Option "--web-listenaddress="127.0.0.1:9091").

Damit das PUSH-Interface trotzdem von außen erreichbar ist, wird es durch Apache durchgeschleust. So etwas macht die folgende Konfiguration in einer Apache-Domain-Datei:

 

ProxyPass         "/pushgateway/" "http://127.0.0.1:9091/"

ProxyPassReverse  "/pushgateway/" "http://127.0.0.1:9091/"

 

<Location "/pushgateway/">

  AuthType Basic

  AuthName "Pushgateway"

  AuthUserFile /etc/apache2/pushgateway.htpasswd

  Require valid-user

</Location>

 

Und der Zugriff auf diese Resource wird über ein Kennwort gesichert. Die oben definierte Paßwort-Datei kann man einfach mittels:

 

sudo htpasswd -c /etc/apache2/pushgateway.htpasswd metrics_pusher

 

erzeugen für einen Benutzer "metrics_pusher". Diese Informationen werden wir später bei der Gemstone Anbindung benötigen.

Eigener Telemetrie Collector oder eine eigene Bridge

Ich habe mich dafür entschieden, eine eigene Bridge zu entwickeln, die die Daten über RabbitMQ angeliefert bekommt und dann die Daten lokal dem Prometheus Server anbietet.

Diese eigene Bridge findet man in dem github Repository.