Server mit YAPS überwachen
Von Ulrich Dessauer gibt es ein Software-Paket, genannt YAPS (Yet another pager software), mit dem man SMS-Mails
an Handys durch einen Aufruf aus einem Terminal verschicken kann. Dieses Paket wird z.B. mit der Distribution von SuSE ab
Version 6.0 ausgeliefert. Diese Programm unterstüzt in der Standart Version leider nur die alten gängigen Vorwahlen der Netzanbieter.
Durch eine kleine Erweiterung der yaps.rc Datei im Verzeichnis /etc kann man jedoch auch die
neuen Vorwahlen nutzen.
Ziel dieses HowTo's soll sein, einen Server zu überwachen und im Falle das dieser mit einem Ping nicht erreichbar ist,
mit YAPS eine SMS an den Admin schicken.
Voraussetzungen:
Linux (in diesem Fall wird von SuSE (ab Version 6.0) ausgegangen).
1 PC mit einem konfigurierten ISDN Anschluss
Installiertes Paket YAPS (Serie n)
Editieren von yaps.rc:
Im Folgenden werden nur die relevanten Optionen beschrieben und die Änderungen sind
fett dargestellt und Punkte denen man
besondere Beachtung schenken sollte sind rot eingefärbt.
#########################################
# global section #
#########################################
#
# This is a comma seperated list of available services. This
# is required for autodetect the matching service for a
# pager-id
services D1,D1new,D2,D2new,E+
---snip---
# If you'd like to log every sending session define this. It should
# point to a writeable file. If you install the software setgid, then
# change the group of this file to the same yaps uses and make it
# group writeable.
logfile /var/log/yaps.log
---snip---
# Set this to the modem device you wish to use
#device /dev/modem
#device /dev/cua1
#device /dev/cua/a
devive /dev/ttyI0
---snip---
#########################################
# service section #
#########################################
#
# D1 (by Deutsche Telekom)
#
[D1]
protocol tap
valid-pid 0171|0049171|49171
change-pid 0171
convert *no-8bit,cv-d1
cv-d1 {
Ä [
Ö \
Ü ~
ä {
ö |
ü ~
ß ^]
}
+cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4
phone 01712521001
# use this number for isdn-dialin:
# phone 01712521001
max-size 160
may-split True
use-call-id False
tap-old True
#
# D1 (by Deutsche Telekom)
#
[D1new]
protocol tap
valid-pid 0170|0049170|49170
change-pid 0170
convert *no-8bit,cv-d1
cv-d1 {
Ä [
Ö \
Ü ~
ä {
ö |
ü ~
ß ^]
}
+cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4
phone 01712521001
# use this number for isdn-dialin:
# phone 01712521001
max-size 160
may-split True
use-call-id False
tap-old True
#
# D2 (by Mannesmann Mobilfunk)
#
[D2]
modem standard-d2
protocol ucp
valid-pid 0172|0049172|49172
change-pid 0172
convert *no-8bit,cv-default
+cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4
phone 01722278020
# use this number for isdn-dialin:
# phone 01722278010
max-size 160
may-split True
use-call-id True
can-delay True
can-expire True
can-rds True
check-call-id >1111111111111111<
check-pager-id >1111111111111111<
ucp-extend True
#
# D2 (by Mannesmann Mobilfunk)
#
[D2]
modem standard-d2
protocol ucp
valid-pid 0173|0049173|49173
change-pid 0173
convert *no-8bit,cv-default
+cost timetable=Wk0800-1800=5.7;Wk1800-0800=11.4;Ss=11.4
phone 01722278020
# use this number for isdn-dialin:
# phone 01722278010
max-size 160
may-split True
use-call-id True
can-delay True
can-expire True
can-rds True
check-call-id >1111111111111111<
check-pager-id >1111111111111111<
ucp-extend True
Jetzt sollte YAPS bereits funktionieren (ansonsten ins LOG-File schauen). Zum Test auf der Console folgenden Befehl eingeben:
yaps HANDYNUMMER "Hallo Test"
Jetzt soll der Server noch überwacht werden. Hierzu schreiben wir ein kleines Shellscript.
pingserver:
#!bin/sh
#########################################################################
# Ping-Test an Server1, wenn keine Packete erhalten werden SMS an Handy #
#########################################################################
ping 10.216.80.2 -c 2 | grep '0 packets received' > /dev/ttyIO && yaps Handynummer "Server1 offline"
Erklärung:
Der Server mit der IP-Adresse 10.216.80.2 wird zweimal angepingt. Das Ergebnis wird nach dem Suchstring
0 packets received durchsucht. Sollte der Suchstring zutreffen, soll eine Umleitung auf das ISDN-Device folgen.
Hierbei wird der Befehl um YAPS auszuführen, Handynummer und Text übergeben.
Das Script soll natürlich automatisch und z.B. alle 2 Stunden ausgeführt werden. Deshalb noch folgenden Eintrag als cronjob:
# Server1 online
0 10,12,14,16,18,20,22 * * * /scripte/shell/pingserver
Cont@ct: mail: Thomas
Müller