Nagios 3 Windows Server

  • Morgen zusammen.

    Zum Monitoring möchte ich gerne einen PI mit Nagios 3 nutzen.
    Durch viele Anleitungen habe ich nun alles installiert und etwas bearbeitet, aber komme leider nicht weiter :( Falls es ein anderes, kostenloses Monitoring Programm gibt, bitte Infos :)

    Wenn der PI starten, bekomme ich von jeden Rechner die Werte vom PI angezeigt.

    Nun wollte ich einen Windows Server hinzufügen. Also "/etc/nagios3/nagios.cfg" geöffnet:

    Und die # für die Windows Konfiguration herausgenommen, damit es so aussieht:
    # Definitions for monitoring a Windows machine
    cfg_file=/etc/nagios3/objects/windows.cfg

    Nun habe ich einen Extra Ordner objects in /etc/nagios3/ erstellt.
    Dazu noch eine "Windows.cfg" mit folgendem Inhalt:

    So. Service neu gestartet und ich erhalte natürlich die Fehlermeldung, das er den "winserver", Bezeichnung von use nicht findet in Zeile 1. Nun weiß ich,dass der Name hinter use als Template gewählt wird, nur wo muss ich nun was weiter konfigurieren?


    Hoffe mir kann jemand helfen.

    Danke.

  • Hallo,

    das winserver gibt im Prinzip das Template an, wo die Informationen zu den (allg.) Windows Servern angegeben werden. Jeder (Win-)Host bekommt dann Informationen von diesem Template vererbt.

    Du könntest im Prinzip

    Code
    use generic-server

    bzw.

    Code
    use generic-service

    verwenden, dann wäre dein Problem eigtl. schon gelöst.

    Jetzt kommt es darauf an, wie groß deine Infrastruktur ist, die du monitoren willst und wie sauber du vorhast zu arbeiten.

    Du könntest eine ganz einfache win-server1.cfg erstellen, in dieser dann deinen Host und deinen zugehörigen Service definieren und gut ist. Allerdings bekommst du dann, wenn du deine Infrastruktur erweiterst schnell Probleme. Du musst dann wenn es blöd läuft mehrere hundert Zeilen Configs editieren. Und hier setzt dann Vererbung an.

    Das wird unter Nagios optimal konfigurieren schön beschrieben. Außerdem solltest du dir mal die Grundlagen von Nagios aneignen.

    Was auch noch zu beachten ist: Jeder Admin hat bei Nagios eigtl. seine eigene Philosophie, hier wird auch von jedem eine andere Möglichkeit empfohlen. Deshalb gibt es auch kein Richtig oder Falsch, es steigt je nach Konfiguration halt der Aufwand.

    Gruß
    Matze


  • Hi Matze und Danke für deine Antwort. Leider führt das im ersten Moment nicht zum Ergebnis :( Habe generic-server und generic-serivce genutzt. Leider kein Erfolg.

    Das System wird in 3 Standorten bzw. in 2-3 kleineren installiert. Mir geht es erstmal um 4 Server zu beobachten und danach vielleicht etwas größeres aufzufahren.

    Versuche ja das System zu verstehen, nur leider komme ich auch durch deinen tollen Link nicht wirklich weiter :(

    So wie ich das verstehe habe ich eine Datei /etc/nagios3/objects/ eine Datei windows.cfg, da die Funktion in der nagios.cfg Datei nun aktiviert ist. Nur wie geht es nun weiter. Nun sieht meine windows.cfg folgendermaßen aus:

    Code
    define host{
            use             windows-server
            host_name       172.20.0.120
            alias           my first win-monitoring
            address         172.20.0.120
            hostgroups      windows_clients
            }

    Nur wo gibt es diese Template Datei, wo ich den use Bereich, hier windows-server definieren muss? Dieser fehlt doch?!

    • Offizieller Beitrag

    Matze hat doch schon geschrieben das du "use generic-service /host" nutzen sollst. Wenn du wirklich "use windows-server" nutzen willst, dann kopier die config-generic-host.cfg (bzw. config.generic-service) datei benenn sie in was sinnvolles um und editier diese. Wenn du dann in der Zeile name, "windows-server" reinschreibst und speicherst klappt das auch. Sowas macht aber imho nur sinn wenn man wirklich verschiedene configs für verschiedene Umgebungen hat. In deinem Fall kannst du auch einfach nur "use use generic-host" nutzen.

    Der Unterschied zwischen Genie und Wahnsinn definiert sich im Erfolg.


  • Matze hat doch schon geschrieben das du "use generic-service /host" nutzen sollst. Wenn du wirklich "use windows-server" nutzen willst, dann kopier die config-generic-host.cfg (bzw. config.generic-service) datei benenn sie in was sinnvolles um und editier diese. Wenn du dann in der Zeile name, "windows-server" reinschreibst und speicherst klappt das auch. Sowas macht aber imho nur sinn wenn man wirklich verschiedene configs für verschiedene Umgebungen hat. In deinem Fall kannst du auch einfach nur "use use generic-host" nutzen.

    Habe doch auch geschrieben dann ich schon "use generic-service" versucht habe, aber immer noch die selbe Meldung kam:

    Code
    Processing object config file '/etc/nagios3/objects/windows.cfg'...
    Error: Template 'novell1' specified in host definition could not be not found (config file '/etc/nagios3/objects/windows.cfg', starting on line 1)
       Error processing object config files!

    Und es ist egal was ich in der windows.cfg Datei eintragen. In welcher Datei ist den der generic-service definiert?

    Mein Verzeichnis sieht nur so aus wie im Anhang. Wo finde ich den die config-genereic-host.cfg oder eine ähnliches Datei bzw. was muss da drin stehen?

    Danke.

  • Hallo,

    schau mal in deinem conf.d Verzeichnis nach. Hier befinden sich die Beispieldateien auch

    Code
    generic-host_nagios2.cfg


    und

    Code
    generic-service_nagios2.cfg

    Das sind die Grund-Templates. Woher nimmst du dein Template novell1?
    Das ist anscheindend die Datei, die dein Nagios vermisst.

    Wie hast du überhaupt vor das Ganze unter Windows zu monitoren? NSClient++?

    Dann könnnen wir das Ganze von Grund auf rekonstruieren und so versuchen dir zu helfen

    Gruß
    Matze

  • Hi. Danke schon mal für deine Hilfe :) "novell1" war gerade ein Test, was ich übers Internet gefunden habe. Mein windows.cfg Datei sieht so aus:

    Code
    define host{
            use             generic-host
            host_name       172.20.0.120
            alias           Bochum-Intranet
            address         172.20.0.120
            hostgroups      windows_clients
            }

    Ja habe auf dem Server NSClient++ installiert und die IP des PI mit angegeben. Dienst läuft.

    in /etc/nagios3/conf.d sind die besagten Dateien....habs nicht gesehen :(

    generic-host_nagios2.cfg hat folgenden Inhalt:

    Nach Neustarten des Service erhalte ich folgende Fehlermeldung:

    Code
    Error: Could not find any hostgroup matching 'windows_clients' (config file '/et                                                                                                                                                             c/nagios3/objects/windows.cfg', starting on line 1)
       Error processing object config files!
  • Hallo,

    Lass mal in deiner Konfiguration die Hostgroups raus. Die benötigst du zum jetzigen Zeitpunkt noch nicht. Mit Hostgroups kannst du mehrere z.B. Windows-Hosts zusammenfassen und dann Hostgruppenbasierte Services erstellen.

    Willst du die Hostgroups verwenden, dann musst du eine hostgroups.cfg und in dieser wiederum die Hostgruppen definieren. Hier kannst du beispielsweise Windows-Server, ssh-sever, webserver zusammenfassen und so für alle die gleichen Services verwenden.

    Gruß
    Matze

  • Sehr geil :thumbs1: auf hostgroups gar nicht genau mehr geschaut.

    Nun kann ich weiter machen und z.B. laut Vorgaben von (http://nagios.sourceforge.net/docs/3_0/monitoring-windows.html) service definieren. Die Frage ist wie. Ich bearbeite meine "windows.cfg" wie folgt:

    So erhalte ich beim starten aber wieder eine Fehlermeldung

    Code
    Error: Template 'generic-host' specified in service definition could not be not found (config file '/etc/nagios3/objects/windows.cfg', starting on line 8)
       Error processing object config files!

    Muss nun noch der service irgendwie definiert werden? Bzw. hast du eine gutes Windows Template zum Monitoring?

    :danke_ATDE:

  • Hallo,

    ich habe das Ganze bei mir daheim wie folgt am Laufen:

    hosts.cfg

    Code
    define host{
            use                     generic-host
            parents                 hostservername
            host_name               servername
            alias                   servername
            address                 192.168.xxx.xxx
            hostgroups              win-servers
            }

    Hierbei gibt parents "hostservername" meinen physikalischen Host an, auf dem dann wiederum der Server "servername" läuft. Vorteil hierbei ist, dass wenn der physikalische Host nicht erreichbar sein sollte, dass dann die VMs automatisch mit als "down" gemeldet werden. Außerdem kann ich die Downtime auf den physikalischen Host planen und bekomme dann genauso keine Benachrichtigungen von den VMs

    Ich habe dann alle Windows Server in einer Hostgroup "win-servers" zusammengefasst.
    Die hostgroups.cfg sieht wie folgt aus:

    Code
    define hostgroup{
            hostgroup_name                  win-servers
            alias                           Windows Server
            }

    Des Weiteren gibt es eine Datei Services.cfg in der die einzelnen Services zu den Hostgruppen definiert sind

    services.cfg

    Ich selbst habe die Services noch nach Priorität untergliedert, aber das Ganze wird ja in der Anleitung noch gut beschrieben. Vorteil ist jetzt, wenn ich z.B. einen neuen Windows-Server bekomme, erweitere ich einfach die hosts.cfg um einen Eintrag und muss im Prinzip nur 6 Zeilen anpassen.

    Hoffe ich konnte helfen

    Gruß
    Matze

  • :thumbs1: Top. Habe soweit alles bis auf Variablen übernommen.

    NSCLient++(x64) auf dem Server installiert. Bei der Installation nur die IP vom Pi eingeben und kein Passwort. (oder muss das Passwort eingegeben werden?). Dazu alle haken, angehakt.

    Dienst ist gestartet, aber der möchte die Services nicht einlesen :(

    Idee?

    Unter Hosts, ich denke nur PING wird der Server als UP angezeigt.
    Windows Firewall ist deaktiviert und wir befinden uns im Lokalem Lan.

    Danke.

  • Hallo,

    unter

    Code
    /etc/nagios-plugins/config

    findet sich eine Datei check_nrpe.cfg

    Bei mir schaut diese wie folgt aus:

    Bei dir kann es evtl. sein, dass bei check_nrpe danach im command line noch ein $ARG2$ steht, dieses habe ich ganz frei mal rausgelöscht, dann funktionierte es.

    Wechsel mal nach

    Code
    /usr/lib/nagios/plugins


    und führe mal folgendes aus:

    Code
    ./check_nrpe -H hostipadresse -c CheckVersion

    Was gibt der Befehl aus ?

    Gruß
    Matze

    Einmal editiert, zuletzt von Matze208 (29. Oktober 2014 um 18:34)

  • Mahlzeit.

    die Datei check_nrpe.cfg gab es bei mir nicht. Also neu erstellt mit deinem Inhalt.
    Also einmal Dienst neu gestartet. Nach dem neustart in dein Verzeichnis gewechselt und den Befehl ausgeführt. Leider erhalte ich folgende Fehlermeldung:


    -bash: ./check_nrpe: Datei oder Verzeichnis nicht gefunden

  • Hallo,

    ich schau mir mal meine Konfigs noch einmal genauer an, melde mich dann wieder bei dir und lass dir mal meine komplette konfig zukommen. Wird aber erst morgen wieder was.

    Gruß
    Matze

    ____________________
    EDIT:

    Habe gesehen du hast den Thread geschlossen, ist es für dich jetzt erledigt? Funktioniert es ?

    Einmal editiert, zuletzt von Matze208 (2. November 2014 um 02:47)


  • Hallo,

    ich schau mir mal meine Konfigs noch einmal genauer an, melde mich dann wieder bei dir und lass dir mal meine komplette konfig zukommen. Wird aber erst morgen wieder was.

    Gruß
    Matze

    ____________________
    EDIT:

    Habe gesehen du hast den Thread geschlossen, ist es für dich jetzt erledigt? Funktioniert es ?


    Danke Matze.

    Vielleicht hast du ja auch z.B. den kompletten Nagios Ordner bzw. alle als Zip für mich?!

    Danke :)

  • Hallo,

    ich hab deinen Fehler gefunden!! :bravo2:

    Hab mal nocheinmal einen Nagios-Server installiert und bin dann auf die gleichen Fehlermeldung wie du gekommen...

    im Verzeichnis

    Code
    /etc/nagios-plugins/config/

    gibt es eine Datei nt.cfg

    Diese muss noch bearbeitet werden, da bei ihr der Port nicht hinterlegt ist.

    Die komplette Datei durch


    ersetzen, dann funktioniert es einwandfrei! :thumbs1:

    Gruß
    Matze[/code]

  • Sehr geil Matze :) :danke_ATDE: Es läuft. Also war es am Ende der Fehlende Port :(

    Das NSClient++ muss ich dann auf jeden Windows Server / Rechner installieren?

    Hättest du eventuell noch ein Script für mich,wo ich sagen kann, zeig mir beim 1 Server Festplatte C und D an, beim 2 Server Festplatte C D und E, beim 3 Server Festplatte C?


    Danke :)

  • Hallo,

    Ja jeder Win-Server benötigt den NSClient++, damit du die Checks durchführen kannst.

    Die C-Festplatte ist ja im Prinzip auf jedem Win-Server vorhanden, deshalb würde ich hier vorschlagen, den Service für den C-Check auf die win-server hostgroup zu legen.

    Für die anderen Festplatten (z.B. D,E) würde ich vorschlagen, du legst pro Festplatte eine weitere Hostgroup an.

    Code
    define hostgroup{
            hostgroup_name                  d
            alias                           d-win
    }

    und eine neue dann wieder für e usw.

    Wenn du jetzt einen neuen Windows Server installierst, dann musst du nur noch in der hosts.cfg einen neuen Eintrag erstellen. Mit win-servers gibtst du dann an, dass er deine Standard Checks durchführen soll (inkl. C:\ Platte, die ja sowiso immer vorhanden ist), mit dem d sagst du, dass er zusätzlich noch die D Platte überprüfen soll. Dementsprechend musst du bei deinem Server mit den drei Platten noch die hostgroup e mit angeben.


    Code
    define host{
            use                     generic-host
            host_name               servername
            alias                   servername
            address                 192.168.***.***
            hostgroups              win-servers,d
            }

    Gruß
    Matze

    Einmal editiert, zuletzt von Matze208 (11. November 2014 um 21:49)

  • Super Danke Dir Matze.

    Habe nun 3 Hostgroups, 1 Extra für Laufwerk D und 1 weitere für unseren Exchange, da wir dort 5 weitere Laufwerke haben üner 3 Standorte verteilt.

    Vielleicht noch einen Tipp, wie ich die Temperatur von CPU oder HDD mit dort rein bekomme oder den S.M.A.R.T. Status? Durch lesen weiß ich wohl, das es über WMI gehen soll....

  • Hallo,

    im Prinzip kannst du solche Werte entweder über vorgefertigte Plugins abfragen (check_smart, check_esx_hardware, check_temp ...)

    Ansonsten kannst du auch ein eigenes Plugin schreiben, welches an Nagios nur den korrekten Rückgabewert liefern muss (OK, WARNING, CRITICAL, UNKNOWN).
    Habe ich z.B. für die Überwachung meiner Brandmeldeanlage und Einbindung eines DS18B20-Temperatursensors selbst geschrieben.

    Grüße
    Matze

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!