Benutzer-Werkzeuge

Webseiten-Werkzeuge


 [[anwenderwiki:nagios:nagios_omd]] 

Open Monitoring Distribution (omd)

Matthias Ketterer hat ein Debian-Paket geschnürt, welches einem die komplette Einrichtung einer Nagios / check_mk Umgebung abnimmt. Konfiguriert werden müssen später nur noch die zu überwachenden Maschinen.

Wer seine Schullösung virtualisiert installiert hat, kann sehr einfach sein Netzwerk um einen solchen Wächter erweitern.

Grundinstallation

  • virtuelle Maschine erstellen
  • Linux-Server installieren (z.B. Ubuntu 12.04 Server)
    • 1GB RAM reicht dicke und je nach Logfile-Archiv -Erfahrungswerte fehlen mir noch- muss man die Plattenkapazität bemessen. In meinem Fall sind das 20 GB
  • omd herunterladen von http://omdistro.org/download und die Installationsanweisungen befolgen
    • kurz: vorher mit dpkg die Abhängigkeiten ermitteln,
    • diese Abhängigkeiten installieren und
    • anschließend das omd-xxx.deb Paket installieren.
  • Nagios-Instanz auf dem eben erstellten Server erstellen
    • omd create <instanzname> (es wird ein User angelegt, der so heißt wie die Instanz und unter diesem User ALLE Konfigurationen für Nagios und check_mk
    • sudo su - <instanzname>
    • omd start

Konfiguration

Es muss eigentlich nur

  1. auf jedem zu überwachenden Rechner
    • xinetd und
    • check-mk-agent installiert werden und falls Firewalls im Spiel sind, der Port 6556 geöffnet werden. Auf dem linuxmuster.net 6 Server ist dazu die Datei /etc/linuxmuster/allowed_ports zu bearbeiten und linuxmuster_base zu restarten.
  2. die Datei etc/check_mk/main.mk nach eigenen Wünschen bearbeitet werden.

Nach jeder Konfigurationsänderung ruft man

cmk -I && cmk -R 

auf und wartet, bis check_mk die Services gefunden hat und die Nagios-Konfig erzeugt hat.

Danach kann man auf http://omdserveradresse/<instanzname> die Systeme überwachen.

durch

omd config

lassen sich startseite und andere Dinge noch an persönliche Bedürfnisse anpassen.

Inhalt der main.mk

Hier ist meine momentane (noch nicht fertige) etc/check_mk/main.mk

# Put your host names here
# all_hosts = [ 'localhost' ]
all_hosts = [
                'ipfire.morz.de|firewall|esxi|ping',
                'esxi.morz.de|server|swmensa1|ping',
                'server.morz.de|esxi|swmensa1|server',
                'nadja.morz.de|server|esxi|swmensa1|mrpe_alive',
                'lucia.morz.de|server|esxi|swmensa1',
                'mensa1netgear|switch|snmp',
                'switch-morz|switch|snmp',
                'switch-hauptschule|switch|swmensa1|snmp',
                'switch-r331|switch|swmorz|snmp',
                'switch-r115|switch|swmorz|snmp',
                'mensa2dlink|switch|swmensa1|snmp',
]

Hier kommen alle Hosts rein. Theoretisch reicht der DNS-Name oder ein anderer Name (dann muss man weiter unten noch IP-Adressen zuordnen). Abgetrennt durch Pipes (|) werden „Tags“ angehängt. Die Tags „ping“ und „snmp“ sind schon vorgefertigt und haben die Funktion dem check_mk mitzuteilen, dass der Host nur gepingt werden soll, gut für „dumme“ Geräte, („ping“) oder per snmp abgefragt werden soll, gut für Switche oder Router („snmp“). SNMP muss bei manchen Switches erst noch aktiviert werden.

Die anderen Tags lassen sich frei wählen und nach und nach erweitern, wenn man ganze Gruppen aufs Mal im Nagios konfigurieren möchte. Beispielsweise „mrpe_alive“ ist ein Check-Name, der ganz unten noch definiert wird…

parents = [
 ( "mensa1netgear", ["swmensa1"], ALL_HOSTS ),
 ( "switch-morz", ["swmorz"], ALL_HOSTS ),
 ( "esxi.morz.de", ["esxi"], ALL_HOSTS ),
]

Um die Netzwerkstruktur abzubilden, kann man (muss aber nicht) die „parents“ definieren. Hier werden alle Hosts, die den Tag „swmensa1“ haben, so konfiguriert, dass mensa1netgear ihr parent ist. So kann man definieren, welche Hosts an welchen Switchen hängen oder welche VMs auf welchem ESXi/Proxmox/KVM-Host laufen.


ipaddresses = {
  "switch-mensa1netgear" : "10.20.30.1",
  "switch-mensa2dlink" : "10.20.30.2",
  "switch-morz" : "10.20.30.10",
  "switch-hauptschule" : "10.20.30.20",
  "switch-r331" : "10.20.30.131",
  "switch-r115" : "10.20.30.115",
}

Manchmal möchte man andere Namen verwenden, als im DNS eingetragen sind. Dann kann man (oder muss…) hier die Zuordnung der Namen zu den IP-Adressen tätigen, unter der die Verbindung hergestellt wird.

define_hostgroups = True
host_groups = [
 ( 'Server', [ 'server' ], ALL_HOSTS ), # all hosts with tag server
 ( 'Switche', [ 'switch' ], ALL_HOSTS ), # all hosts with tag switch
 ( 'Firewalls', [ 'firewall' ], ALL_HOSTS ), # all hosts with tag switch
]

Alle Hosts, die den „Tag“ „server“ haben, landen in der Hostgruppe „Server“. Das macht die Überwachung übersichtlicher. Ebenso die switche…


extra_host_conf['check_command'] = [
        ("check_host_tcp!6556", ["mrpe_alive"], ALL_HOSTS ),
]

Ich habe einen Host, der nicht auf Ping reagiert. Aber da dort check-mk-agent installiert ist, der auf Port 6556 hört, ist hier ein Check definiert, der „mrpe_alive“ heißt. Diesem Host habe ich den Tag „mrpe_alive“ hinzugefügt, so dass dieser Host mit diesem Check geprüft wird.

extra_nagios_conf += r"""
        define command {
                command_name    check_host_tcp
                command_line    $USER1$/check_tcp -H $HOSTADDRESS$ -p $ARG1$
        }
"""

Um den Check auf einem Port durchführten zu können, ist diese extra_nagios_conf notwendig.

extra_host_conf["icon_image"] = [
  ( "linux.png", ["server"], ALL_HOSTS ),
  ( "switch.png", ["switch"], ALL_HOSTS ),
  ( "special.png", [ "host123", "host345" ] )
]

Hier wird noch die Nagios-Map etwas aufgehübscht. Statt Fragezeichen kommen nun Bildchen… die Liste lässt sich erweitern..

snmp_communities = [
 ( "public", ["10.20.30.1"], ALL_HOSTS ),
 ( "public", ["10.20.30.2"], ALL_HOSTS ),
]

Man kann hier noch für verschiedene Hosts die snmp-community setzen. public ist aber der Standard, so dass man das weglassen kann, falls die Switche sich auch an diesen Standard halten… (meine Netgear und DLink tun das…) Diese Zeilen sind dann unnötig.

viele weitere Möglichkeiten lassen sich aus http://mathias-kettner.de/check_mk.html extrahieren. Die Englische Doku ist dabei vieeeeel weiter und besser als die deutsche…

 [[anwenderwiki:nagios:nagios_omd]] anwenderwiki/nagios/nagios_omd.txt · Zuletzt geändert: 2013/10/08 08:52 (Externe Bearbeitung)