Select Page

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...

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.

Kommende Icinga Web-Funktion: Rememberme

Wir freuen uns immer über Feedback von euch, um Icinga noch besser zu machen. Viele Icinga-Benutzer haben die Meinung geäußert, dass sie gerne eine Rememberme-Checkbox auf der Login-Seite von Icinga Web hätten, damit sie sich nicht jedes Mal anmelden müssen, wenn sie Icinga Web besuchen.
Wir haben an diesem neuen Feature speziell während des Home-Office gearbeitet und planen, es in der nächsten Version von Icinga Web zu veröffentlichen.

Hier sind einige Schritte, wie dies funktioniert:

  • Wir führen ein neues “remember me” Cookie und ein “Stay logged in” checkbox auf der Login Seite ein.
  • Alle sensiblen Benutzerinformationen werden mit einem RSA-Schlüsselpaar verschlüsselt.
  • Das Cookie läuft nach 30 Tagen ab.
  • Die Erneuerung erfolgt automatisch nach einer erfolgreichen “remember me” Authentifizierung und beinhaltet die Neuerstellung des RSA-Schlüsselpaares und des Cookies mit 30 Tagen Ablaufdatum.
  • Die Authentifizierung über das “remember me” Cookie löst unseren normalen Authentifizierungsprozess aus, d. h. die Anmeldung mit dem Benutzernamen und dem Kennwort und die Erstellung eines neuen Sitzungs-Cookies bei erfolgreicher Authentifizierung.
  • Das Cookie wird gelöscht, wenn die Authentifizierung fehlschlägt oder ein Logout ausgelöst wird.

Um die Geheimnisse des Benutzers sicher zu speichern, erzeugen wir auf der Serverseite ein RSA-Schlüsselpaar bei der Erstellung des “remember me” Cookies. Das Schlüsselpaar wird in unserer Web-Datenbank gespeichert. Der Inhalt des Cookies sieht wie folgt aus:

  • Öffentlicher Schlüssel
  • Benutzername und Kennwort, verschlüsselt mit dem öffentlichen Schlüssel

Damit ist der öffentliche Schlüssel unser gemeinsames Geheimnis. Bei der Authentifizierung über das “remember me” Cookie suchen wir den öffentlichen Schlüssel in unserer Datenbank, entschlüsseln die Geheimnisse mit dem privaten Schlüssel und lösen unsere normale Authentifizierung mit dem entschlüsselten Benutzernamen und Passwort aus.

Warum lösen wir die normale Authentifizierung aus?

Die normale Authentifizierung beinhaltet bereits die Überprüfung der Kombination aus Benutzernamen und Passwort. Auf diese Weise prüfen wir, ob der Benutzer existiert oder das Passwort geändert wurde.
Wenn das Cookie bereits existiert und der Benutzer die Seite besucht, entschlüsseln wir die Benutzergeheimnisse und versuchen, uns damit anzumelden. Das funktioniert genauso, als ob der Benutzer diese Informationen manuell eingegeben und auf Login geklickt hätte.

Du kannst die Entwicklung dieser Funktion auf Github verfolgen. Wenn Du einen anderen Vorschlag oder einen neuen Feature Vorschlag hast, den Du gerne sehen würdest, kannst Du gerne ein Issue auf Issue auf Github öffnen.

 

Sukhwinder Dhillon
Sukhwinder Dhillon
Junior Developer

Sukhwinder ist seit Januar 2020 bei NETWAYS und macht bei uns seine Ausbildung als Fachinformatiker für Anwendungsentwicklung. In seiner Freizeit fährt er gerne Fahrrad, trifft sich mit Freunden, oder sitzt vorm Computer und lernt etwas Neues.

Mein erstes Icinga Web 2 Modul

Im Laufe meiner Ausbildung habe ich nun ein PHP Projekt bekommen. Ich soll ein Modul für unser heiß begehrtes Icinga Web 2 schreiben. Thema des Modules, ist die Darstellung deiner aktuellen System und Icinga 2 Daten. Von Zonen bis Firewall eine komplette Übersicht.

Das Thema des Blogposts soll aber nicht das Modul sein. Sondern möchte ich euch einen kurzen und einfachen Überblick darüber geben, wie ein solches Modul aufgebaut ist:

Das wichtigste was du wissen musst: Icinga Web 2 Module basieren auf dem icinga Web 2 Framework! Was das für dich als Modul Entwickler bedeutet, möchte ich dir kurz erläutern.

Icinga Web 2 Framework

Bei dem Icinga Web 2 Framework handelt es sich um ein objektorientiertes Framework für PHP. So ist es zum Beispiel nötig, einen Controller und eine View, pro Anzeigeseite zu erstellen.
Die Ordnerstruktur dazu kann wie folgt aussehen:


└── example
|      └── application
|         ├── controllers
|         |   ├── BaseController.php
|         |   └── IndexController.php
|         └── views
|            └── scripts
|               ├── base
|               |   ├── config.phtml
|               |   └── index.phtml
|               └── index
|                  └── index.phtml
└── configuration.php

Durch den Controller und die view wird automatisch die URL gebaut: localhost/icingaweb2/”Modulname”/”Controllername”/”viewname”.

Controller

Was ist ein Controller im Icinga Web 2 Framework?

Der Controller ist der Ort an dem all deine Magie passiert. Also die ‘main’ der jeweiligen Seite.

Um einen Controller richtig zu definieren, hier einige wichtige Tipps, die unbedingt zu beachten sind:

Neben der korrekten Ordnerstruktur deines Modules und der richtigen Groß und Kleinschrebung, muss auch ein eindeutiges Namensschema deiner Dateiein eingehalten werden. Die Dateien müssen beispielsweise das dazu gehörige Schlagwort beinhalten.
Solltest du also einen Controller Index bauen wollen, besteht dein Filename aus dem ‘Controller Namen’ und dem Schlagwort ‘Controller’: IndexController.php

In deinem Controller werden Actions´s erstellt. Innerhalb dieser Actions wird der Quellcode geschrieben und deine Seitentabs erstellt.
Auch hier ist wieder auf Namensgebung und Groß und Kleinschreibung zu achten.

Beispielcode:

views

Was ist eine view?

Damit der Endbenutzer eine Ausgabe in seinem Icinga Web 2 erhält, werden die Ergebnisse deines Controllers an eine view weitergegeben.

Der Ordnername deiner view ist nicht frei wählbar. Er wird aus dem Namen deines Controller´s abgeleitet. Solltest du einen Controller namens Base haben, muss der Ordnername ebenfalls den Namen base haben (Man beachte, den Ordner klein zu schreiben).

In deinem Ordner werden nun die eigentlichen Views erstellt.
Die Standart Seite ist deine index.phtml. Solltest du eine Unterseite erstellen wollen, ist die view genauso zu nennen wie deine Action.

Ein Beispiel dafür wäre wie folgt:

configuration.php

In deiner configuration.php werden die Menüpunkte und sections erstellt. Solltest du für dein Modul also einen Reiter oder Unterreiter haben wollen, sind diese also hier zu definieren.

 

Solltest du ein eigenes Modul entwickeln wollen, oder dich nun mehr für das Thema interessieren, findest du unter dem Training-Module einen ausführlicheren Guide.

Tobias Bauriedel
Tobias Bauriedel
Junior Consultant

Tobias ist ein offener und gelassener Mensch, dem vor allem der Spaß an der Arbeit wichtig ist. Bei uns macht er zurzeit seine Ausbildung zum Fachinformatiker. In seiner Freizeit ist er viel unterwegs und unternimmt gern etwas mit Freunden.

Veranstaltungen

Mar 02

Icinga 2 Fundamentals Training | Online

March 2 @ 09:00 - March 5 @ 17:00
Mar 09

Ansible Fundamentals Training | Online

March 9 @ 09:00 - March 11 @ 17:00
Mar 12

Ansible AWX (Tower) Training | Online

March 12 @ 09:00 - 17:00
Mar 23

GitLab Advanced Training | Online

March 23 @ 08:00 - March 25 @ 17:00
Mar 23

Ansible Advanced Training | Online

March 23 @ 09:00 - March 24 @ 17:00