Seite wählen

check_influxdb ist jetzt öffentlich verfügbar!

von | Sep 21, 2023 | NETWAYS

InfluxDB ist eine Zeitreihendatenbank, die gerne für Performance Monitoring genutzt wird. Zusammen mit dem Telegraf Agenten, kann man so ziemlich alle vorstellbaren Formate einliefern und diese in Metriken oder Logs transformieren. Hat man die Daten einmal in der Datenbank, kann man entweder direkt in InfluxDB mittels „Checks“ gegen Schwellwerte prüfen, oder man hat dafür ein zusätzliches Monitoring Tool im Einsatz, beispielsweise Icinga. Für letzteres braucht man aber ein Check-Plugin.

Mit check_influxdb lässt sich der Zustand von InfluxDB v1 und v2 Instanzen prüfen. Außerdem können flux Abfragen an InfluxDB v2 geschickt werden und ausgewertet werden. Das Check-Plugin haben wir in Golang geschrieben, das heißt, es werden keine weiteren Abhängigkeiten auf der Icinga Instanz benötigt.

https://github.com/NETWAYS/check_influxdb

Hier einige Beispiele für die Nutzung:

Wir können zunächst mal grundlegend prüfen, ob unsere InfluxDB Instanz erreichbar ist. Dafür nutzen wir den health Unterbefehl:

$ check_influxdb health 
[OK] - InfluxDB Status: pass

$ check_influxdb health 
[CRITICAL] - InfluxDB Status: fail

Mit dem query Unterbefehl können wir direkt flux Abfragen auswerten lassen und gegen Schwellwerte prüfen. Dabei können wir die flux Abfrage entweder direkt in der Kommandozeile übergeben, oder in einer Datei ablegen:

check_influxdb query --token "${INFLUX_TOKEN}" --org myorg --bucket telegraf --warning 1 --critical 2 \
--flux-string 'from(bucket:"monitor")|>range(start:-1h)|>filter(fn:(r)=>r["_measurement"]=="cpu")|>filter(fn:(r)=>r["_field"]=="usage_user")|>aggregateWindow(every:1h,fn:mean)'

[CRITICAL] - InfluxDB Query Status | cpu.usage_user=0.04;1;2
exit status 2

check_influxdb query --token "${INFLUX_TOKEN}" --org myorg --bucket telegraf --warning 50 --critical 100 \
--flux-file mem.flux

[WARNING] - InfluxDB Query Status | mem.active=68.9;50;100
exit status 1

Natürlich können bei beiden Befehlen Adresse, TLS Konfiguration und Authentifizierung als Parameter angeben. Außerdem lässt sich Unterstützung für InfluxDB v3 einbauen, sobald diese Version öffentlich verfügbar ist.

Das Plugin ist ab sofort verfügbar und wir freuen uns über Feedback. Und hast du einen Bug gefunden, oder brauchst ein neues Feature? Melde dich einfach auf GitHub!

Markus Opolka
Markus Opolka
Senior Consultant

Markus war nach seiner Ausbildung als Fachinformatiker mehrere Jahre als Systemadministrator tätig und hat währenddessen ein Master-Studium Linguistik an der FAU absolviert. Seit 2022 ist er bei NETWAYS als Consultant tätig. Hier kümmert er sich um die Themen Container, Kubernetes, Puppet und Ansible. Privat findet man ihn auf dem Fahrrad, dem Sofa oder auf GitHub.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Mehr Beiträge zum Thema NETWAYS

Monthly Snap April 2024

Hallo zusammen! Bei NETWAYS war im April einiges los. Von dem OSCamp in Nürnberg, zum Waffeltag im Büro war hier immer Action. Und die Kollegen haben fleißig ihr Knowhow weitergegeben in unserem Blog https://www.netways.de/blog/ Wir haben hier die Highlights für Euch...

The Countdown for DevOpsDays Berlin 2024 is on!

It’s just one week to go until DevOpsDays Berlin is about to start. The organizing team’s preparations are in full swing, and they can’t wait to finally welcome you there. Let's build up the excitement together!   A Fantastic Program The two-day schedule provides...

Vielseitige Einblicke der Abteilungswoche bei NETWAYS

In der modernen Arbeitswelt ist es wichtig, über den eigenen Tellerrand hinauszuschauen und ein Verständnis für verschiedene Bereiche eines Unternehmens zu entwickeln. Genau aus diesem Grund wurde bei NETWAYS die Idee der Abteilungswoche geboren. In dieser Woche hatte...