This is an old revision of the document!
Als erstes lässt sich natürlich der Icecast mittels check_http überprüfen. 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
#checks if the icecast is accessible via http define command { command_name check_icecast_http command_line /usr/lib/nagios/plugins/check_http -A nagios -H '$HOSTNAME$' -I '$HOSTADDRESS$' -N -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 spzifische url überprüfen. Dabei muss man beachten mit den Schalter “-N” nach dem Header abzubrechen (der content endet ja theoretisch nie).
/etc/nagios-plugins/config/icecast.cfg
#check if a url (mountpoint) exists on icecast server define command { command_name check_icecast_mountpoint command_line /usr/lib/nagios/plugins/check_http -A nagios -H '$HOSTNAME$' -I '$HOSTADDRESS$' -N -p $ARG1$ -u '$ARG2$' }
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 }