PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Nagios event_handler



Da.Bull
18.10.06, 10:46
Hallo zusammen,

habe ein Nagios laufen und mit event_handler ein paar Problemchen ;)

Ich möchte (erstmal ganz simpel) für jedes Event, einen Eintrag in einer Logdatei (/lognagios.log) erzeugen. Dies soll für den Service passieren, der den Hosts per Ping checkt.
Beides habe ich in dem entsprechenden Service eingetragen:
code:

event_handler_enabled 1
event_handler make_ping

Dieses Kommando (make_ping) habe ich auch in define command{} definiert. Das Skript selbst ist ausführbar für nagios.

Jetzt kommt das erste Problem:
Sobal ich im Service die max_check_attempts höher als 1 setze, wird der Eventhandler nicht mehr ausgeführt. Auch in nagios.log ist kein Eventhandlereintrag zu finden. Mit max_check_attempts 1 klappt alles hervorragend: Das Skript wird ausgeführt, der Logeintrag in nagios.log geschrieben und in /lognagios.log wird ein Eintrag erstellt..

Jetzt kommt das zweite Problem:
Ich möchte das gleich für check_disk machen. Also habe ich auch in diesen Service obigen Code eingetragen, das (neue) Kommando erstellt und das neue Skript erstellt, indem ich das alte kopiert und nur die Meldungen geändert habe. Aber hier wird event_handler gar nicht ausgeführt. Weder erfolgt ein Eintrag in der nagios.log, noch in meiner /lognagios.log....
Auch dieses Skript ist ausführbar und ich kann es als User, unter dem Nagios läuft, ausführen und es läuft...
Leider hilft es hier auch nichts, temporär max_check_attempts auf 1 zu setzen :(

Für Hilfe schonmal vielen Dank :)

Gruß, Da.Bull

Achso; wenn mir jemand zufällig noch schnell sagen könnte, wie ich eine Hostgroup checke (keine Lust, x Hosts einzeln in den Service einzutragen), wäre ich ebenfalls sehr dankbar ;)

edit: Zu Problem Zwei: Habe gerade festgestellt, dass auch daraus Problem 1 resultiert. Wenn ich alle Services, in denen den Eventhandler genutzt wird auf max_check_attempts 1 setzte, klappts. Bei anderen Werten nicht.

Fly
23.10.06, 11:46
Kannst du mal bitte die services.cfg posten? Bei mir läuft der eventhandler einwandfrei mit max_check_attempts = 4 einwandfrei. Mit den Wert 1 ist nicht zu empfehlen, denn wenn der Dienst kurz "überlastet" ist usw. wird der Dienst gleich neu gestartet oder was auch mit Eventhandler konfiguriert ist...

Da.Bull
23.10.06, 12:27
Hi Fly,

danke erstmal für die Antwort.
Das mit max_check_attemps=1 als nicht sinnvoll leuchtet mir natürlich ein. Deswegen hätte ich da auch lieber eine höhere Zahl, um nicht jedes Mal gleich ein Hard-Fehler zu kassieren.

Hier mal die services.cfg


define service{
name generic-service ; The 'name' of this service template
active_checks_enabled 1 ; Active service checks are enabled
passive_checks_enabled 1 ; Passive service checks are enabled/accepted
parallelize_check 1 ; Active service checks should be parallelized (disabling this can lead to major performance problems)
obsess_over_service 1 ; We should obsess over this service (if necessary)
check_freshness 0 ; Default is to NOT check service 'freshness'
notifications_enabled 1 ; Service notifications are enabled
event_handler_enabled 1 ; Service event handler is enabled
flap_detection_enabled 1 ; Flap detection is enabled
failure_prediction_enabled 1 ; Failure prediction is enabled
process_perf_data 1 ; Process performance data
retain_status_information 1 ; Retain status information across program restarts
retain_nonstatus_information 1 ; Retain non-status information across program restarts
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
define service{
use generic-service ; Name of service template to use
host_name *
service_description PING
is_volatile 0
check_period 24x7
max_check_attempts 1
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,80%
event_handler_enabled 1
event_handler make_ping
}


Dabei stehen normal_check_interval und retry_check_interval deshalb auf 1, da ich momentan am testen bin (auch Auslastung, etc...).

Hier kommt das Kommando für den Event Handler:


define command{
command_name make_ping
command_line $USER2$/make_ping $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $SERVICEOUTPUT$
}


Vielen Dank schonmal.

Gruß, Da.Bull

Fly
23.10.06, 15:43
Nimm mal die Zeile


use generic-service
is_volatile 0

raus.

Das Template oberhalb des PING Services vorerst nicht benützen... Hostname mit Wildcard würde ich auch keinesfalls machen, hab auch nicht getestet, ob es so auch funktioniert...

Da.Bull
24.10.06, 08:57
Guten Morgen,

also, habe das jetzt probiert, die beiden Zeilen auszukommentieren. Hat leider keinen Erfolg gebracht.
Was ich noch anfügen kann, ist die Logdatei, die von nagios generiert wird:


HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
SERVICE ALERT: rechner1;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds

Diese Logeinträge entstehen, obwohl max_check_attempts auf 4 steht... Und es wird (wie man sieht) kein Event_Handler ausgeführt und er ist auch sofort (komischer Weise) im Hard-Fehlerstatus, obwohl er das ja erst beim 4. Versuch sein dürfte...
Es kommen auch keine weiteren Service Alerts mehr nach...

Nach den Änderungen habe ich natürlich auch Nagios neu gestartet und sicherheitshalber auch mit ps geschaut, ob es noch als Prozess läuft (negativ). Dann erst wieder gestartet.

Gruß, Da.Bull

€dit: Habe auch mal das "*" rausgenommen und durch die Rechnernamen ersetzt. Leider auch kein Erfolg, Logeintrag sieht genauso aus, wie oben.

Fly
24.10.06, 11:47
Guten Morgen,

also, habe das jetzt probiert, die beiden Zeilen auszukommentieren. Hat leider keinen Erfolg gebracht.
Was ich noch anfügen kann, ist die Logdatei, die von nagios generiert wird:


HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
SERVICE ALERT: rechner1;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds

Diese Logeinträge entstehen, obwohl max_check_attempts auf 4 steht... Und es wird (wie man sieht) kein Event_Handler ausgeführt und er ist auch sofort (komischer Weise) im Hard-Fehlerstatus, obwohl er das ja erst beim 4. Versuch sein dürfte...
Es kommen auch keine weiteren Service Alerts mehr nach...

Nach den Änderungen habe ich natürlich auch Nagios neu gestartet und sicherheitshalber auch mit ps geschaut, ob es noch als Prozess läuft (negativ). Dann erst wieder gestartet.

Gruß, Da.Bull

€dit: Habe auch mal das "*" rausgenommen und durch die Rechnernamen ersetzt. Leider auch kein Erfolg, Logeintrag sieht genauso aus, wie oben.

Vielleicht erstellst du von services.cfg eine kopie und nimmst das ganze Template raus...

Der Eventhandler scheint bei dir auch nicht zu funktionieren... was hast du in der checkcommands.cfg diesbezüglich eingetragen?
Bei mir sieht es in der Logfile wie folgend aus, wenn der eventhandler bei einem service aktiv ist, unabhängig von der Status!


[1161681505] SERVICE EVENT HANDLER: servername;dienst_check;CRITICAL;SOFT;3;restart-service
[1161681565] SERVICE EVENT HANDLER: servername;dienst_check;CRITICAL;HARD;4;restart-service


PS: Welche version von Nagios nutzt du?

Da.Bull
24.10.06, 12:22
Also:

Version: 2.5
Wenn ich max_check_attempts auf 1 setzte, dann sieht das bei mir in den Logfiles genauso aus, wie du es gepostet hast (nur dass dazwischen noch die Service-events stehen).

Ich habe jetzt die services.cfg rausgenommen und nur einzig und alleine den Service an sich drinstehen. Leider kein Erfolg. Es passiert das selbe: Kein Event_Handler. Allerdings ist sehr sehr komisch, dass ich trotzdem beim OK Status wiederum einen Event_Handler bekomme. Sieht folgendermaßen aus:


HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
SERVICE ALERT: rechner1;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds
...ausreichend Zeit...
HOST ALERT: rechner1;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.76 ms
SERVICE ALERT: rechner1;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.98 ms
SERVICE EVENT HANDLER: rechner1;PING;OK;HARD;1;make_ping



checkcommands.cfg


# 'check-host-alive' command definition
define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 1
}
# 'check_ping' command definition
define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

Da.Bull
24.10.06, 12:58
Nachtrag zu Post vorher, der Übersicht wegen als neuen Post:
Ich habe jetzt fast alles unnötige mal rausgeschmissen und die hosts.cfg auf einen Host und die services.cfg auf ein Service beschränkt.
Sieht so aus:
vollständige hosts.cfg


define host{
host_name rechner1
alias rechner1
address rechner1
check_command check-host-alive
max_check_attempts 3
check_period 24x7
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}


vollständige services.cfg


define service{
host_name rechner1
service_description PING
check_period 24x7
max_check_attempts 5
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,80%
event_handler_enabled 1
event_handler make_ping
}


Leider klappt es immernoch nicht. Außerdem habe ich das ganze jetzt mal mit dem global_service_event_handler in nagios.cfg probiert. Auch hier habe ich genau das selbe Problem: Beim Eintritt von Warning/Critical wird kein Event_handler ausgeführt. Bei OK schon....

Außerdem habe ich den global_host_event_handler gleich mal noch probiert und dieser funktioniert. Es muss also irgendwie ein servicespezifisches Problem sein.....

Fly
24.10.06, 14:42
Dass bei OK Status der Eventhandler ausgeführt ist, ist bei mir auch so... das sollte normal sein! Ich habe am entfernte Systeme wo der Eventhandler ausgeführt wird, ein Skript, der auch die aktuelle Status von Nagios abfragt und nur bei Critical Hard Status den Dienst neu startet...

Bei dir fehlt in der checkcommand.cfg der Eintrag für command make_ping!

Schau mal die Doku hier (http://nagios.sourceforge.net/docs/2_0/eventhandlers.html)an... Darin ist genau beschrieben, was zu tun ist bzw. das Beispiel Skript kannst du ebenfalls brauchen...

Da.Bull
25.10.06, 07:19
Guten Morgen fly,

der make_ping ist bei mir in misccommands.cfg (siehe Post oben). Deshalb fehlt er in der checkcommands.cfg.
Zu der Anleitung: Genau die habe ich genutzt. Nur dass ich noch nichtmal mit dem case arbeiten muss, weil ich ja bei JEDER Statusänderung (Eintritt von OK, Warning, Critical oder Unknown) eines Service einen Logfileeintrag generieren möchte...

Ich denke, ich werde Nagios mal neu installieren und nochmal schauen :(

Gruß, Da.Bull

€dit: Habe jetzt Nagios neu installiert, nachdem ich alles gelöscht hatte. Habe jetzt mal die komplette Konfiguration in einer einzigen Datei (minimal.cfg) untergebracht. Here it is:


define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}

define command{
command_name notify-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

define command{
command_name host-notify-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$
}

define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 99,99% -c 100,100% -p 1
}

define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

define command{
command_name make_ping
command_line $USER2$/make_ping $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $SERVICEOUTPUT$
}

define contact{
contact_name dabull
alias dabull
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email email@adress.de
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members dabull
}

define host{
host_name rechner1
alias rechner1
address rechner1
check_command check-host-alive
max_check_attempts 3
check_period 24x7
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}

define hostgroup{
hostgroup_name Servers
alias Test Servers
members rechner1
}

define service{
host_name rechner1
service_description PING
check_period 24x7
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,60%
event_handler_enabled 1
event_handler make_ping
}
# EOF

Ich habe aber leider immernoch das Problem, dass
1. Der Status des Serviceproblems sofort hard ist obwohl es erst bei 4. Versuch hard sein dürfte.
2. Bei einer Nicht-Okay Meldung der Event-Handler nicht ausgeführt wird (bei "OK" wird er immernoch ausgeführt).

Fly
25.10.06, 09:44
Hallo Da.Bull!

bei mir steht folgendes in der checkcommands.cfg



define command{
command_name restart-service
command_line $USER1$/eventhandler/event.sh $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $SERVICEDESC$
}


würde das versuchen, bevor du nagios neu installierst!

Da.Bull
25.10.06, 09:47
habe schon neu installiert (siehe oben).

Was an das (externe) Skript per define command{} übergeben wird ist bei mir ziemlich egal, weil eh nur drinsteht, dass es nen echo in ne Datei schreiben soll (unabhängig von der Parametern, diese sollen erst später berücksichtigt werden, wenn der Rest klappt ;))

Gruß, Da.Bull

Fly
25.10.06, 09:48
Guten Morgen fly,

der make_ping ist bei mir in misccommands.cfg (siehe Post oben). Deshalb fehlt er in der checkcommands.cfg.
Zu der Anleitung: Genau die habe ich genutzt. Nur dass ich noch nichtmal mit dem case arbeiten muss, weil ich ja bei JEDER Statusänderung (Eintritt von OK, Warning, Critical oder Unknown) eines Service einen Logfileeintrag generieren möchte...

Ich denke, ich werde Nagios mal neu installieren und nochmal schauen :(

Gruß, Da.Bull

€dit: Habe jetzt Nagios neu installiert, nachdem ich alles gelöscht hatte. Habe jetzt mal die komplette Konfiguration in einer einzigen Datei (minimal.cfg) untergebracht. Here it is:


define timeperiod{
timeperiod_name 24x7
alias 24 Hours A Day, 7 Days A Week
sunday 00:00-24:00
monday 00:00-24:00
tuesday 00:00-24:00
wednesday 00:00-24:00
thursday 00:00-24:00
friday 00:00-24:00
saturday 00:00-24:00
}

define command{
command_name notify-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\n\nService: $SERVICEDESC$\nHost: $HOSTALIAS$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\n\nDate/Time: $LONGDATETIME$\n\nAdditional Info:\n\n$SERVICEOUTPUT$" | /usr/bin/mail -s "** $NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
}

define command{
command_name host-notify-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | /usr/bin/mail -s "Host $HOSTSTATE$ alert for $HOSTNAME$!" $CONTACTEMAIL$
}

define command{
command_name check-host-alive
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 99,99% -c 100,100% -p 1
}

define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}

define command{
command_name make_ping
command_line $USER2$/make_ping $SERVICESTATE$ $SERVICESTATETYPE$ $SERVICEATTEMPT$ $HOSTADDRESS$ $SERVICEOUTPUT$
}

define contact{
contact_name dabull
alias dabull
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,r
service_notification_commands notify-by-email
host_notification_commands host-notify-by-email
email email@adress.de
}

define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members dabull
}

define host{
host_name rechner1
alias rechner1
address rechner1
check_command check-host-alive
max_check_attempts 3
check_period 24x7
notification_interval 120
notification_period 24x7
notification_options d,r
contact_groups admins
}

define hostgroup{
hostgroup_name Servers
alias Test Servers
members rechner1
}

define service{
host_name rechner1
service_description PING
check_period 24x7
max_check_attempts 4
normal_check_interval 1
retry_check_interval 1
contact_groups admins
notification_options w,u,c,r
notification_interval 960
notification_period 24x7
check_command check_ping!100.0,20%!500.0,60%
event_handler_enabled 1
event_handler make_ping
}
# EOF

Ich habe aber leider immernoch das Problem, dass
1. Der Status des Serviceproblems sofort hard ist obwohl es erst bei 4. Versuch hard sein dürfte.
2. Bei einer Nicht-Okay Meldung der Event-Handler nicht ausgeführt wird (bei "OK" wird er immernoch ausgeführt).

Was passiert, wenn du bei normal_check_interval 1 den Wert auf 5 setzt?

Da.Bull
25.10.06, 10:30
Änderungen:

normal_check_interval 5

Ergebnis: Total "komisch":
1. Als ich den überwachten Rechner wieder sichbar gemacht habe, hat das ganze noch dreieinhalb Minuten gedauert, bis ein "OK" kam. Obwohl retry_check_interval immernoch auf 1 (minute) steht...
2. Jetzt wird der Event_Handler beim Warning ausgeführt. Allerdings: Es gibt nur ein einziges Warning bei Soft 1 und das wars. Danach kommt nichts mehr...


[1161767071] Finished daemonizing...
[1161767381] HOST ALERT: rechner1;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.45 ms
[1161767381] SERVICE ALERT: rechner1;PING;WARNING;SOFT;1;PING WARNING - Packet loss = 40%, RTA = 0.78 ms
[1161767381] SERVICE EVENT HANDLER: rechner1;PING;WARNING;SOFT;1;make_ping
[1161767461] HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1161767471] HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
[1161767481] HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
... hier hätte schon längst der nächste SERVICE ALERT kommen müssen....
[1161768041] HOST ALERT: rechner1;UP;HARD;1;PING OK - Packet loss = 0%, RTA = 0.45 ms
[1161768041] SERVICE ALERT: rechner1;PING;OK;HARD;1;PING OK - Packet loss = 0%, RTA = 0.67 ms
[1161768041] SERVICE EVENT HANDLER: rechner1;PING;OK;HARD;1;make_ping


€dit: Dass Nagios diesmal ein einziges Warning mit Event_Handler ausführt klappt auch nur, wenn der Rechner NICHT da war, als man Nagios angemacht hat... Ich finde, das wird immer dubioser und undurchsichtiger....

Fly
25.10.06, 13:00
Das mit der Zeitverzögerung könnte duch Änderung von normal_check_intervall passiert sein... Jetzt wird es alle 5 min gecheckt... Schau auch immer im Webinterface nach wann der nächste Check kommt...

Leer mal das Logfile und unterbrich die Netztwerkverbindung zum Client, wenn der Service im OK Status war... Dann sehen wir wie Nagios reagiert...

Da.Bull
25.10.06, 13:25
Hi Fly,

das mit der Zeitverzögerung dürfte aber eigentlich nicht dadurch passieren, sonst wäre die retry_check_interval ja nutzlos?! Graphische Oberfläche sagt trotz "Critical": Nächster Check in 5 Minuten...

Habe jetzt Nagios-Logfile gelöscht (archiviert sind keine wegen Neuinstallation heute Morgen). Danach Nagios gestartet, als überwachter Rechner ON war. Nach dessen Abschaltung:


[1161778974] HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1161778984] HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
[1161778994] HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
[1161778994] SERVICE ALERT: rechner1;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds
Also KEIN Event_handler ...

Fly
25.10.06, 13:59
Hi Fly,

das mit der Zeitverzögerung dürfte aber eigentlich nicht dadurch passieren, sonst wäre die retry_check_interval ja nutzlos?! Graphische Oberfläche sagt trotz "Critical": Nächster Check in 5 Minuten...

Habe jetzt Nagios-Logfile gelöscht (archiviert sind keine wegen Neuinstallation heute Morgen). Danach Nagios gestartet, als überwachter Rechner ON war. Nach dessen Abschaltung:


[1161778974] HOST ALERT: rechner1;DOWN;SOFT;1;CRITICAL - Plugin timed out after 10 seconds
[1161778984] HOST ALERT: rechner1;DOWN;SOFT;2;CRITICAL - Plugin timed out after 10 seconds
[1161778994] HOST ALERT: rechner1;DOWN;HARD;3;CRITICAL - Plugin timed out after 10 seconds
[1161778994] SERVICE ALERT: rechner1;PING;CRITICAL;HARD;1;CRITICAL - Plugin timed out after 10 seconds
Also KEIN Event_handler ...

Ja, ich würde in deiner Stelle den Eventhandler mit Apache usw. testen und nicht mit Ping... ich meine eh nicht, dass das eine Rolle spielt... Du machst eigentlich den Hostcheck 2 mal, einmal hast du ein command in der host Konfiguration definiert (check_command check-host-alive) und nocheinmal im service...

ich glaube es wäre einfach übersichtlicher, wenn du einfach apache auf dem entfernten system installierst und mit nagios mittels nrpe den plugin check_http ausführst... wenn das funktioniert dann mit dem eventhandler um einen schritt weiter...

Zu deinem derzeitigen Problem: checke mal, ob das make_ping Plugin existiert bzw. hast du bei check_command für make_ping den $USERS2$ Makro nicht versehentlich verschrieben? Wo liegen denn die check_ping bzw. make_ping Plugins?

Da.Bull
25.10.06, 14:16
Hi Fly,

also das mit dem Ping doppelt ist richtig. Aber: Meines Wissens wird der Host-Check erst ausgeführt, wenn irgendein Service (welcher auch immer) von diesem Host ein Nichtokay Status zurückliefert.
Deswegen der Ping zusätzlich als Service, dass wenn dieser nicht OK zurückliefert, der Host sofort geprüft wird (per Hostcheck, nicht per Servicecheck).

check_ping und Co existieren, $USER2$ stimmt auch: Die Ausführung klappt ja, wenn max_check_attempts auf 1 ist ;)

Da.Bull
30.10.06, 11:06
Ich habe jetzt den "Fehler" gefunden:

Es liegt daran, dass der Service event_handler nicht mehr ausgeführt wird, wenn der Host Check schon nicht Okay war. In diesem Fall würde dann eben nur der Host event_handler ausgeführt, nicht aber auch noch der Service event_handler.

Insofern funktioniert alles richtig, es war nur ein Verständnisproblem ;)

Fly
01.11.06, 17:51
Ich habe jetzt den "Fehler" gefunden:

Es liegt daran, dass der Service event_handler nicht mehr ausgeführt wird, wenn der Host Check schon nicht Okay war. In diesem Fall würde dann eben nur der Host event_handler ausgeführt, nicht aber auch noch der Service event_handler.

Insofern funktioniert alles richtig, es war nur ein Verständnisproblem ;)

Ich hab ja, wegen der Übersichtlichkeit gesagt, dass du den Eventhandler mit einem anderen Service testen sollst... Naja, so merkt man leichter, wo der Hund begraben liegt ;-)