Select Page

NETWAYS Blog

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

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.

Computer Viren in der Cloud

Verschiedene Anbieter von Anti-Virus Produkten bieten mittlerweile SaaS Platformen an um eine zentrale Übersicht über den Status aller Systeme zu bekommen. Dort wird dann neben allen Details eine Übersicht von Alarmen bzw. Bedrohungen verfügbar.

Ein Kunde stellte mich vor die Herausforderung aus diesen Platformen per API die aktuellen Alarme und Probleme abzufragen, daraus sind zwei neue Plugins entstanden.

Hinweis: Wir machen hier keine Werbung für die Produkte, nur unsere Plugins. Wir stehen aktuell in keiner Geschäftsbeziehung zu beiden Anbietern.

read more…

Markus Frosch
Markus Frosch
Principal Consultant

Markus arbeitet bei NETWAYS als Principal Consultant und unterstützt Kunden bei der Implementierung von Nagios, Icinga und anderen Open Source Systems Management Tools. Neben seiner beruflichen Tätigkeit ist Markus aktiver Mitarbeiter im Debian Projekt.

Windows: One Framework to Monitor them all by Christian Stein | OSMC 2019

This entry is part 4 of 4 in the series OSMC 2019 | Recap

At the Open Source Monitoring Conference (OSMC) 2019 in Nuremberg, Christian Stein captivated the entire conference room with his presentation “Windows: One Framework to Monitor them all”. His demo was the highlight of his presentation, which ended up with enthusiastic applause. You have missed him speaking? We have got something for you: Watch the video of Christian’s presentation and read a short summary (below).

At OSMC international monitoring experts meet annually to set and discuss future trends and objectives. Since 2006 the event takes place every autumn in Nuremberg, Germany. Leading specialists present the full scope of Open Source monitoring and are ready to answer your hardest questions. Discuss with top developers, exchange knowledge and learn wen techniques.

You want more? In-depth workshops the day prior to the conference and a Hackathon provide further possibilities to extend your skills and deepen your knowledge in IT monitoring and management.

The next OSMC takes place in 2021 in Nuremberg.

More information and tickets at osmc.de.


Windows: One Framework to Monitor them all

Christian Stein signed up with a talk titled “Windows: One Framework to Monitor them all” and the intention to turn the Windows side of Icinga upside down. After giving a short run down of the the current issue with “Icinga for Windows” and his attempts at fixing them, we get to the good stuff.

An Icinga PowerShell Framework supported by Powershell 4.0 or higher, but let‘s get into the juicy details: The framework comes with a lot of features, to easily extend it within your environment and to simplify monitoring on Windows as well. Additionally, there is a dev-toolkit, which offers plenty of possibilities for developers to give the framework their own tweak. As of now, there are four repositories beyond the framework itself. Up first and most important to mention is icinga-powershell-kickstart, which provides a basic PowerShell script to interactively install the framework. Also rather essential for the framework is the icinga-powershell-plugins repository, which provides a collection of Windows check plugins.

Want to run the framework as a service? Glad you asked. There is a repository for that as well. It’s also covered by the kickstart wizard. Check icinga-powershell-service to find out more or to give some feedback. If you’ve always asked yourself why you should run appliances as a service, there are several benefits. Like the service running before a user logs on and continuing to run, without a logged on user.

Last but not least, even most essential, the framework itself. If we look at the current ways to make Icinga work on windows, they are good, but not great. The icinga-monitoring-framework provides tools and configuration to make icinga monitoring on windows possible, almost natively, except for said repositories.

Having said all that and more, Christian went on with a live demo of the Framework, gave some installation advice and by that I mean, delved deeper into the kickstart script. He also showed off some features and gave some best practice advice. So, all that was left to say is… whats next?

Christian announced, that it will be available on PowerShell Gallery, which will not only help the project grow, but make it even more available as is. And of course, there will be more plugins. For those eagerly waiting for one of these, the next release hopefully provides MSSQL, Active-Directory, Exchange and Hyper-V plugins.

The community’s and the customer’s interest in better windows monitoring is undeniable, but we depend on your feedback and support on this, the respective repository is the place to be, and if you can’t figure, which one it fits, just post your issue at: https://github.com/Icinga/icinga-powershell-framework/issues

Alexander Stoll
Alexander Stoll
Junior Consultant

Alexander ist ein Organisationstalent und außerdem seit Kurzem Azubi im Professional Services. Wenn er nicht bei NETWAYS ist, sieht sein Tagesablauf so aus: Montag, Dienstag, Mittwoch Sport - Donnerstag Pen and Paper und ein Wochenende ohne Pläne. Den Sportteil lässt er gern auch mal ausfallen.

Tornado – Extend Icinga 2 for Active and passive Monitoring of complex heterogeneous IT Environments by Francesco Cina & Patrick Zambelli | OSMC 2019

This entry is part 3 of 4 in the series OSMC 2019 | Recap

At the Open Source Monitoring Conference (OSMC) 2019 in Nuremberg, Francesco Cina and Patrick Zambelli whirled up a „Tornado – Extend Icinga 2 for active and passive Monitoring of complex heterogeneous IT Environments”. If you missed their presentation: See the video of their introduction to Tornado and its use cases, and read a summary (below).

The OSMC is the annual meeting of international monitoring experts, where future trends and objectives are set. Since 2006 the event takes place every autumn in Nuremberg, Germany. Leading specialists present the full scope of Open Source monitoring and be ready to answer your hardest questions. Learn new techniques, exchange knowledge and discuss with top developers.

In-depth workshops the day prior to the conference and a Hackathon provide further possibilities to extend your skills and deepen your knowledge in IT monitoring and management.

The next OSMC takes place in 2021 in Nuremberg.
More information at osmc.de.


 

Tornado – Extend Icinga 2 for Active and passive Monitoring of complex heterogeneous IT Environments

Monitoring Challenges: Pool vs. Event.

First of all we have to explain the difference between Pool and Event approach. Icinga and nagios use the polling approach, which is scheduling monitoring or checks in a static time interval to get a specific state. You can derive from this state if the status from monitored device or service is critical or ok. That means, we know not only the results of monitoring but also the monitored systems. By Polling we have centralized configuration and control. This will be performed either agentless e.g. SHH, SNMP or through an agent for example Icinga, NSClient++.

Contrarily to this historical approach is the event based approach. On the one side we accept the matrix all the time from the remote system and we don’t know exactly what will come, but on another side we have to understand the incoming protocol and derive if there is a problem or not.

 

Advantages and disadvantages of polling and event:

Polling Pros

  • Control when a check should be executed
  • Get only the data which you are interested in
  • Knowing the context from the system you are interacting with (context = host, service, performance data)

Polling Cons

  • Static configuration for monitored architecture (not good for a changeable one e.g. micro services)
  • Continuously usage of resources day and night
  • Not all data is retrievable via polling

 

Event Pros

  • No delay to react when event happens
  • No need to know what to receive but understand it
  • Dynamic on fast changing architecture
  • Listen to channel => new added hosts are integrated

Event Cons 

  • Need to face large amount of data (peaks)
  • Lack for filtering at source. We can lose information specially when the protocol is not reliable e.g. UDP or SNMP
  • Risk to lose information
  • Not the right approach for host alive and service availability  

Combination of both Polling (Icinga 2) and event (Tornado) will definitive a winning:

With Icinga 2 we have the advantage to start a project very quickly and easily. We have a wide range of checks in the community. Through Templates we can create a reusable monitoring. We can adapt to changes in the architecture by interacting with CMDB or domain controller for example.

With Tornado we listen on the monitored host to the output of a service on a specific channel then we convert this output via collector to Json, which is the only recognized language by Tornado. After that we compare the flow with by regular expression created rules. In the end we forward an action to Icinga 2 – “Critical” for example. 

That means, when our infrastructure grows with new hosts we can monitor the availability from these hosts and their services with Icinga 2. We can control the output from services with Tornado.

 

How to handle the increased load?

01. Scale the monitoring system horizontally

When our servers and services grow, we can increase the number of monitoring instances. This is not good because it doesn’t work out of the box and too many problems will appear. Moreover the throughput does not go linearly. At a number of scaled nodes the overhead of communication and sycronization between them will take more time than analyzing the traffic itself.

02.  Use a big data system

We put a big data system between events and the monitoring system, for example kafka, spark, cassandra. The idea is, we reprocess the messages or the events and send only the important ones to the monitoring system. In this way we will reduce the flow against our monitoring system. This will definitely lead to reduce the load as well. It is a real solution but terribly expensive and needs a lot of knowledge with the used data system.

03. Tornado

Why is Tornado the solution?

  • Can handle millions of events per second per CPU
  • Stateless: the nodes don’t need to communicate to each other
  • Cloud-ready
  • Has collectors which translate events from format X to Tornado format (Json)
  • Take decision based on the event content
  • Cheap because it doesn’t need too much resources 

Tornado decides to pass the events to Icinga when they match the pipelines and the rules we defined in Tornado. Not suitable events will be dropped.

 

You liked this blog post and want to read more about different monitoring solutions? Then browse through our blog series, visit our YouTube channel or just contact us.

 

Afeef Ghannam
Afeef Ghannam
Support Engineer

Afeef hat seine Ausbildung Als Fachinformatiker in Richtung Systemintegration im Juli 2020 bei NETWAYS absolviert, seitdem unterstützt er die Kollegen im Support und bei der Betriebsunterstützung. Nach der Arbeit macht er gerne Sport, trifft Freunde oder mag es Filme zu schauen.

Veranstaltungen

Wed 03

Icinga 2 Fundamentals Training | Online

March 2 @ 09:00 - March 5 @ 17:00
Wed 03

Icinga 2 Advanced Training | Online

March 3 @ 09:00 - March 5 @ 17:00
Tue 09

Ansible Fundamentals Training | Online

March 9 @ 09:00 - March 11 @ 17:00
Tue 23

Ansible Advanced Training | Online

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

Kubernetes Quick Start | Online

April 13 @ 09:00 - 17:00