Faqs
Do You Have Any Questions?
Sie können die Schnittstellen von SMS4.de nutzen, um Alarmbenachrichtungen von Nagios per SMS zu versenden. Zum Versand könnten Sie beispielsweise einen Wrapper (sms4nagios.pl, siehe unten) verwenden.
1) Speichern Sie das Perlskript sms4nagios.pl (s.u.) auf Ihrem Überwachungsserver
2) Editieren Sie die misccommands.cfg und fügen folgendes hinzu:
# 'notify-by-sms' command definition
define command{
command_name notify-by-sms
command_line perl /usr/bin/perl/sms4nagios.pl $CONTACTPAGER$ "$SERVICEDESC$ auf $HOSTNAME$ State: $SERVICESTATE$ @$DATETIME$ Info: $OUTPUT$"
}
# 'host-notify-by-sms' command definition
define command{
command_name host-notify-by-sms
command_line perl /usr/bin/perl/sms4nagios.pl $CONTACTPAGER$ "Host $HOSTALIAS$ is $HOSTSTATE$ @$DATETIME$ Info: $OUTPUT$"
}
Das Makro $CONTACTPAGER$ wird hier verwendet, um die Handynummer der zu benachrichtigenden Personen an den Wrapper zu übergeben. Bitte ändern Sie ggf. den Pfad zum Perlskript sms4nagios.pl entsprechend.3) Pflegen Sie in Nagios einen Contact, der die Benachrichtigungen (24x7) erhalten soll:
# 'Alarm Handy' contact definition
define contact{
contact_name Alarm
alias Alarm-Handy
service_notification_period 24x7
host_notification_period 24x7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-by-sms
host_notification_commands host-notify-by-sms
pager 491500123456
}
4) Ändern Sie das Perlskript sms4nagios.pl:
Das Beispiel nutzt die Email-Schnittstelle . Ersetzen Sie die Angaben für Kundennummer und berechtigte Email (Email freischalten hier). Der Versand kann auch über die HTTP-Schnittstelle erfolgen. Die Email-Schnittstelle hat neben der Einfachheit aber den Vorteil, dass Dubletten gefiltert (siehe Einstellungen) werden können, um bei einem größeren Ausfall nicht massenhaft die gleichen SMS zu erhalten.
#!/usr/bin/perl
#####################################################################
# sms4nagios.pl
# Beispielcode für den Versand von SMS mit Nagios
# Aufruf über Kommandozeile, Versand per Email-Schnittstelle (XML)
# Autor: Joachim Nenning info@sms4.de
# für www.sms4.de
#####################################################################
# prüfen, ob beide Kommandozeilen-Parameter übergeben wurden
unless ( scalar(@ARGV)==2 ) {
die "2 Parameter erwartet: Handynr Nachricht\n";
}
# Parameter aus @ARGV auslesen
my $handynr = shift; # Handynummer(n)
my $text = shift; # Text der SMS
my @handyentities = map {
"<handynr>".$_."</handynr>";
} split(",",$handynr);
my $kdnr= "XY12345";#Bitte mit Ihrer Kundennr ersetzen
# Ihre Absenderkennung ( 6 bis 11 Zeichen Text oder 6 bis 14 Ziffern )
# nur relevant für Tarif 1
my $absender = "NAGIOSALARM";
my $tarif = 1;# empfohlen: Tarif 1 mit Absenderkennung und Sendeberichten, direkte Terminierung im SMSC
my $to = 'xml@sms4.de';# E-Mail-Adresse des Gateways
my $from = 'meine@berechtigte-email.de';# eine berechtigte E-Mail-Adresse
my @sendmail_paths=(
'/usr/sbin/sendmail',
'/usr/bin/sendmail',
'/usr/lib/sendmail',
'/var/qmail/bin/sendmail'
);
my $SENDMAIL;
# prüfen, wo Sendmail sich befindet
foreach (@sendmail_paths){
if (-e $_){
$SENDMAIL=$_;
}
}
die ("Kann Sendmail nicht finden\n") unless ($SENDMAIL);
# Mail an Gateway senden
open (SENDMAIL, "|$SENDMAIL -oi -t") or die "Kann Sendmail nicht starten\n";
print SENDMAIL <<"...";
Subject: $kdnr
To: $to
From: $from
MIME-Version: 1.0
Content-Type: text/plain; charset="iso-8859-15"
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
<emailtosms>
<sms>
<text>$text</text>
@handyentities
<absender>$absender</absender>
<tarif>$tarif</tarif>
</sms>
</emailtosms>
...
close(SENDMAIL);
Weitere Anpassungen sind denkbar: Man könnte z.B. zusätzlich den Tarif oder die Kundennummer als Parameter im command übergeben.
Die Länge der Nachricht ist auf 160 Zeichen begrenzt (wird automatisch abgeschnitten). Sie können in den Versandoptionen die Eretierugn auf bis zu 765 Zeichen erlauben.5) Zum testen Sie können das Perlskript auch direkt aufrufen:
perl /usr/bin/perl/sms4nagios.pl 491500123456 "Dies ist ein Test"Um zu verhindern, dass Zeilenumbrüche im Text das Shellcommando abschneiden, könnte man z.B. so verfahren:
echo -e "zeile1\nzeile2" | tr -d "\n" | perl -pe 'print `perl /usr/bin/perl/sms4nagios.pl 491500123456 "$_"`'Hinweise:
Der Versand via HTTP-Schnittstelle (Beispielskript auf Anfrage) ist u.U. etwas schneller, weil keine Email-Umwandlung erfolgen muss, Dubletten können dann aber nicht automatisch ausgefiltert werden.
Anregungen, Fragen, Fehler gefunden? E-Mail an info@sms4.de
Liste mit Handynummern umwandeln
| Auf dieser Seite wird Ihnen erklärt wie sie eine Handynummernliste für den SMS-Massenversand mit Listenformat Nr.4 erstellen (Vorgehensweise bei den Listenformaten 1,2 und 5 ist analog). |
| Um eine Handynummerliste zu laden öffnen Sie zunächst das Programm Microsoft Excel: Legen Sie eine neue Datei an. |
![]() |
| nach oben |
| Um die Handynummer im korrekten Format anzuzeigen muss die Handynummer-Spalte so formatiert werden, dass Excel die Zeilen als Text darstellt. Dadurch wird die 0 am Anfang jeder Handynummer nicht abgetrennt. Wie Sie eine Spalte in Excel formatieren, wird Ihnen im Folgenden erklärt: Klicken Sie mit der rechten Maustaste auf den Spaltenkopf der Spalte, in der Sie die Handynummern speichern wollen. Wählen Sie nun "Zellen formatieren" aus: |
|
| nach oben |
| In dem Reiter "Zahlen" klicken Sie dann auf "Text". Jetzt wird in jeder Zeile dieser Spalte die Eingabe als Text gespeichert: |
![]() |
| nach oben |
| Nun können Sie in der soeben formatierten Spalte Ihre Handynummern eingeben (falls nicht schon geschehen). Kontrollieren Sie bitte, ob die Handynummern richtig und vollständig sind. |
![]() |
| nach oben |
| Um die Liste mit den Handynummern nun im richtigen Format abzuspeichern gehen Sie wie folgt vor: Klicken Sie auf "Speichern unter..." |
![]() |
| nach oben |
| Zunächst können Sie Ihrer Liste einen Namen geben (z.B. "Liste"). Dann sollten Sie als Dateityp "*.csv" auswählen. Jetzt ist die Datei in dem Verzeichnis, dass sie ausgewählt haben als Datei gespeichert, die Sie bequem hochladen können, um Massen SMS zu versenden. |
![]() |
| nach oben |
Ihre Handynummer wird benötigt, um Ihnen den Testzugang zuzuweisen und Missbrauch zu verhindern. Sie erhalten nach der Anmeldung eine SMS mit einem Bestätigungscode, den Sie eingeben müssen, um Ihren Zugang zu aktivieren. So wird sichergestellt, dass Sie tatsächlich Zugriff auf die angegebene Nummer haben und der Testzugang nicht mehrfach oder missbräuchlich beantragt wird.
Sie erhalten unter Neuanmeldung Ihre Zugangsdaten und 5 Test-SMS. Bitte tragen Sie diese in Charly unter Stammdaten - Sonstiges - Einstellungen - SMS Provider - SMS4Restful- Zugangsdaten ein. Bitte waehlen Sie SMS4Restful als Protokoll aus und achten Sie auf die richtige Reihenfolge der Eingabefelder.
Ja, zu Beginn ist Sie identisch mit Ihrer eigenen Handynummer. Die Absenderkennung kann aber später auch in Textform geändert werden. Grundsätzlich kann die Absenderkennung in Form von max. 11 alphanumerischen (Text) oder max. 14 numerischen Zeichen angegeben werden. Bei reinem Text als Absenderkennung gibt es aber Anzeigeprobleme bei alten Handies. Die Verwendung von Sonderzeichen außer . und - kann im Extremfall sogar dazu führen daß die SMS zwar ausgeliefert aber nicht empfangen wird. Probleme kann es auch geben, wenn der Text kürzer als 6 Zeichen ist, ein @ Symbol wird dann bei einigen Handies angehängt. Ebenso gibt es Probleme, wenn eine Absenderkennung größer als 11 Zeichen ist, es wird dann eine fiktive Nummer vom Gateway angezeigt. Alphanumerische Absenderkennungen (Text) sind bei Tarif 1 - SMS ins Festnetz - generell nicht erlaubt, sondern nur numerische.





