icinga problem mit http check

moin moin

es ist wohl zu lange her das ich mit icinga was zu tun hatte aber ich steh wie der ochs vorm berg gerade..

gegeben debian 7.6, standart icinga install...
auf dem icinga rechner starte ich von der cli und alles ist gut ...root@icinga:/etc/icinga# /usr/lib/nagios/plugins/check_http -u "/health" -s "UP" -p8082 -Hnode02.bratwurst.de
HTTP OK: HTTP/1.1 200 OK - 249 bytes in 0,034 second response time |time=0,033500s;;;0,000000 size=249B;;;0
root@icinga:/etc/icinga#

aber wenn ich den check einbaue in commands.cfg

define service{
use generic-service ; Inherit default values from a template
host_name node02.bratwurst.de
service_description HTTP-Backend
check_command check_http!-u "/health" -s "UP" -p 8082
}

habe es mit und ohne das -H hostname versucht. gleiches ergebnis...

(nein iss nicht wirklich bratwurst.de hab den hostteil einfach mal geändert)

im nagios steht aber "critical - Verbindungsaufbau abgelehnt" .....

über tips wär ich dankbar
 
Zuletzt bearbeitet:
Dein Problem ist dein Format des check_command. Du rufst an dieser Stelle nicht das Plugin auf sondern das check_command so wie es in der commands.cfg definiert ist. Üblicherweise ist das per Default dort so:

Code:
define command{
        command_name    check_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
        }

Willst du das nun in einem check_command verwenden, nutzt du dafür 'command_name!parameter1!parameter2'. Wichtig dabei ist, dass der String des check_command leerzeichenfrei sein sollte. Icinga kommt sonst gern mal durcheinander. Daher solltest du für deinen Check ein entsprechendes Command selbst definieren

Code:
define command{
        command_name    check_health_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ -u "/health" -s "UP" -p 8082
        }

Damit kannst du als check_command einfach check_health_http verwenden. Die Host-Adresse wird sowieso automatisch übergeben. Alternativ kannst du natürlich Dinge wie Check-URL, Check-String und Port auch dynamisieren:

Code:
define command{
        command_name    check_health_http
        command_line    $USER1$/check_http -I $HOSTADDRESS$ -u "$ARG1$" -s "$ARG2$" -p $ARG3$
        }

Der Aufruf sieht dann entsprechend so aus: check_health_http!/health!UP!8082
 
Zurück
Oben