===== Icecast mit Nagios überprüfen ===== Icecast lässt sich mittels check_http überprüfen. Besser ist aber [[:public:code:check_ice|check_ice]], da das bei fehlender Existenz eines Mountpoints statt wie check_http "Warning" "Critical" zurückliefert. Ich habe das mit einer hostgroup gemacht: define hostgroup { hostgroup_name icecast-servers alias ICECAST servers members icecast1,icecast2 } define service { hostgroup_name icecast-servers service_description ICECAST on Port 80 check_command check_icecast_http!80 use generic-service notification_interval 0 } #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 [[:public:code:check_ice|check_ice]]. #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: #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 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. 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 }