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