Nagios SMS-Benachrichtigungen: Unterschied zwischen den Versionen

Aus ITwiki
Wechseln zu: Navigation, Suche
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 37: Zeile 37:
 
  rtscts = no
 
  rtscts = no
 
  incoming = no
 
  incoming = no
 +
message_limit=15
 +
message_count_clear=30
  
Kurz den Parameter '''device''' erklärt: mir ist aufgefallen, dass beim Entfernen des Samsung Gerätes und beim Neuanstecken automatisch von /dev/ttyACM0 auf /dev/ttyACM1 geändert wird. Das hat zur Auswirkung, dass der Parameter in der Konfig-Datei geändert werden müsste. Da
+
'''message_limit''' legt fest, wieviele SMS innerhalb '''message_count_clear''' (in Minuten) verschickt werden können. Im Beispiel sind das 15 SMS innerhalb 30 Minuten. Dadurch soll ein "Spamen" und die Handykosten reduziert werden.
 +
 
 +
Kurz auch noch den Parameter '''device''' erklärt: mir ist aufgefallen, dass beim Entfernen des Samsung Gerätes und beim Neuanstecken automatisch von /dev/ttyACM0 auf /dev/ttyACM1 geändert wird. Das hat zur Auswirkung, dass der Parameter in der Konfig-Datei geändert werden müsste. Da
  
 
  /dev/serial/by-id/usb-Samsung_SAMSUNG_Mobile_USB_Modem_000000-00-000000-if01
 
  /dev/serial/by-id/usb-Samsung_SAMSUNG_Mobile_USB_Modem_000000-00-000000-if01
Zeile 64: Zeile 68:
 
== Nagios ==
 
== Nagios ==
  
Sollte der SMS-Versand klappen, ist es nur noch ein kleiner Schritt zum Erfolg:
+
Sollte der SMS-Versand klappen, ist es nur noch ein kleiner Schritt zum Erfolg. Lege in Nagios am Besten für den SMS-Versand separate Kontakte an und nimm die Kontakte in eine Gruppe "sms-user" auf - die Handynummer hab ich übrigens bei der Mail-Adresse des Kontaktes eingetragen... Erstelle neue Befehle / Commands (notify-host-by-sms und notify-service-by-sms), die wie folgt aussehen:
 +
 
 +
/usr/bin/sendsms '$CONTACTEMAIL$' "Nagios $NOTIFICATIONTYPE$ Host $HOSTNAME$, $HOSTSTATE$ since $SHORTDATETIME$: $HOSTOUTPUT$"
 +
 
 +
bzw. für den Service
 +
 
 +
/usr/bin/sendsms '$CONTACTEMAIL$' "Nagios $NOTIFICATIONTYPE$ Service $SERVICEDESC$ ($HOSTNAME$), $SERVICESTATE$ since $SHORTDATETIME$: $SERVICEOUTPUT$"
  
<Hier noch weitermachen>
+
Weiße nun den vorher erstellen Kontakten diese zwei Befehle als Host- bzw. Service-Benachrichtigung zu. Ist das erledigt, navigiere zum Host bzw. zum Service, der per SMS überwacht werden soll und gib die Kontaktgruppe "sms-user" als Benachrichtigungsgruppe an - Nagios neu starten, fertig.
  
 
== Nützliche Links ==
 
== Nützliche Links ==
Zeile 72: Zeile 82:
 
* [http://smstools3.kekekasvi.com/ Die smstools auf kekekasvi.com]
 
* [http://smstools3.kekekasvi.com/ Die smstools auf kekekasvi.com]
  
[[Kategorie:Konfiguration]]
+
[[Kategorie:Monitoring]]

Aktuelle Version vom 2. Oktober 2012, 11:45 Uhr

Vorwort[Bearbeiten]

Um Nagios für den SMS-Versand zu konfigurieren, benötigt man

  1. Ein Handy mit entsprechendem SMS-Tarif (ich empfehle das Samsung B2100, hat man gleich eine Taschenlampe mit dabei ^^)
  2. Die smstools
  3. Eventuell Gnokii (Tool zum Kommunizieren mit Mobiltelefonen; sollte /dev/ttyACM0 nicht nach dem Anstecken des Telefons gefunden werden, installieren!)

Hat man das alles, kann's losgehen!

Installation[Bearbeiten]

Unter Debian lässt sich der SMS-Server sehr leicht installieren:

apt-get install smstools

Was auffällig ist: das Script sendsms ist bei dem Paket nicht dabei, daher am Besten noch von der Hersteller-Seite das TAR.GZ-File runterladen, entpacken und hier gibt es das Bash-Script, einfach nach /usr/bin oder so kopieren und mit chmod ausführbar machen.

Der nächste Schritt besteht darin, die Datei /etc/smsd.conf zu editieren. Bei mir habe ich folgendes eingetragen:

devices = GSM1
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
loglevel = 7
[GSM1]
device = /dev/serial/by-id/usb-Samsung_SAMSUNG_Mobile_USB_Modem_000000-00-000000-if01
rtscts = no
incoming = no
message_limit=15
message_count_clear=30

message_limit legt fest, wieviele SMS innerhalb message_count_clear (in Minuten) verschickt werden können. Im Beispiel sind das 15 SMS innerhalb 30 Minuten. Dadurch soll ein "Spamen" und die Handykosten reduziert werden.

Kurz auch noch den Parameter device erklärt: mir ist aufgefallen, dass beim Entfernen des Samsung Gerätes und beim Neuanstecken automatisch von /dev/ttyACM0 auf /dev/ttyACM1 geändert wird. Das hat zur Auswirkung, dass der Parameter in der Konfig-Datei geändert werden müsste. Da

/dev/serial/by-id/usb-Samsung_SAMSUNG_Mobile_USB_Modem_000000-00-000000-if01

ein Softlink auf das entsprechende Device (ttyACM0, ttyACM1 etc.) ist und immer gleich lautet, macht es natürlich Sinn, den Parameter wie bei mir beschrieben zu ändern. Dann Dienst neu starten

/etc/init.d/smsd restart

und eine Test-SMS senden

/usr/bin/sendsms +49123456789 "Test-Text"

Wichtig: es muss unbedingt die Landesvorwahl (+49 für Deutschland) angegeben werden, sonst wird in

/var/log/smstools/smsd.log

ein Fehler protokolliert:

+CMS ERROR: 21 (Short message transfer rejected)

Die genannte Log-Datei ist für Troubleshooting übrigens die richtige Anlaufstelle. Mit Nokia-Handys (6230i etc.) hatte ich Probleme, ich konnte einfach keine SMS versenden, das Samsung-Gerät funktionierte auf Anhieb.

Wichtige Einstellung am Samsung-Handy: beim Anstecken frägt das Gerät per Standard nach, ob es am Samsung PC Studio, als Media Player oder Massenspeicher verwendet werden soll. Es wäre doof, jedes mal, wenn das Telefon neu angestöpselt wird / wenn die Verbindung mal kurz zum Server unterbrochen wurde, diese Eingabe zu bestätigen. In den Handy-Einstellungen gibt es einen Punkt Verbindungen, hier kann man fix Samsung PC Studio einrichten.

Nagios[Bearbeiten]

Sollte der SMS-Versand klappen, ist es nur noch ein kleiner Schritt zum Erfolg. Lege in Nagios am Besten für den SMS-Versand separate Kontakte an und nimm die Kontakte in eine Gruppe "sms-user" auf - die Handynummer hab ich übrigens bei der Mail-Adresse des Kontaktes eingetragen... Erstelle neue Befehle / Commands (notify-host-by-sms und notify-service-by-sms), die wie folgt aussehen:

/usr/bin/sendsms '$CONTACTEMAIL$' "Nagios $NOTIFICATIONTYPE$ Host $HOSTNAME$, $HOSTSTATE$ since $SHORTDATETIME$: $HOSTOUTPUT$"

bzw. für den Service

/usr/bin/sendsms '$CONTACTEMAIL$' "Nagios $NOTIFICATIONTYPE$ Service $SERVICEDESC$ ($HOSTNAME$), $SERVICESTATE$ since $SHORTDATETIME$: $SERVICEOUTPUT$"

Weiße nun den vorher erstellen Kontakten diese zwei Befehle als Host- bzw. Service-Benachrichtigung zu. Ist das erledigt, navigiere zum Host bzw. zum Service, der per SMS überwacht werden soll und gib die Kontaktgruppe "sms-user" als Benachrichtigungsgruppe an - Nagios neu starten, fertig.

Nützliche Links[Bearbeiten]