Skocz do zawartości
ICM

[tutorial] Darmowy Monitoring Loadu Via Sms

Polecane posty

[Tutorial] Darmowy monitoring loadu via SMS

 

Monitoring SMS pozwoli Ci spać w miare spokojnie. Będziesz wiedział, że Twój serwer nie ma większego loadu niż ten, który ustawisz w limicie skryptu.

 

A więc zaczynamy:

 

Logujesz się jako root

 

cd /root
nano uptime

 

Teraz wklejasz ten skrypt PERLa do Twojego pliku "uptime"

 

#! /usr/bin/perl

$uptime = `uptime`;

($j1,$j2) = split / load average: /, $uptime;
($j3,$j4) = split /,/, $j2;

if ( $j3 > 10 ) {
print "UPTIME WYNOSI AZ $j3\n";
open (MAIL, "|/usr/sbin/sendmail -t ");
	print MAIL "From: od\@domena.pl\n";
	print MAIL "To: smsl\@domena.pl\n";
	print MAIL "Content-Type: text/plain\n";
	print MAIL "Subject: Uptime S1: $j3\n\n";
	print MAIL "Uptime S1 jest wiekszy niz 10 i wynosi $j3";
close (MAIL);

}

Modyfikujesz liczbę "10" - oznacza ona maksymalny uptime serwera jaki uważasz za słuszny. W e-mialu "od\@domena.pl" zamieniasz na twojemail\@ty.pl" a następny e-mail to e-mail operatora, ale o tym za chwilę. [ !!! Pamiętaj, aby format e-maila w kodzie PERL-a zawierał "\" ]

 

Następnie dajesz do pliku crona linie...

 

nano /var/spool/cron/root

 

Wklej ten kod gdy chcesz monitorowac co minutę lub zmodyfikuj wg uznania:

* * * * * perl /root/uptime

 

Zamknij i zrestartuj crona.

 

service crond restat

lub

/etc/init.d/crond restart

 

 

Jeśli wpiszesz w konsoli SSH "perl /root/uptime" i nic się nie wyświetli

znaczy, że load jest dobry.

 

Jeśli load jest wyższy niż wynik Twój limit wyświetl się komunikat

"LOAD WYNOSI AZ X"

 

 

 

Teraz przejdzmy do sprawy powiadamiania na SMS...

 

 

Użytkownicy PLUS GSM są według mnie w najlepszej sytuacji,

 

Aby SMS-y dochodziły do Ciebie wystarczy wpisać w polu na e-mail do Ciebie ten e-mail

 

48XXXYYYZZZ@text.plusgsm.pl

 

Niestety ta metoda nie daje 100% gwarancji, że SMS dojdzie ale w większości przypadków

dochodzi. Gdy przekroczysz limit SMS wiadomości mogą nie dochodzić.

 

Co zrobić aby mieć pewność?

 

A no zainwestować jedyne 5zł + VAT i dzięki tej piątce netto będziesz

miał pewnośc, że powiadomienie dojdzie.

 

 

Wejdź na wwww.plusnet.pl i załóż skrzynke ""profil zielony"

(Srebrna nie bedzie do tego zastosowania potrzebna i trzeba płacić co miesiąc)

 

 

Po założeniu skrzynki ustaw powiadamianie SMS w opcjach na "od razu po przyjściu e-maila"

 

I Gotowe! Choćbyś 100 e-maili wysłał zawsze dojdzie! Czego nie można powiedzieć o poprzedniej

metodzie.

 

!!! Pamiętaj aby format e-maila w kodzie PERLa zawierał "\"

 

 

 

 

 

 

Pora na użytkowników ORANGE...

Tutaj przyszłośc nie jest aż taka jasna jak to

mówią w reklamie, ale jeszcze nic straconego.

 

Załóż konto na portalu www.orange.pl i wejdź do zakładaki "Profil"

Tam aktywuj usługę "Multi Box Gold"

 

Jest ona płatna, kosztuje 6,10 z VAT. Ja aktywowałem i nic nie zapłaciłem

chociaż było to aktywowane na karte Orange GO. Gdy masz abonament

dla firm usługa ta jest BEZPŁATNA.

 

 

Następnie przejdź do zakładki 'konfiguruj' >> 'powiadomienia'

Ustaw Powiadomienia dla Skrzynki wiadomości; aktywne i natychmiast

 

Wyślij sms-a testowego na ty@orange.pl, po chwili dojdzie

sms z tematem tego mejla i treścią. Jeśli działa można

dodawać do skryptu.

 

 

 

 

ERA...

 

Chociaż jestem klientem ery to nigdy nie testowałem ich funkcji,

ale jako konkurencji mają taką opcje, ale niestety dla oszczędnych

jest ona najdroższa w porównaniu do Plusa i Orange

 

Z Eranetu mogą korzystać Abonenci sieci Era oraz użytkownicy systemu Tak Tak. Aktywuj Twoją skrzynkę teraz! Wyślij SMS o treści EMAIL pod 7477 (aktywacja na 30 dni - 4,88 z VAT) albo 7877 (aktywacja na 90 dni - 9,76 z VAT).

 

 

Więcj na:

http://www.eranet.pl/

 

 

 

 

 

 

Podsumowując:

 

PLUS +486yyxxxxxx@text.plusgsm.pl lub nazwa@plusnet.pl (wymaga aktywacji usługi PlusNet)

ERA 6yyxxxxxx@eranet.pl (wymaga aktywacji usługi EraNet)

ORANGE nazwa@orange.pl (wymaga aktywacji usługi Multi Box)

 

 

 

 

 

 

 

 

 

 

 

Skrypt testowany na CentOS 4.5 z cPanel 11.

 

 

 

W razie pytań proszę pisać w temacie, ew. na PW

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

heh, w sumie standard ;)

Osobiście korzystam z tego (tzn. własne skrypty) lecz nie tylko na podstawie powiadomień o obciążeniu systemu lecz o raporty innych usług.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość Bartosz Gadzimski

Może standard, ale dzięki za przydatny skrypt.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Mam taki skrypt ale nie mogę zrobić wysyłania smsów do konsoli z ery, skrypty które testowałem nie działają. Mam skrypt napisany w php i on wysyła smsa ale to nic nie daję bo nie odpalę go z wyjściem z konsoli ;).

 

Jak ktoś podrzuci skrypt który wysyła smsy przez bramke sponsorowaną ery będę wdzięczny.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

No do tego monitoringu jeszcze trzeba monitoring portów. Dodać tutorial o monitoringu portów?

 

Pozdrawiam

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Trochę inaczej.

Jeśli 5minutowy load przekroczy $loadmax to wyśle maila na $youremail z wiadomością który serwer i jaki ma cały load.

 

#!/usr/bin/perl

#wykonaj aby miec dostep do Mail::Sendmail - /scripts/perlinstaller Mail:Sendmail
use Mail::Sendmail; #for sending mail
use Sys::Hostname; #for hostname

#--------------------------------------
#config
#--------------------------------------
$loadmax = 6;
$youremail = 'twoj@mail.pl';
#--------------------------------------
#config end
#--------------------------------------

#--------------------------------------
#helpers
#--------------------------------------
$thisserverhost = hostname();
$fromemail = 'root@' . "$thisserverhost";
#--------------------------------------
#helpers end
#--------------------------------------

#--------------------------------------
#check server load
#--------------------------------------
open(LOAD,"</proc/loadavg");
my $loadaverage = <LOAD>;
close(LOAD);

@loadsplit = split(/ /,$loadaverage);

if( $loadsplit[1] > $loadmax )
{
	my $loadwarning = 'LOAD WARNING ON ' . $thisserverhost;
	my $loadmessage = 'Load on server: ' . $thisserverhost . "\n@loadsplit\n\nMessage sent by LoadMonitor";

	my %mail = ( To	  => "$youremail",
				 From	=> "$fromemail",
				 Subject => "$loadwarning",
				 Message => "$loadmessage"
			   );

	sendmail(%mail) or die $Mail::Sendmail::error;
}
#--------------------------------------
#check server load end
#--------------------------------------

 

A wiadomość wygląda tak:

 

Load on server: moj.serwer.com

8.19 6.55 4.58 2/271 1037

 

 

Message sent by LoadMonitor

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Trochę odświeżę kotleta ;)

 

Czy ktoś wie jak ustawić skrypt żeby smsa dostać w sieci PLAY ?

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Obejrzałem skrypty w tym (reanimowanym) wątku i doszedłem do wniosku, że można zapisać to samo, ale dużo bardziej kompaktowo (korzystając z faktu, że stdout skryptu odpalonego z crona idzie na e-mail właściciela crontaba):

 

5-minutowy load serwera przekracza wartość 4:

 

*/5 * * * * cat /proc/loadavg | awk '$2 > 4 { print "High 5-minute load", $2 }'

Zużycie miejsca na dysku większe niż 90%:

00 21 * * * df | awk '/^\// && $5 > 90 { print $0 }'

I tak, dalej, zastosowania można łatwo sobie wymyśleć.

 

Odnośnie "w PLAY się nie da": można wykupić komercyjną bramkę SMS, która ma zwykle interfejs po HTTP/GET, co pozwoli pewnie wysyłać do siebie komunikaty SMS niezależnie od docelowej sieci (nie będę tu reklamował konkretnego dostawcy, można ich wyszukać w Google).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×