Visualisierung: OpenNMS-Alarme und Performancegraphen in Grafana

Grafana ist ein Open-Source-Projekt zur Visualisierung von Metriken, das sich perfekt mit dem IT-Monitoring-Tool OpenNMS kombinieren lässt. Das webbasierte Tool kann aus einer Vielzahl an Datenquellen Informationen erhalten – dazu gehören PostgreSQL, Elasticsearch, InfluxDB und andere Quellen.
Der Grund für die Nutzung von Grafana für Fault- und Performancemanagement liegt einerseits an den Konfigurationsmöglichkeiten für die Rechtevergabe in Grafana – in OpenNMS existiert nur die Option zwischen Admins und „normalen“ Usern zu wählen – und andererseits an der Einfachheit, mit der sich Dashboards und Panels konfigurieren lassen. In OpenNMS ist es nötig, die Graphenkonfiguration über die Shell in den Konfigurationsdateien durchzuführen, während in Grafana nicht nur durch simples Zusammenklicken Panels und Dashboard generiert werden – Grafana bietet auch mehr Optionen zur Gestaltung der Panels und Dashboards. Eine weitere Funktion sind die dynamischen Dashboards: Mit Template-Variablen können Dashboards per Klick auf eine andere Ressource umgestellt oder dargestellte Graphen on-the-fly gefiltert werden.
Übrigens: Neben der herkömmlichen lokalen Authentifizierung kann auch eine Authentifizierung durch LDAP konfiguriert werden, um das Anlegen von Usern unnötig zu machen.

Installation von Grafana

Die Installation von Grafana ist recht simpel. Es ist lediglich nötig, ein Package herunterzuladen und dieses per Kommando zu installieren.
 
Beispiel auf einem Ubuntu Server:
wget https://dl.grafana.com/oss/release/grafana_6.3.3_amd64.deb
sudo dpkg -i grafana_6.3.3_amd64.deb
 
Die Installation des OpenNMS-Helm Plugins erfolgt auf der Shell über den Befehl
grafana-cli plugins install opennms-helm-app
 

Konfiguration

Für die Grundkonfiguration muss als erstes ein User in OpenNMS eingerichtet werden, damit Grafana die Informationen über die REST-API von OpenNMS abfragen kann. Hierfür wurde der User grafana in OpenNMS angelegt.

Nun folgt die Konfiguration der Datasources in Grafana. Für unser Beispiel wurden die Datasources für Alarme und die Performancedaten eingerichtet. Für die Anbindung werden lediglich die URL des OpenNMS-Servers und die Logindaten des neu angelegten OpenNMS Users grafana benötigt.


  
 

Performance-Dashboard

In Grafana kann nun das erste Dashboard angelegt werden. Als Panel wurde für das erste Dashboard ein Graph ausgewählt. In der Konfiguration des Graphen wählt man nun die Datasource OpenNMS Performance aus. Nun kann man die Konfiguration des ersten Graphen durchführen. Als Type wird meistens Attribute verwendet, was einfach nur eine simple Abfrage der Metriken ist.
 

 
Gibt man einem Attrigut ein Label, so kann man dieses beim Type Expression verwenden, um so beispielsweise eine Umrechnung durchzuführen und das Ergebnis der Umrechnung anstelle der originalen Metrik zu verwenden (bspw.: Octetumrechnung für die Darstellung in Mbit). eie Einzelnen Informationen für Node, Resource und Attribute erhält man per Klick auf die Label, wodurch ein Popup mit den möglichen Auswahlmöglichkeiten erscheint.
Im Punkt Visualization lassen sich die Graphen in ihrer Darstellung anpassen. Hier hat man zum Beispiel die Möglichkeit, die Farben der Flächen oder Linien zu ändern.
 

Hat man die Konfiguration durchgeführt, so erhält man den gewünschten Graphen. Hier besteht nun auch die Möglichkeit, mehrere Graphen in einem Panel darzustellen.
 
 

 

Faults Dashboard

Für die Darstellung der Alarme stehen ebenfalls verschiedenste Optionen zur Verfügung. Im Beispiel wurden drei Panels für die Alarme angelegt – für die Schweregrade Minor, Major und Critical.
 

Die Queries für das Filtern nach Schweregrad, UEI und weiteren Möglichkeiten müssen ebenfalls nicht durch eigenständiges Schreiben des SQL-Befehls durchgeführt werden – hier reicht wiederum simples „Zusammenklicken“ des Filters aus.
 

Neben dem Filtern besteht auch die Möglichkeit der Alarmdarstellung im Panel. Hier kann man die Informationen zusammenklicken, die in den Alarmmeldungen angezeigt werden sollen.
 

Zusätzlich können sowohl Performance- als auch Fault-Panels in einem Dashboard dargestellt. Desweiteren können für die Performance Graphen mehrere Datenquellen in einem Panel genutzt werden. So kann man zum Beispiel für einen Teil der Graphen die Datasource OpenNMS nutzen und für einen anderen Teil der Graphen die Datasource Elasticsearch.
 

Fazit

Grafana bietet durch seine Vielzahl an Optionen für die Konfiguration und die einfache Handhabung eine ideale Alternative zur Darstellung der Alarme und der Performancegraphen aus OpenNMS. Es ist zudem möglich, sich Dashboards automatisch generieren zu lassen, indem man selbstgeschriebene Scripte oder Programme verwendet. Ein Beispiel hierfür ist hier zu finden: https://github.com/NETHINKS/cmdbToGrafana
 
Weitere Hinweise sowie die Software sind hier zu finden:
Grafana : https://grafana.com/
OpenNMS-Helm Plugin
Informationen: https://docs.opennms.org/helm/releases/3.0.1/helm/latest/welcome/index.html
Changelog: https://github.com/OpenNMS/opennms-helm
 
Weitere Fragen zum Thema oder zu OpenNMS im Allgemeinen beantworten wir auch gerne persönlich. Nehmen Sie Kontakt mit uns auf!

EU Efre Dekra