Nagios är en Open Source programsvit för serverövervakning. Fungerar väldigt bra och kan bevaka det flesta tjänster på servrar samt kolla att switchar och annan utrustning uppför sig som den ska via SNMP.
Man får som standard rapport via e-post. Här nedan förklarar jag hur man kan få rapporterna via SMS med hjälp av en SMS-gateway tjänst. Man kan ju också hänga en mobiltelefon i serverhallen som man kopplar till en dator men det kommer jag inte atet gå in på här.
SMS-leverantören jag använder är 42it.se och har hittills fungerat väldigt bra. Fördröjningen är ca 10-15 sekunder från att notisen skickas från datorn tills att den kommer fram i telefonen. Helt OK!
Kolla först att du har php5-cli installerat på servern du kör detta på, annars fungerar det inte…
Börja med att göra ett script för att skicka SMS med leverantörens HTTP-tjänst, spara som /usr/local/bin/sendsms:
#!/bin/bash USERNAME=username PASSWORD=123123123 SENDSMSADDRESS="http://server4.msgtoolbox.com/api/current/send/message.php" MAXMSGLENGTH=320 read -n $MAXMSGLENGTH -r MSG MSG=`/usr/bin/php -r "echo urlencode( \"$MSG\" );"` /usr/bin/wget -q -O - "$SENDSMSADDRESS?username=$USERNAME&password=$PASSWORD&to=$1&from=123456789&message=$MSG&route=G1" &> /dev/null
Här ställer du in användarnamn och lösenord samt vilket nummer SMS’et skall se ut att komma ifrån. Där kan man ju välja nåt påhittat som man har programerat in i sin telefonbok för att tydligt se vad SMS’et gäller. Skapa tex. en kontakt i telefonen med nummer 123456789 som heter ”Serverrapport”.
Glöm inte att göra scriptet körbart med chmod +x
Nästa steg är att definiera kommandon i nagios för sms-notisen, i commands.cfg:
# 'notify-host-by-sms' command definitiondefine command{
command_name notify-host-by-sms
command_line /usr/bin/printf "%b" "*Serverinfo* Host: '$HOSTALIAS$' is $HOSTSTATE$: $OUTPUT$" | /usr/local/bin/sendsms $CONTACTPAGER$
}# 'notify-service-by-sms' command definition
define command{
command_name notify-service-by-sms
command_line /usr/bin/printf "%b" "*Serverinfo* Type: $NOTIFICATIONTYPE$: $SERVICEDESC$ @$HOSTNAME$: $SERVICESTATE$" | /usr/local/bin/sendsms $CONTACTPAGER$
}Ett kommando för host-notification och ett för service-notification.
Sen behöver man bara specifiera dessa kommandon i confen för den kontakt som skall få SMS-rapporter.
I contacts.cfg, i den aktuella kontakten:
service_notification_commands notify-service-by-email,notify-service-by-sms host_notification_commands notify-host-by-email,notify-host-by-sms
Nu skall det bara vara att köra och SMS skall förhoppningsvis skickas som komplement till de mail som går iväg.
Lämna gärna en kommentar nedan om du finner denna guide användbar.
Tackar! Det var en bra guide! Precis vad jag behövde
Undrar lite över $CONTACTPAGER$ som du använder i command_line för notify-{host|service}-by-sms. Definierar du det också i contacts.cfg?
Vad jag förstått är den ”inbyggd” i nagios och således inte definierad nånstans..
Jag hittade att det är ett macro, som man kan sätta ett värde på genom att definiera värdet ‘pager’ till mobilnumret hos den kontakt/kontaktgrupp man vill ska ha meddelanden
Alltså:
i contacts.cfg.
Just ja, så var det, kör precis på samma sätt själv. Var nåt år sen jag konfade den där biten
Gött! Då vet jag
Tackar för guiden!!