Seite wählen

NETWAYS Blog

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.

Icinga for Windows – Hyper-V und Cluster Plugins Preview

Am heutigen Montag möchten wir mal unsere Icinga Kollegen zu Wort kommen lassen. Es gibt einiges an Neuerungen im Bereich Icinga for Windows!


Seit letztem Mittwoch haben wir großartige Neuigkeiten für alle, die Icinga zur Überwachung von Hyper-V und Windows Cluster Umgebungen nutzen. Seit geraumer Zeit arbeiten wir an einer Vielzahl neuer Plugins, um ein besseres Monitoring für Hyper-V und Windows Cluster zu bieten. Die neuen Plugins basieren auf unserem PowerShell Framework, das mithilfe von Icinga for Windows bereitgestellt wird. Für die neuen Plugins haben wir uns dazu entschieden, anstelle eines finalen Releases erst eine Preview-Phase zu durchlaufen.

 

Warum eine Preview-Phase?

Während der Entwicklungs- und Testphase haben wir bemerkt, dass wir unterschiedliche Ergebnisse bekamen, je nach der Konfiguration der Systeme. Wir glauben, dass wir die meisten allgemeinen Issues, auf die wir gestoßen sind, mittlerweile lösen konnten.  Gerne würden wir aber weiteres Feedback unserer User sammeln. Daher können die Plugins direkt vom Master Branch auf GitHub aus genutzt werden. Die Branches sind in den Hyper-V und Cluster Repositories zu finden. Falls Ihr auf ein Problem stoßt, dann bitten wir Euch, hier ein GitHub Issue aufzumachen, jeweils im Hyper-V oder im Cluster Projekt.

 

Warum eine neue Modul-Sammlung?

Um sicherzustellen, dass wir häufiger Plugins veröffentlichen können und um die Entscheidung zu erleichtern, welche Plugins auf Euren Systemen installiert werden sollen, haben wir entschieden, neue Repositories und neue Modul-Sammlungen zu erstellen, die auf der Art des jeweiligen Monitorings basieren. Nachfolgend eine kurze Liste, wie wir die Sortierung der Plugins konzipiert haben:

Zusätzlich dazu haben wir übergreifende Anforderungen für einige Plugins implementiert. Zum Beispiel muss das Icinga PowerShell Cluster Modul zusätzlich installiert werden, um ein zuverlässiges Monitoring sicherzustellen. Dies wird nicht per Plugin Dependency erzwungen, da es Umgebungen gibt, innerhalb derer Cluster Shared Volumes nicht zu diesem Zweck genutzt werden. Sollte das Module auf einem System benötigt werden um File States von virtuellen Maschinen auszulesen, dann wird der Output des Plugins darauf hinweisen. Nachdem die Cluster Plugins installiert wurden, werden die Werte wie erwartet ausgegeben.

 

Monitoring von Hyper-V

Mit dem Icinga PowerShell Cluster liefern wir die folgenden fünf Plugins:

Solltet Ihr weitere Anforderungen oder Ideen zu Funktionen haben, die wir mit dem Monitoring abdecken sollen, dann würden wir uns über Eure Features Requests sehr freuen!

Für die Installation des Hyper-V Plugins kann einfach der Installation Guide genutzt werden. Falls Euer System keinen Zugriff auf das Internet hat und die letzte Version des Frameworks installiert ist, dann kann einfach folgendes Kommando ausgeführt werden:

Install-IcingaFrameworkComponent -Name HyperV -Snapshot;

 

Monitoring von Windows Clustern

Für die Überwachung von Windows Clustern haben wir uns entschlossen, als erstes folgende drei Monitoring Plugins zu veröffentlichen:

Genauso wie bei Hyper-V freuen wir uns über Feature Requests, um weitere Monitoring-Optionen zu entwickeln.

Für die Installation des Cluster Plugins kann einfach der Installation Guide genutzt werden. Falls Euer System keinen Zugriff auf das Internet hat und die letzte Version des Frameworks installiert ist, dann kann einfach folgendes Kommando ausgeführt werden:

Install-IcingaFrameworkComponent -Name Cluster -Snapshot;

Was kommt als nächstes?

Für diese Plugin-Sammlungen würden wir gerne soviel Feedback wie möglich sammeln und falls notwendig, offene Issues während der Preview-Phase lösen. Wenn es hier keine großen Show-Stopper gibt, dann möchten wir beide Plugin-Sammlungen bis Ende Februar als Version v1.0.0 veröffentlichen.

Wir hoffen, dass Ihr Freude habt an den neuen Plugins und freuen uns auf Euer Feedback, Eure Ideen und Eure Beiträge um Icinga for Windows noch weiter auszubauen. So können wir sicherstellen, den Großteil der Microsoft-Welt abzudecken! Bleibt gesund und habt eine gute Zeit!


 

Erstmal vielen Dank an die Kollegen von Icinga! Aber auch wir wollen hier noch zwei Fragen beantworten:

Ihr wollt die Plugins einsetzen, wisst aber nicht wie?

Auch hier können wir als Icinga Partner helfen. Wir bieten neben dem klassischen Support natürlich auch Consulting und mehrere Schulungen zum Thema Icinga. Beim Consulting bestimmt Ihr, wo es lang geht. Bei den Schulungen bieten wir Euch Programme und Lerninhalte, die auf verschiedene Niveaus und Themen ausgerichtet sind. Und falls Ihr mit Eurer Umgebung Probleme habt, dann kann unser Support helfen. Sprecht uns einfach an – wir finden für Euch das passende!

Monitoring Hardware

Hier kann unser Online Shop weiterhelfen! Die meisten Geräte unserer Hersteller können per Plugin in Icinga integriert und somit deren Funktionen genutzt werden. Sehr beliebt sind hier Messgeräte und Sensoren aller Art sowie SMS-Gateways zur Alarmierung. Aufgrund der Nutzung von Plugins durch Icinga können hier auch selbst neue Plugins entwickelt werden, die genau für Euer Gerät passen.

Nicole Frosch
Nicole Frosch
Sales Engineer

Ihr Interesse für die IT kam bei Nicole in ihrer Zeit als Übersetzerin mit dem Fachgebiet Technik. Seit 2010 sammelt sie bereits Erfahrungen im Support und der Administration von Storagesystemen beim ZDF in Mainz. Ab September 2016 startete Sie Ihre Ausbildung zur Fachinformatikerin für Systemintegration bei NETWAYS, wo sie vor allem das Arbeiten mit Linux und freier Software reizt. In ihrer Freizeit überschüttet Sie Ihren Hund mit Liebe, kocht viel Gesundes, werkelt im Garten, liest...

Elastic Stack Trainings – Last Minute Call

Möchtest Du mehr rund um Elasticsearch, Logstash, Kibana & Beats erfahren? Schau Dir doch mal unsere Elastic Stack Schulungen an. Du hast bereits am 02. Februar 2021 die Chance, in die Elastic Stack Welt einzutauchen. Selbstverständlich hast Du, vor allem in diesen Zeiten, bei uns die Möglichkeit, das Training ganz entspannt von zuhause aus mitzuverfolgen.

 

Wichtige Informationen auf einem Blick:

Was? Elastic Stack Training

Wann? 02.02. – 04.02.2021

Wo? Online

 

Das kommt an Inhalten auf Dich zu:

  • Einführung in modernes Log-Management
  • Einführung in den Elastic Stack
  • Elasticsearch Cluster Basics
  • Logstash Basics
  • Einrichtung von Log-Shippern wie Syslog und Beats
  • Datenaufbereitung durch Filter zur Modifikation von Logs und Events
  • Richtiger Einsatz von Kibana zur Analyse der Daten
  • Elastic Stack Architektur-Konzepte
  • Elastic Stack Maintenance

 

 

Für wen ist diese Schulung geeignet?

Wenn Du bereits fundierte Linux-Kenntnisse hat, Dich grundsätzlich mit einem Text-Editor auskennst und Dich in der Shell bewegen kannst, ist diese Schulung für Dich geeignet. Schau gerne mal auf unserer Website vorbei, um mehr Infos zur Elastic Stack Schulung zu erhalten.

 

Was macht eine NETWAYS Schulung so besonders?

Individuell

Praxisnah

Kommunikativ

Wir legen Wert darauf, die Gruppengrößen auf 10 Kursteilnehmer*innen zu begrenzen, um einen effizienten Lernprozess sicherzustellen. Unsere Schulungsleiter wissen, worauf es ankommt und teilen ihre Kenntnisse gerne mit Dir. Woher sie das wissen? Sie arbeiten regelmäßig in Software- und Kundenprojekten.

Auch in Zeiten des Homeoffices ist uns der Austausch von Teilnehmer*innen untereinander besonders wichtig. Darum stellen wir Euch verschiedene Wege zur Verfügung, um einen Informationsaustausch online zu ermöglichen.

 

Weitere Termine für Elastic Stack Trainings

Du hast am 02.02. – 04.02.2021 keine Zeit, möchtest aber trotzdem mehr über Elastic Stack erfahren? Dann melde Dich doch einfach zu einem anderen Termin an.

Online | 27.04. – 29.04.2021

Online | 20.07. – 22.07.2021

Nürnberg | 07.12. – 09.12.2021

Alle weiteren Informationen und die Anmeldung findest Du auf  unserer Seite zur Elastic Stack Schulung.

 

Termine zu anderen Trainings:

Elastic Stack Schulung| Online | 02.02. – 04.02.2021

GitLab Fundamentals Training | Online | 10.02. – 11.02.2021

Terraform mit OpenStack Training | Online | 23.02. – 24.02.2021

Fundamentals for Puppet | Online | 23.02. – 25.02.2021

 

Wir hoffen, es war etwas dabei für Dich. Schau gern mal bei uns vorbei. Dort findest Du jede Menge weitere Open Source Trainings. Wir freuen uns auf Dich!

Natalie Regn
Natalie Regn
Junior Marketing Manager

Natalie macht seit September 2019 ihre Ausbildung zur Kauffrau für Büromanagement hier bei NETWAYS. Vor ihrer Zeit bei NETWAYS war sie ein Jahr als Au-pair in Schottland unterwegs. Passend dazu widmet sie sich seit vielen Jahren dem Spielen der Great Highland Bagpipe. Natalie ist in ihrer Freizeit nicht nur musikalisch unterwegs, sondern auch sportlich. Sie trainiert im Fitnessstudio, geht gerne in den Kletterpark und in die Trampolinhalle.

Von Fackeln, elektrischen Schafen und Datenpunkten

Hallo und Willkommen im Jahr 2021! sheep

Damit sind wir offiziell 2 Jahre nach dem originalen Zeitablauf von Blade Runner welcher 2019 spielt.
Hmm, nirgends sind Nexus 6 Modelle die Rumlaufen und von elektrischen Schafen träumen.
(Auch keine Flugautos) *seufz*. Egal !!

Kommen wir zu dem eigentlichen Thema diese Woche.
Ich würde euch gern im neuen Jahr kurz erklären wie ihr mit einfachen Bordmitteln & wenig Aufwand aus den den meisten APIs Prometheus Daten exportiert ohne Zusatzsoftware zu installieren.

Explainer!! Was macht man mit den Fackeln https://prometheus.io/ ist eine Software welche mit ihrer eigenen Time Series Database auch Graphen Zeichnen kann und einen ziemlichen Erfolg hat, https://prometheus.io/docs/prometheus/latest/storage/ wenn man allerdings aus seiner Allerweltsapplikation Daten nach Prometheus exportieren will ist man leicht Aufgeschmissen. Viele Anbieter verkaufen teuer Plugins welche dies für Software tun oder es gibt halt keine Schnittstelle.

Ich versuche in meinem Beispiel aufzuzeigen wie man sich selbst einen Prometheus Output baut und ihn mit dem Prometheus node_exporter zu der Haupt Prometheus Instanz bringt.

Was brauchen wir an Software dafür machen wir einen kleinen Einkaufszettel 🙂

Die Zutaten:
1x Software welche eine API zur verfügung stellt – als Beispiel nehmen wir Icinga 2 kann aber eine Software eurer Wahl sein
1x Prometheus node_exporter (muss man leider zusätzlich installieren)
1x crontab – bringt hoffentlich eure Linux Distro von Haus aus mit
1x curl – hoffentlich auch schon von “Werk” ab mit an Bord
1x awk – same here auch hoffentlich schon mit an Bord
1x jq – Okay .. ich geb zu das muss man nachinstallieren (ich versuche mich gerade unter dem Schreibtisch zu verstecken)
https://stedolan.github.io/jq/download/

Nun wo wir die Zutaten kennen kommen wir zu dem eigentlichen Rezept.
*/1 * * * * curl -k -s -u 'user:password' https://localhost:5665/v1/status | jq '.results[1].status.active_host_checks_1min' | awk {'print "node_icinga2_active_checks1m""{" "active=" "\"" "/checks1m" "\"" "}" " "$1'} > /var/lib/node_exporter/textfile_collector/active_checks.prom.$$ && mv /var/lib/node_exporter/textfile_collector/active_checks.prom.$$ /var/lib/node_exporter/textfile_collector/active_checks.prom

Was habe Ich da in der Zeile über dieser eigentlich verbrochen?
Dröseln wir das doch auf, Schritt für Schritt.

Step 1:
*/1 * * * * curl -k -s -u 'user:password' https://localhost:5665/v1/status
Ich gehe im Crontab jede Minute her und greife mir aus der lokalen icinga 2 Instanz per Api den Status per JSON.

Step 2:
| jq '.results[1].status.active_host_checks_1min'
Dann gebe ich den JSON Output an jq weiter. Dies lass ich auf einen Wert aus dem JSON parsen. Idealerweise ein Zahlenwert welchen einen schönen Datenpunkt abgibt.

Step 3:
| awk {'print "node_icinga2_active_checks1m""{" "active=" "\"" "/checks1m" "\"" "}" " "$1'}
Dies reicht leider für Prometheus nicht aus wir müssen das etwas aufbereiten das Prometheus das auch als Datenquelle akzeptiert. Der Inhalt eines .prom Files muss in folgenderweise Formatiert sein. Hier kommt awk für die Aufbereitung ins Spiel.

Was nach dem awk Befehl rauskommt sieht formatiert ungefähr so aus node_icinga2_active_checks1m{active="/checks1m"} 607.

Ich hab mal aus Beschreibungsgründen den vorderen Teil node_icinga2_active_checks1m genannt. Könnte aber auch node_raspberrypi15_active_tempsensor30s sein. Danach folgt {active="/checks1m"} 607 welches nochmal auf den Key=Value + Wert Part hinweist. Ich bin aber ehrlich hier schwimme ich selbst etwas. Wenn mir jemand hier Aufschlüsseln kann was hier “Notwendig” ist wäre ich sehr Dankbar.

Step 4:
> /var/lib/node_exporter/textfile_collector/active_checks.prom.$$ && mv /var/lib/node_exporter/textfile_collector/active_checks.prom.$$ /var/lib/node_exporter/textfile_collector/active_checks.prom
Danach wird der von awk aufbereitete String in eine active_checks.prom Datei geschrieben.

Damit haben wir ein valides Prometheus File welches wir dem node_exporter (Prometheus) übergeben können.
Was hat es nun mit /var/lib/node_exporter/textfile_collector/active_checks.prom auf sich .. Der oben in der Zutatenliste erwähnte Prometheus node_exporter ist im Grunde die Datenschleuder welche konfiguriert, in einem selbst definierten Intervall (scrape_intervall) die active_checks.prom Datei in Richtung Prometheus Hauptinstanz wirft. Die dann wiederum die Werte in ihre Time Series Database einträgt und den Graphen zeichnet.

Da der Prometheus node_exporter selbst unterschiedliche Möglichkeiten hat Daten entgegenzunehmen, wir aber in "textform" Daten ihm liefern legen wir die .prom Datei unter dem Pfad /var/lib/node_exporter/textfile_collector/ ab.

Damit der node_exporter weiß wann er in welchem Intervall die von uns Aufbereiteten Daten an das Haupt Prometheus übergeben soll.
Muss Konfig ihm sagen wann (kurzer Abriss der /etc/prometheus/prometheus.yml)
...
## Add Node Exporter
- job_name: 'icinga2'
   scrape_interval: 60s
   static_configs:
      - targets: ['x.x.x.x:9100'] <= Adresse der Haupt Prometheus Instanz welche in dem Screenshot unten uns dann einen Graphen zeichnet.

Im Prometheus (Hauptinstanz) haben wir dann so einen Graphen wie im Screenshot unten, dies kann man auch noch schöner in Grafana zeichnen lassen sprich wenn man in seiner Software ein Grafana Fenster eingebunden hat kann man diese Graphen da hinein verlinken.

Ich hoffe ich konnte euch etwas den Einstieg in das neue Jahr verschönern mit meinem Versuch euch einen Prometheus Datenexport nahe zubringen und ich freue mich über euer Feedback.
Servus bis zum nächsten Mal !

David

David Okon
David Okon
Support Engineer

Weltenbummler David hat aus Berlin fast den direkten Weg zu uns nach Nürnberg genommen. Bevor er hier anheuerte, gab es einen kleinen Schlenker nach Irland, England, Frankreich und in die Niederlande. Alles nur, damit er sein Know How als IHK Geprüfter DOSenöffner so sehr vertiefen konnte, dass er vom Apple Consultant den Sprung in unser Professional Services-Team wagen konnte. Er ist stolzer Papa eines Sohnemanns und bei uns mit der Mission unterwegs, unsere Kunden zu...

Icinga 2 Advanced Training – Last Call für angehende Icinga Expert*innen

Neues Jahr, neue Schulungen: Auch im neuen Jahr bieten wir selbstverständlich wieder Trainings für Dich an. Du möchtest Dich auch im  Jahr 2021 weiterbilden? Dann melde Dich doch zu einem unserer Schulungstermine an!

 

Wenn Du schon über Grundlagen in Icinga 2 verfügst, hast Du bereits kommende Woche die Möglichkeit, zum Genie zu werden. 😊 Die Icinga 2 Advanced-Schulung wird online stattfinden, Du kannst also ganz bequem aus dem Homeoffice teilnehmen.

 

Wann findet die Schulung statt? 19.01. – 21.01.2021

Wo findet die Schulung statt? Online

Auf welcher Sprache wird die Schulung stattfinden? Englisch

 

Diese Inhalte erwarten Dich in der Icinga 2 Advanced Schulung:

  • Einführung in das Icinga Projekt und Monitoring im Allgemeinen
  • Überblick über das Icinga 2 Setup
  • Icinga 2 REST API
  • Distributed Monitoring und Hochverfügbarkeit
  • Einblick in Icinga Web 2
  • Performance-Graphing mit Graphite
  • External Events und Log Monitoring
  • Einführung in webbasierte Konfiguration mit dem Director

 

Brauchst Du Vorkenntnisse für diese Schulung?

Dieser Kurs eignet sich für Dich, wenn Du bereits solide Monitoring-Kenntnisse und Erfahrungen mit Icinga 2 im Arbeitsalltag verfügst. Da die Schulung auf unsere Einsteiger- Icinga Schulung aufbaut, solltest Du diese bestenfalls besucht haben.

Vielleicht haben wir auch Dein Interesse geweckt und wir können uns über eine Anmeldung von Dir freuen. Mehr Informationen  der Icinga 2 Advance Schulung findest Du hier.

 

Auch wenn Du Beginner*in bist, haben wir etwas für Dich. Mehr Informationen erhältst Du hier.

 

Weitere Termine für Icinga 2 Advanced:

Online | 19.01. – 21.04.2021 (English Class)

Online | 20.04. – 22.04.2021

Online | 06.07 – 08.07.2021

Nürnberg | 30.11. – 02.12.2021

Mehr Informationen findest Du hier.

 

Kommende Schulungen:

Icinga 2 Advanced (english class) | online | 19.01. – 21.01.2021

Elastic Stack Schulung | online | 02.02. – 04.02.2021

GitLab Schulung (Fundamentals)| online | 10.02. – 11.02.2021

Terraform Schulung mit OpenStack | online | 23.02. – 24.02.2021

Puppet Schulung (Fundamentals) | online | 23.02. – 25.02.2021

 

Wir hoffen, dass etwas für Dich dabei war. Mehr Details zu all unseren Trainings findest Du hier. Wir freuen uns auf Dich!

Natalie Regn
Natalie Regn
Junior Marketing Manager

Natalie macht seit September 2019 ihre Ausbildung zur Kauffrau für Büromanagement hier bei NETWAYS. Vor ihrer Zeit bei NETWAYS war sie ein Jahr als Au-pair in Schottland unterwegs. Passend dazu widmet sie sich seit vielen Jahren dem Spielen der Great Highland Bagpipe. Natalie ist in ihrer Freizeit nicht nur musikalisch unterwegs, sondern auch sportlich. Sie trainiert im Fitnessstudio, geht gerne in den Kletterpark und in die Trampolinhalle.

Veranstaltungen

Di 02

Icinga 2 Fundamentals Training | Online

März 2 @ 09:00 - März 5 @ 17:00
Di 09

Ansible Fundamentals Training | Online

März 9 @ 09:00 - März 11 @ 17:00
Fr 12

Ansible AWX (Tower) Training | Online

März 12 @ 09:00 - 17:00
Di 23

GitLab Advanced Training | Online

März 23 @ 08:00 - März 25 @ 17:00
Di 23

Ansible Advanced Training | Online

März 23 @ 09:00 - März 24 @ 17:00