Ik kan niet genoeg benadrukken hoe belangrijk het is om zaken te meten (monitoring) en juist te alarmeren (alerting).
Het hebben van historische en actuele data is onmisbaar in het maken van de juste beslissingen. Ook duidelijk is dat tijdige “alerts” problemen voorkomen.
Een onlangs door mij gemaakt experiment is het bijhouden van internet-tegoed van een 3G modem zoals gebruikt op scholen in Tanzania en Kenia. Hiertoe dien je de correcte USSD-code te sturen welke het tegoed weergeeft.
Iedere provider heeft zijn eigen USSD-codes en tot nu toe heb ik dit alleen geïmplementeerd voor Airtel in Tanzania. De check is gemakkelijk uit te breiden voor andere providers
Hier het check script (/usr/local/bin/get_balance.pl):
#!/usr/bin/perl my @devices = qw(/dev/ttyUSB1 /dev/ttyUSB0 /dev/ttyUSB2); my $continue = 1; my $balance = 0; for my $dev (@devices) { if ($continue) { system("/usr/bin/comgt -d $dev sig >/dev/null 2>&1"); if ($? == 0) { $balance=`/usr/local/bin/gsm-ussd -m $dev *102# | cut -d" " -f4`; $continue = 0; } } } if ($balance < 1000) { print "CRITICAL - Your balance is Tsh $balance."; exit 2; } else { print "OK - Your balance is Tsh $balance."; exit 0; }
Dit script moet je aanroepen vanuit Nagios om het actuele tegoed te verkrijgen: