Seite wählen

NETWAYS Blog

Icinga 2 mit InfluxDB 2

Die Überwachung von Infrastruktur und Software ist eine grundlegende Sache in der IT. Beim Monitoring spielt aber nicht nur der Status und die Benachrichtigung der zu überwachenden Objekte eine wesentliche Rolle, sondern auch die Aufbewahrung und die nachträgliche Betrachtung von Performancedaten. Diese lassen sich bei Icinga 2 anhand von Check Plugins ermitteln und mit unterschiedlichen Writern bzw. Features u.a. an InfluxDB weiterleiten.

Nach der Installation von Icinga 2 und influxDB 2 können wir einen Bucket erstellen in dem wir später die Icinga 2 Metriken aufbewahren können.

# influx bucket create -n icinga
ID                  Name      Retention   Shard group duration     Organization ID 
b07cac747d7d6dd7    icinga    infinite    168h0m0s                 74cacb1ac05bfe71

Icinga 2 benötigt einen Token um in diesen Bucket schreiben zu können. Den Token für die Schreibberechtigung können wir wie folgt generieren.

# influx auth create --write-bucket b07cac747d7d6dd7

Damit Icinga 2 mit dem Export der Metriken anfängt, muss das folgende Object konfiguriert werden.

# cat /etc/icinga2/features-available/influxdb2.conf
object Influxdb2Writer "influxdb2" {
  host = "127.0.0.1"
  port = 8086
  organization = "icinga"
  bucket = "icinga"
  auth_token = "TKfmBkRdJ2HfjcVk35nwr0eX0TiYCbEcBe8xDh-_dIafGFpGalTe5HlCAKt6ZlPlJsyw4uH8Mfk4Mt7uI-xqyQ=="
  flush_threshold = 1024
  flush_interval = 10s

Ab diesem Zeitpunkt können wir die Daten im InfluxDB UI auf ansehen. Die dortigen Dashboards kann man z. B. durch Grafana oder InfluxDB zusammenstellen bzw. anzeigen lassen. Um mehr über InfluxDB 2 und Grafana zu erfahren, könnt Ihr die InfluxDB Schulung buchen & besuchen.

Afeef Ghannam
Afeef Ghannam
Systems Engineer

Afeef hat seine Ausbildung Als Fachinformatiker in Richtung Systemintegration im Juli 2020 bei NETWAYS absolviert, seitdem unterstützt er die Kolleg:innen im Operations Team der NETWAYS Professional Services bei der Betriebsunterstützung. Nach der Arbeit macht er gerne Sport, trifft Freunde oder mag es Filme zu schauen.

Stresstest für InfluxDB

Nach einer frischen Installation von InfluxDB, egal ob auf einem dedizierten System oder nicht, frägt man sich vielleicht wie leistungsfähig das Graphing Setup nun wirklich ist oder wie viel es denn eigentlich verträgt?

Diese Fragen lassen sich mit influx-stress beantworten. Das in Golang geschriebene Helferchen ist über GitHub erhältlich und feuert beliebig viele einstellbare Metriken an InfluxDB. Dabei spielt es keine Rolle ob es lokal oder remote von einem anderen System aus aufgerufen wird.

Installation

Nachdem das Repository heruntergeladen wurde, wird das Ganze mit „go build“ kompiliert:

# git clone https://github.com/influxdata/influx-stress.git
# cd influx-stress/cmd/influx-stress/
# go build -o /usr/local/bin/influx-stress

Vorbereitungen

Das Tool unterstützt derzeit nur die Authentifizierung für v1, allerdings kann man auf diese bei Bedarf auch komplett verzichten. Mit InfluxDB OSS 2.x kann dafür die „InfluxDB 1.x compatibility API“ benutzt werden. Außerdem empfiehlt es sich für die Tests ein eigenes Bucket anzulegen um es später in einem Rutsch wieder zu löschen oder um gleich eine passende Retention Policy zu definieren.

# influx bucket create -n stress
# influx bucket list
# influx v1 auth create --username stress --password ****** --write-bucket f596604f968324ff
# influx v1 dbrp create --bucket-id f596604f968324ff --db stress --rp infinite

Let’s go!

Sind die Vorbereitungen gemacht, kann es losgehen. Mit „-f“ läuft die Abgabe der Metriken so schnell wie möglich (fast as possible). Ich würde empfehlen zumindest noch mit „-r“ (runtime) die Laufzeit einzuschränken, andernfalls würde es endlos laufen. Durch Eingabe von „–host“ definiert man den Remotehost (Standard: „http://localhost:8086“).

# /usr/local/bin/influx-stress insert -f -r 1m --user stress --passs ****** --db stress

Eine beispielhafte Serie (für Icinga) könnte so aussehen: (Standard: „ctr,some=tag n=0i“)

# /usr/local/bin/influx-stress insert -r 1m ping4,hostname=agent.example.com,service=ping4,metric=rta crit=0.200000,min=0,unit="seconds",value=0.200000,warn=0.100000 --user stress --passs ****** --db stress

Nach erfolgtem Lauf bekommt man sowohl den Durchsatz (Throughput) als auch die geschriebenen Punkte (Points Written) angezeigt. Außerdem werden die Standardeinstellungen für die nicht definierten Parameter ausgegeben, die sich natürlich aber auch noch abändern lassen.

Using batch size of 10000 line(s)
Spreading writes across 100000 series
Output is unthrottled
Using 20 concurrent writer(s)
Running until ~18446744073709551615 points sent or until ~1m0s has elapsed
Write Throughput: 212335
Points Written: 13100000

Wer mehr zum Thema InfluxDB erfahren möchte, dem kann ich neben unseren üblichen Dienstleistungen auch unser InfluxDB & Grafana Training wärmstens ans Herz legen.

Markus Waldmüller
Markus Waldmüller
Head of Strategic Projects

Markus war bereits mehrere Jahre als Sysadmin in Neumarkt i.d.OPf. und Regensburg tätig. Nach Technikerschule und Selbständigkeit ist er nun Anfang 2013 bei NETWAYS als Senior Manager Services gelandet. Seit September 2023 kümmert er sich bei der NETWAYS Gruppe um strategische Projekte. Wenn er nicht gerade die Welt bereist, ist der sportbegeisterte Neumarkter mit an Sicherheit grenzender Wahrscheinlichkeit auf dem Mountainbike oder am Baggersee zu finden.

Neues von den Influxdays EMEA 2021

Auf den influxdays kündigt Paul Dix, CTO von InfluxData, einen neuen Core names iOx für influxDB an. Dieser Schritt löst spontan Unsicherheit aus. Hier ein paar Fakten um die Gemüter zu beruhigen:

InfluxDB 2.x Open Source wird, so wie es jetzt existiert, parallel mit regelmäßigen Point-Releases weiterentwickelt.
InfluxDB IOx wird SQL, InfluxQL und Flux unterstützen.
InfluxDB IOx wird in einem zukünftigen Release ein optionales Speicher-Backend für InfluxDB werden.
Die Implementierung durch Rust und Apache Arrow soll eine höhere Sicherheit erreichen. Auf Grund verschiedener Optimierungen am Speicherverhalten soll die Datenmenge verringert und gleichzeitig die Abfragegeschwindigkeit erhöht werden.
InfluxDB Enterprise-Kunden werden in der zweiten Hälfte des Jahres 2021 über eine kommerziell unterstützte Version von InfluxDB IOx und InfluxDB Enterprise verfügen.

Das war nicht das einzige Thema auf der online abgehaltenen Konferenz.
In dem ausgewogenen Programm konnte man sich anschauen, wie man mittels Telegraf Daten in Richtung influxDB schreibt. In einem anderen Vortrag ging es um Dashboards, Alerts und Tasks.

Ein Highlight war für mich der Talk von Aengus Rooney, der zwar trotz des Titels „What’s New with Grafana and InfluxDB“ erstaunlich wenig Neuerungen gezeigt hat, jedoch mit einem längeren Hands-On die Möglichkeiten von Grafana anhand eines selbst erstellten Handels Terminals für Kraken/Bitcoin demonstriert hat.

Alle Aufzeichnungen der Konferenz werden ab 31. Mai veröffentlicht. Man findet sie, wie auch die Videos vergangener Konferenzen, auf den Seiten der influxdays und auf youtube.

Wer mehr über influx und die Möglichkeiten erfahren möchte kann sich auch bei NETWAYS im Rahmen eines zweitägigen Trainings informieren.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

Icinga2 und Influx2: So bringen wir beide zum reden

Influxdata LogoAuch wenn die Überschrift es vermuten lässt. Das hier ist kein Clickbait sondern eine Kurzanleitung zum Thema.

Das Problem: Seitdem die time series database influxdb in der Version 2.0 erschienen es kann man das icinga2 influx feature nicht mehr ohne weiteres nutzen. Ein Grund ist, es gibt keine influx database und keine influx retention policy mehr. Beides ist konzeptuell jetzt in sogenannten buckets zusammengefasst. Damit nicht genug. Man greift nicht mehr mit einem user/password auf influx zu, sondern mit Hilfe eines Tokens

Die Lösung: Es gibt den v1 compatibility mode. So legt man einen bucket mit einer retention policy von 14 Tagen an und nutzt ihn.

$ influx bucket create --name icinga2 --org myCompany --retention 336h
$ influx bucket list
ID Name Retention Organization ID
9be740dd7f1e5dd0 _monitoring 168h0m0s e3010cef6e5b64bf
d6e0a548f3ea1451 _tasks 72h0m0s e3010cef6e5b64bf
4d59849554d88e25 icinga2 336h0m0s e3010cef6e5b64bf
$ influx v1 auth create --username icinga2 --write-bucket 4d59849554d88e25
$ influx v1 dbrp create --bucket-id 4d59849554d88e25 --db icinga2 --rp 14Tage

Das ganze lässt sich jetzt einfach auf Seiten Icinga nutzen:

$ cat /etc/icinga2/features-enabled/influxdb.conf

object InfluxdbWriter „influxdb“ {
host = „127.0.0.1“
port = 8086
database = „icinga2“
flush_threshold = 1024
flush_interval = 10s
username = „icinga2“
password = „password“
enable_send_thresholds = true
enable_send_metadata = true
[…]
}

Nach einem icinga restart kann man im influx Frontend sehen, dass Informationen eingehen. Um mehr über influx und grafana zu lernen bietet Netways eine 2-tägige InfluxDB Schulung  an.

Christoph Niemann
Christoph Niemann
Senior Consultant

Christoph hat bei uns im Bereich Managed Service begonnen und sich dort intensiv mit dem internen Monitoring auseinandergesetzt. Seit 2011 ist er nun im Consulting aktiv und unterstützt unsere Kunden vor Ort bei größeren Monitoring-Projekten und PERL-Developer-Hells.

NEU! InfluxDB & Grafana Trainings – Sichere Dir jetzt Deinen Platz!

Daten auswerten, Wissen sammeln und ein erfolgreiches Performance Monitoring starten: Nach dieser neuen Schulung wirst Du Profi darin sein! Unsere Open Source Experten vermitteln Dir theoretisches Basiswissen, welches Du in praktischen Übungen und Beispielen direkt festigst, sodass Du nach dem Training direkt mit InfluxDB und Grafana loslegen kannst!

Was sind InfluxDB & Grafana?

InfluxDB ist eines der bekanntesten Open Source Tools aus dem Bereich des Performance Monitorings. Es empfängt Daten aus unterschiedlichen Quellen wie z.B. Server oder Applikationen. Mithilfe von Grafana werden Deine Daten zur späteren Analyse visuell dargestellt.

Inhalte der InfluxDB & Grafana Schulung

Folgende Themen werden in diesem Training behandelt:

  • Einführung in Performance Graphing
  • Überblick über unterschiedliche Graphing Komponenten
  • Aufbau und Installation von InfluxDB
  • Verwendung von InfluxDB Queries
  • Festlegen von InfluxDB UI und Chronograf
  • Konfiguration von Dashboards
  • Nutzung und Erweiterung von Telegraf
  • Anbindung von CollectD und Icinga
  • Alternative Backends wie Graphite und OpenTSDB
  • Integration in Icinga Web
  • Troubleshooting und Best Practices
  • Alternative Komponenten

Die Schulung eignet sich für Dich, wenn …

  • Du Anwender*in bist und Zeitseriendaten aus verschiedenen Quellen – insbesondere Icinga – sammeln, verarbeiten und visualisieren willst.
  • Du die Grundlagen von Linux beherrschst
  • Und Du Dich sicher in einem Texteditor Deiner Wahl bewegen kannst

Was NETWAYS Trainings so besonders macht

Praxisnah

Unsere Schulungsleiter arbeiten regelmäßig in Software- und Kundenprojekten. Sie wissen, worauf es tatsächlich ankommt und teilen dieses Wissen mit Dir.

Individuell

Wir legen Wert darauf, die Gruppengrößen auf 10 Teilnehmer*innen zu begrenzen, um einen effizienten Lernprozess sicherzustellen. Freue Dich auf Deine individuelle Betreuung!

Kommunikativ

Auch in Zeiten wie diesen, ist uns der Austausch von Kursteilnehmer*innen untereinander besonders wichtig. Wir bieten Dir verschiedene Kanäle und Wege, sodass dem nichts mehr im Wege steht.

Die Trainings im Überblick:

An folgenden Terminen finden die Trainings jeweils von 09:00 Uhr bis 17:00 Uhr statt.

  1. – 20.01.2021 | online
  2. – 21.04.2021 | online
  3. – 27.10.2021 | online

Haben wir Dein Interesse geweckt, dann informiere Dich gerne mehr über unsere InfluxDB & Grafana Schulung.

Wenn Du Dich bereits für diese Schulung entschieden hats, kannst Du Dich hier direkt anmelden.

 

Katja Kotschenreuther
Katja Kotschenreuther
Manager Marketing

Katja ist seit Oktober 2020 Teil des Marketing Teams. Als Manager Marketing kümmert sie sich hauptsächlich um das Marketing für die Konferenzen stackconf und OSMC sowie unsere Trainings. Zudem unterstützt sie das Icinga Team mit verschiedenen Social Media Kampagnen und der Bewerbung der Icinga Camps. Sie ist SEO-Verantwortliche für all unsere Websites und sehr viel in unserem Blog unterwegs. In ihrer Freizeit reist sie gerne, bastelt, backt und engagiert sich bei Foodsharing. Im Sommer kümmert sie sich außerdem um ihren viel zu großen Gemüseanbau.