Installationsanleitung openITCOCKPIT

Transcrição

Installationsanleitung openITCOCKPIT
Schritt-für-Schritt Einrichtung
des Monitoring-Systems openITCOCKPIT
Installationanleitung
it-novum.com
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Stand: Mai 2016
Impressum
it-novum GmbH
Edelzeller Straße 44
36043 Fulda
Deutschland
Tel: +49 661 103-333
Fax: +49 661 103-597
[email protected]
www.it-novum.com
www.openitcockpit.com
2
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Inhalt
3
1
Systemvoraussetzungen ................................................................................................................ 4
2
Basisinstallation ............................................................................................................................. 4
3
Das Monitoring-Dashboard ............................................................................................................ 5
4
Debugging ....................................................................................................................................... 6
5
Module installieren ......................................................................................................................... 7
6
Benutzerverwaltung ....................................................................................................................... 7
7
Hosts anlegen ................................................................................................................................. 8
8
Services ........................................................................................................................................... 9
9
Commands...................................................................................................................................... 10
10
Makros............................................................................................................................................. 11
11
Maps ................................................................................................................................................ 12
12
Beispiel: Einrichtung eines MS SQL-Datenbank-Monitorings ....................................................... 13
13
Service Template-Erstellung .......................................................................................................... 15
14
Service Roll-out über Service Template Groups und Host Groups .............................................. 16
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
openITCOCKPIT ist ein Open Source-Framework, das auf Naemon basiert und modular aufgebaut ist. Es
ermöglicht neben der Infrastrukturüberwachung auch tiefgehende Einblicke in Applikationen und ITProzesse und lässt sich mit Tools für Ticketing, Change Management oder IT-Dokumentation verbinden.
Download bei Github: https://github.com/it-novum/openITCOCKPIT
1
Systemvoraussetzungen
In der Version 3.0.6 unterstützt openITCOCKPIT Ubuntu 14.04 LTS x64. Die Minimalanforderungen sind 2
CPU Kerne, 2 GB RAM und 15 GB Speicherplatz, was für ein kleines Testsystem ausreicht. Allgemein gibt
es keine goldene Regel für die Systemvoraussetzungen, da es immer darauf ankommt, wieviele Hosts
überwacht werden und wieviel Services diesen zugeordnet werden sollen. Um eine durchschnittliche ITLandschaft abzubilden und ein produktives System zu etablieren, raten wir zu mindestens 32GB RAM, 16
CPU Kerne und 500 GB Festplattenspeicher.
2
Basisinstallation
In dieser Anleitung werden wir openITCOCKPIT mit allen Frontend-Modulen installieren und diese kurz
vorstellen. Für die Installation und den Betrieb empfehlen wir Naemon, unterstützt wird aber auch
Nagios. Da openITCOCKPIT über den Paketmanager apt bezogen werden kann, tragen wir zunächst das
Repository ein und beziehen anschließend den Key:
# echo 'deb https://apt.open-itcockpit.com trusty main' >
/etc/apt/sources.list.d/openitcockpit.list
Um die aktuellsten Pakete zu erhalten, kann man hier nightly aktivieren, dies muss aber zusätzlich zum
trusty geschehen:
# apt-key adv --recv –keyserver hkp://keyserver.ubuntu.com A7D3EAFA
Jetzt ist ein apt-Update nötig, um die neuen Paketquellen einzulesen; anschließend können wir mit der
eigentlichen Installation von openITCOCKPIT beginnen:
# apt-get update
# apt-get install openitcockpit{,-naemon,-statusengine-naemon,-npcd}
4
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Bei der Abfrage zu der Konfiguration müssen wir keine Option auswählen, da bereits nginx vorhanden ist.
Anschließend führen wir das Setup aus, um die Konfiguration durchzuführen:
# /usr/share/openitcockpit/app/SETUP.sh
Während des Setups werden der oder die User angelegt, die sich lokal am openITCOCKPIT anmelden
dürfen. Es wird nur ein Admin-User beim Setup angelegt.
! Nach dem Setup lassen sich diese Daten nur noch im Frontend ändern, die Zugangsdaten
können sonst nicht geändert und eingesehen werden.
Damit ist die Installation im Backend abgeschlossen und wir können uns dem Frontend widmen.
3
Das Monitoring-Dashboard
Zuerst melden wir uns mit dem User an, den wir zuvor im Setup erstellt haben. Jetzt befinden wir uns im
Monitoring-Dashboard.
Abbildung 1: Das Monitoring-Dashboard von openITCOCKPIT
5
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Es zeigt standardmäßig Hosts, Services und geplante Downtimes auf einen Blick. Über den Button „Add
Widget“ kann man zusätzliche Grafiken einfügen (z.B. Diagramme oder komplexe Karten) und über das
Pluszeichen neue Reiter.
4
Debugging
Nach dem Einloggen sollte man neben einem sofortigen Blick auf das Dashboard immer auch die Seite
Debugging besuchen. Hier gibt es u.a. Informationen zur aktuellen openITCOCKPIT-Version, laufenden
Prozessen, der IP-Adresse des openITCOCKPIT-Servers, Speicherauslastung und eine Übersicht der
Queues der einzelnen Worker.
Abbildung 2: Debugging Informationen
6
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
5
Module installieren
Abbildung 3: Übersicht der verfügbaren Module
In der Open Source-Version von openITCOCKPIT sind einige Module freigeschaltet. Hat man die
Enterprise-Version erworben gibt man den erhaltenden Lizenzkey über den Punkt Registration ein.
Anschließend werden je nach Umfang der Lizenz die gekauften Module zur Installation freigegeben.
Diese können anschließend unter dem Punkt Package Manager installiert werden.
! Wichtig ist, dass der Befehl
# openitcockpit-update
im Backend nach der Installation aller für den Benutzer verfügbaren Module ausgeführt wird.
In der kompletten Version stehen die Module check_nrpe (standardmäßig immer verfügbar), AutoReport,
MK (für checkmk), Distribute, Map, idoit und Eventkorrelation zur Verfügung. Nach der Installation und
dem Update erscheinen die einzelnen Module links in der Menüstruktur.
6
Benutzerverwaltung
Um neue Benutzer anzulegen, gibt es zwei Möglichkeiten: Entweder richten wir lokale User ein oder
importieren Benutzer aus dem LDAP, wenn ein solches eingebunden wurde. Dies geschieht unter dem
Punkt Systemsettings, wo die Zugangsdaten und Adressen hinterlegt werden.
7
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Jedem User kann eine Usergruppe zugewiesen werden. Diese lässt sich mit unterschiedlichen
Parametern versehen, z.B. ob bestimmte Maps aufgerufen werden dürfen. Der Punkt Manage User Roles
enthält bereits zwei fertig definierte Standardrollen.
! Wichtig ist, dass die Berechtigungen anpasst werden, wenn man ein neues Modul installiert
hat, damit man als Admin auch weiterhin alle Module sieht.
7
Hosts anlegen
Abbildung 4: Anlegen der Hosts
Im Menüpunkt Hosts gehen wir dazu auf NEW. In der Maske hinterlegen wir die Daten zu dem Container,
in dem der Host liegen soll. Wichtig dabei ist, dass ein Hosttemplate ausgewählt wird. Ein Hosttemplate
ist standardmäßig vorgefertigt, man kann aber beliebig viele erzeugen. So kann es z.B. für einen ESX
nötig sein, andere Einstellungen zu wählen als für einen Exchange Server.
Gibt man unter Basic Settings nur Informationen zum Host selbst und der Art der Benachrichtigungen an,
lassen sich unter den Expert Settings bereits Check Commands auswählen. Sie geben an, was genau
überprüft werden soll, sowie die dafür geltenden Schwellenwerte und ab wann der Status kritisch ist.
8
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Hier wird auch festgelegt, wie oft ein Check probiert werden soll, bevor es vom Softstate in den Hardstate
wechselt:
Abbildung 5: Unter „Expert Settings“ werden die Checks festgelegt
8
Services
Nach dem Motto „Ein Service für jeden Host“ widmen wir uns im nächsten Schritt den Services. Hier
legen wir fest, was openITCOCKPIT wie am Host überwachen soll. Ähnlich wie bei den Hosts haben wir
auch hier die Möglichkeit, im Vorfeld Service Templates zu generieren bzw. die bereits Vorhandenen zu
bearbeiten. Das hat den Vorteil, dass man die Einstellungen zu den Benachrichtigungen und Checks nicht
mehr von Hand eingeben muss. Die Abbildung zeigt einen Host, dem drei Services zugewiesen wurden:
9
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Abbildung 6: Host mit drei zugewiesenen Services
Um die Überwachung größerer IT-Landschaften komfortabler zu machen, bietet openITCOCKPIT Service
Template Groups an. Dadurch müssen die gleichen Host-Arten nicht manuell mit denselben Checks
versehen werden. Dazu legen wir eine neue Service Templategroup an, indem wir den Container
auswählen, in dem sich die vorher definierten Service Templates befinden. Anschließend können wir
beliebig viele Service Templates dieser Gruppe hinzufügen. Im nächsten Schritt können wir der Gruppe
einen Host oder ganze Host-Gruppen auf einmal zuweisen.
Da openITCOCKPIT momentan nur ermöglicht, die Service Template Groups auf Hosts bzw. Host Groups
„zu schieben“, empfehlen wir, diesen Schritt erst durchzuführen, wenn alle Hosts vollständig angelegt
sind. Fügt man nämlich im Nachhinein einen neuen Host hinzu, muss man erneut das Allocate
durchführen. Eine Pull-Methode steht auf der Roadmap von openITCOCKPIT und befindet sich bereits in
der Entwicklung.
9
Commands
Unter dem Punkt Commands lässt sich die eigentliche Kommandozeile editieren und den eigenen
Bedürfnissen anpassen. Die Kommandos teilen sich in vier Kategorien auf: Service, Host, Notification und
Event. Zusätzlich kann man hier Argumente hinterlegen und das Kommando in der integrierten Shell
gleich testen. Die Shell ist ein direkter „Zugang“ zum Backend von openITCOCKPIT und führt alle
Kommandos mit dem User Nagios aus.
Tipp: Die in den Commands benutzten Macros (z.B. $USER$) können unter dem Punkt „Expert
Monitoring“ ->“User Defined Macros“ editiert werden.
10
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Abbildung 7: Die Bearbeitung der Kommandozeile unter dem Punkt „Commands“
10 Makros
Wir empfehlen, in openITCOCKPIT von Makros Gebrauch zu machen. Dadurch spart man eine Menge Zeit
und bettet sicherheitsrelevante Daten nicht hart in Kommandos ein. Da in den meisten IT-Abteilungen
die Logindaten der Admins auf weiten Teilen der Hosts identisch sind, kann man die Werte hier
hinterlegen und dann in den einzelnen Checks die Makros verwenden. So muss man auch nicht nach
einer Passwortänderung alle Checks bzw. Kommandos von Hand ändern.
Abbildung 8: Makros erstellen
11
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
11 Maps
Karten (Maps) sind ein schöner Weg, ganze IT-Landschaften und Services- bzw. Applikationsverfügbarkeiten übersichtlich auf grafischem Weg darzustellen. Dazu legen wir eine Karte unter dem Modul
„Maps“ an und bearbeiten sie im Anschluss mit dem Map Editor. Hier können wir ein Hintergrundbild
hochladen und verschiedene Gadgets, Items oder Icons hinzufügen, die einfach per drag and drop auf die
Karte gezogen werden. Nach der Positionierung erscheint ein Pop-up-Fenster, in dem wir den Host und
den zu überwachenden Service festlegen. So lassen sich von einzelnen rot-grünen Karten bis hin zu
riesigen Graphenlandschaften die verschiedensten Visualisierungen einer Systemlandschaft erstellen.
Über ein Widget können sie natürlich in das Dashboard auf der Startseite eingebunden werden.
Abbildung 9: Karten stellen Systemlandschaften in openITCOCKPIT grafisch dar
12
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
12 Beispiel: Einrichtung eines MS SQLDatenbank-Monitorings
Mit openITCOCKPIT lassen sich ganze Anwendungen und Anwendungslandschaften überwachen. Als
Anwendungsbeispiel richten wir im Folgenden ein Datenbank-Monitoring ein.
Zuerst sollte man überlegen, mit welchem Plugin die Überwachung erfolgen soll. In unserem Beispiel
nutzen wir das Plugin check_mssql_health von Consol Labs, weil es out-of-the-box sehr viele
Informationen aus einer MS SQL-Datenbank auslesen und überwachen kann. Eine Installationsanleitung,
den Downloadlink und Informationen zum Einsatzbereich des Plugins findet man auf der Consol Labs
Webseite: https://labs.consol.de/de/nagios/check_mssql_health/index.html.
Das Plugin installiert man auf dem openITCOCKPIT-Rechner entsprechend der Installationsanleitung,
danach steht es im Ordner /opt/openitc/nagios/libexec zur Verfügung. Jetzt können remote
verschiedene Informationen der Datenbank überwacht werden. Voraussetzung ist, dass das
Datenbanksystem unter dem genutzten Port erreichbar ist und ein Benutzer mit den entsprechenden
Berechtigungen in der Datenbank eingerichtet wurde.
Im ersten Schritt sollte man Plugins immer in der Shell des openITCOCKPIT-Systems testen. Dadurch
stellt man sicher, dass das Plugin korrekt funktioniert, die gewünschte Datenbank erreichbar ist und
ausreichend Berechtigungen für den Zugriff vorhanden sind. Die Hilfe ruft man über
# ./check_mssql_health –help
auf. Eine detaillierte Beschreibung des Plugins und Beispielabfragen findet man auf der Webseite von
Consol Labs.
Mit der folgenden Abfrage testen wir, ob die Datenbank generell erreichbar ist, ob der verwendete
Benutzer ausreichende Berechtigungen hat, um auf die Datenbank zugreifen zu können, und wie lange
dafür benötigt wird:
# ./check_mssql_health –hostname Hostname --username Benutzername --password Passwort -port Port --commit --mode connection-time --warning Warning --critical Critical
Als Ausgabe bei der Abfrage der Connection-Time erhalten wir:
OK - 0.96 seconds to connect as Benutzer | connection_time=0.96;1;5
Die Abfrage kann auch ohne die Angabe von Schwellwerten für Warning und Critical erfolgen, da das
Plugin Standardschwellwerte mitbringt (in diesem Fall 1 für „Warning“ und 5 für „Critical“).
13
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
Ist das Plugin über die Shell von openITCOCKPIT benutzbar und hat man sich mit den verschiedenen
Abfrage- und Überwachungsmöglichkeiten vertraut gemacht, kann der Check in das Frontend vom
openITCOCKPIT als Kommando eingebunden werden.
In openITCOCKPIT erstellen wir im Bereich „Basic Monitoring -> _Commands“ über den Button „+New“ ein
neues Kommando. Abhängig von der gewünschten Abfrage und Überwachung kann es Sinn machen,
verschiedene Kommandos zu erstellen. Über die Nutzung von variablen Argumenten ($ARG1$, $ARG2$,
usw.) lassen sie sich flexibel für verschiedene Datenbanken nutzen (Hostname, Port, Benutzer, Passwort,
Mode, Schwellwerte, etc.).
Dabei legen wir fest, um was für ein Kommando es sich handelt: Servicecheck, Hostcheck, Notification
oder Eventhandler. In unserem Fall handelt es sich um ein Servicecheck-Kommando, da wir das
Kommando in Services und Service Templates nutzen wollen.
Der Name lässt sich frei wählen, wir empfehlen aber, etwas Zeit in die Namensgebung zu investieren, um
für eine gute Übersichtlichkeit zu sorgen – in großen Umgebungen können nämlich sehr viele
Kommandos zum Einsatz kommen und hier hilft eine gut durchdachte Nomenklatur.
Der Bereich Command line enthält das Kommando, das später durch den Service in der Shell des
openITCOCKPIT-Servers aufgerufen wird und die entsprechende Ausgabe an den Service übergibt. Um
hier übersichtlich und flexibel zu bleiben, sollte man so viele Variablen ($USER1$, $HOSTADDRESS$,
$_HOSTMSSQLINFO$, $ARG1$, usw.) wie möglich bzw. wie nötig verwenden. $USER1$ ist ein
sogenanntes „User Defined Macro“ und enthält den Pfad in der Shell zum Verzeichnis mit den Plugins
/opt/openitc/nagios/libexec. Im openITCOCKPIT-Frontend werden die Makros im Bereich Expert
Monitoring -> User Defined Macros erstellt und definiert.
$HOSTADDRESS$ ist ein Standard Nagios Makro und enthält die IP-Adresse des jeweiligen Hosts, auf dem
der Service später verwendet wird. Bei der Variablen $_HOSTMSSQLINFO$ handelt es sich um ein
sogenanntes Host-Makro, das in den jeweiligen Host-Einstellungen im Experten-Bereich erstellt und
definiert werden kann. In unserem Fall enthält diese Variable die Informationen zu Port, Benutzernamen
und Passwort des jeweiligen Datenbank-Hosts. Dadurch lässt sich der später erstellte Service ohne eine
Anpassung auf verschiedenen Datenbank-Hosts nutzen.
Unter Description kann dem Kommando eine entsprechende Beschreibung gegeben werden. Im Bereich
Arguments vergeben wir für jedes Argument ($ARG1$, $ARG2$, usw.) eine sprechende Beschreibung, die
im später erstellten Service Template und Service zur Verfügung steht. Das vereinfacht die Definition der
Werte für die jeweilige Variable sehr.
In der Command Shell am Ende der Maske lassen sich die zur Verfügung stehenden Plugins testen, ohne
sich auf den Server verbinden zu müssen.
Nachdem wir das Kommando erstellt haben, richten wir ein Service Template für die gewünschte
Abfrage ein.
14
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
13 Service Template-Erstellung
Für jede Überwachung sollte ein eigenes Service Template erstellt werden. Dadurch kann (abhängig von
den Möglichkeiten des Plugins und den gewünschten Überwachungen) eine ganze Reihe an Service
Templates zusammenkommen.
Neue Service Templates legt man im Bereich „Basic Monitoring -> Service Templates“ über den Button
„+New“ an. Dazu definieren wir zunächst, in welchem Container das Service Template angelegt werden
soll. Über die Struktur der Container lässt sich einstellen, wer welchen Zugriff auf welche Objekte im
openITCOCKPIT haben soll. Objekte im /root-Container stehen standardmäßig allen Benutzern zur
Verfügung, was bei den Service Templates Sinn macht, da sie nicht unbedingt doppelt angelegt werden
müssen bzw. sollten.
Der Template-Name kann frei gewählt werden, doch auch hier sollte man sich im Vorfeld Gedanken
machen, da in größeren Umgebungen sehr viele Service Templates zum Einsatz kommen. Nach dem
Vergeben einer Beschreibung sollten zumindest die Bereiche Notification period, Notificationintervall,
die Statusmeldungen sowie das Graphing und die aktiven Checks eingeschaltet werden.
Im Reiter Expert settings im oberen Bereich definieren wir jetzt die Werte für die im Kommando
festgelegten Argumente, die standardmäßig an das Kommando übergeben werden sollen. Diese Werte
können später für jeden Service, der auf unterschiedlichen Hosts genutzt wird, individuell angepasst
werden. In der folgenden Abbildung sieht man die sprechenden Beschreibungen zu den Variablen, die
wir im Kommando definiert haben.
Abbildung 10: Bearbeiten des Service Templates
15
it-novum | Installationsanleitung openITCOCKPIT
Installationsanleitung openITCOCKPIT
14 Service Roll-out über Service Template
Groups und Host Groups
Um ein späteres Rollout der Service Templates zu erleichtern, macht es Sinn, alle Service Templates und
alle Hosts für ein bestimmtes Überwachungsszenario in Service Templatesgroups und Host Groups
zusammenzufassen. Dadurch müssen wir einen oder mehrere neue MS SQL-Server nur in die Hostgroup
MSSQL_ALL aufnehmen und die Service Templategroup über den Auswahlpunkt „Allocate hostgroup“ der
Hostgroup zuweisen – alle Hosts bekommen jetzt in einem Rutsch die in der Service Templategroup
enthaltenen Services zugewiesen.
Über den Button Refresh monitoring configuration (ganz oben rechts neben der Systemzeit zu finden)
übernimmt openITCOCKPIT alle Anpassungen an der Monitoring-Konfiguration und schaltet die
Überwachung aktiv – unsere MS SQL-Datenbank wird jetzt von openITCOCKPIT überwacht.
Damit haben wir die openITCOCKPIT-Installation durchgeführt und einen ersten Schritt beim
Applikations-Monitoring genommen.
16