User Tools

Site Tools


public:doku:nagios_icecast

Icecast mit Nagios überprüfen

Icecast lässt sich mittels check_http überprüfen. Besser ist aber check_ice, da das bei fehlender Existenz eines Mountpoints statt wie check_http “Warning” “Critical” zurückliefert. Ich habe das mit einer hostgroup gemacht:

hostgroups_nagios2.cfg

define hostgroup {
        hostgroup_name  icecast-servers
        alias           ICECAST servers
        members         icecast1,icecast2
}

services_nagios2.cfg

define service {
        hostgroup_name                  icecast-servers
        service_description             ICECAST on Port 80
        check_command                   check_icecast_http!80
        use                             generic-service
        notification_interval           0
}

/etc/nagios-plugins/config/icecast.cfg

#check if icecast responds to http requests
define command {
        command_name    check_icecast_http
        command_line    /usr/local/bin/check_ice -H '$HOSTADDRESS$' -p $ARG1$
}

Andere Ports sind natürlich auch denkbar. Dann sollte man natürlich überprüfen, ob ein Mountpoint existiert. Dazu kann man den http-check nehmen und auf eine spezifische url überprüfen. Dabei muss man beachten, mit den Schalter “-N” nach dem Header abzubrechen (der content endet ja theoretisch nie). Oder wie in meinem Falle check_ice.

/etc/nagios-plugins/config/icecast.cfg

#check if a mountpoint exists
define command {
        command_name    check_icecast_mountpoint
        command_line    /usr/local/bin/check_ice -H '$HOSTADDRESS$' -p $ARG1$ -m '$ARG2$'
}

Denkbar wäre auch eine Mindestlänge des Contents zu überprüfen:

/etc/nagios-plugins/config/icecast.cfg

#check if a mountpoint delivers data
define command {
        command_name    check_icecast_mountpoint_data
        command_line    /usr/local/bin/check_ice -H '$HOSTADDRESS$' -p $ARG1$ -m '$ARG2$' -s '$ARG3'
}

Dann lässt sich noch überprüfen, ob valide Daten vom Icecast kommen

/etc/nagios-plugins/config/icecast.cfg

kommt noch

Beispielhafte Host-Definition

Folgende Host-Definition definiert einen Host “icecast1” mit entsprechender ip-addresse. Es werden 2 Mountpoints definiert: /test und /test-fallback. Dabei ist /test-fallback als fallback für /test im icecast definiert. Entsprechende Serviceabhängigkeiten sind wie folgt.

/test hängt von icecast_http ab /test-fallback hängt von icecast_http ab

/test hängt nicht von /test-fallback ab, sodas bei Ausfall des fallbacks eine Benachrichtigung kommt, und wenn dann noch /test (auf den es ja ankommt) ausfällt kommt eine zweite Nachricht.

/etc/nagios3/conf.d/icecast1.cfg

define host{
        use                     generic-host            ; Name of host template to use
        host_name               icecast1
        alias                   icecast1.example.com
        address                 xxx.xxx.xxx.xxx
        initial_state           o
        }

define service {
        use                     generic-service
        service_description     mountpoint /test
        host_name               icecast1
        check_command           check_icecast_mountpoint!80!/test
}

define service {
        use                     generic-service
        service_description     mountpoint /test-fallback
        host_name               icecast1
        check_command           check_icecast_mountpoint!80!/test-fallback
}

define servicedependency {
        host_name               streaming-dunlop
        dependent_service_description   mountpoint /test
        dependent_host_name     icecast1
        service_description     ICECAST on Port 80
        notification_failure_criteria   w,u,c
}

define servicedependency {
        host_name               streaming-dunlop
        dependent_service_description   mountpoint /test-fallback
        dependent_host_name     icecast1
        service_description     ICECAST on Port 80
        notification_failure_criteria   w,u,c
}

public/doku/nagios_icecast.txt · Last modified: 2014/10/25 18:12 (external edit)