Tomasz Piękoś

Tomasz Piękoś Senior IT Specialist

Temat: Monitorowanie trasy łącza

Zastanawiam się jak monitorować taką sytuację.
Są 2 routery działające w trybie hot-standby prezentujące się pod wspólnym adresem wirtualnym. Podejrzewam że jest to HSRP, ale jako że nie mam dostępu do tych routerów nie moge powiedzieć tego na 100%.
W jaki sposób monitorować, przez który router idzie transmisja w danej chwili?
Traceroute różni się jednym hopkiem - może poprzez analizę tego zbudować serwisy i wyrzucać criticala, gdy aktywnym jest router backupowy ?

Są jakieś gotowe wtyczki czy trzeba będzie coś napisać?

konto usunięte

Temat: Monitorowanie trasy łącza

Możesz użyć choćby tego skryptu (o ile jest załączone snmp na routerach).


/check_cisco_hsrp.sh -H 10.35.10.249 -C public -m state 5
OK - 10.35.10.249 is in HSRP State: standby

./check_cisco_hsrp.sh -H 10.35.10.248 -C public -m state 5
CRITICAL - 10.35.140.248 is in HSRP State: Active but should be Standby

States:
Standby = 5
Active = 6



SNMP ogólnie najlepiej sie do tego nadaje. Niemniej jak dobrze zauważyłeś w przypadku braku załączonego SNMP na routerach (i braku możliwości jego załączenia) możesz oprzeć wyszukiwanie statusu w oparciu o traceroute lub Net::Traceroute z perla:

use Net::Traceroute;
$tr = Net::Traceroute->new(host => "$_");
if($tr->found) {
my $hops = $tr->hops;
if ($hops == 2) {
print "Działa pierwszy"
exit 0;
} else {
print "Działa drugi, padł pierwszy? :)"
exit 2;
}

}

Oczywiście powyższe do modyfikacji ;)Mariusz Derela edytował(a) ten post dnia 22.12.11 o godzinie 09:13
Tomasz Piękoś

Tomasz Piękoś Senior IT Specialist

Temat: Monitorowanie trasy łącza

routery są w rękach dostawcy korporacyjnego WANa - nie ma siły żeby mi odpalili tam SNMP.
A że z perla jestem kompletna noga to czeka mnie lekkie googlowanie ;]
Dzieki za podpowiedź ;]

konto usunięte

Temat: Monitorowanie trasy łącza

Nie trzeba perla - chociaż jest bardzo wygodny. Można użyć zwykłego shella, zrobić tail -n 1 na tracepath, później sed, awk lub cut wyciąć ilość hop i na podstawie wyniku podejmować odpowiednie działanie :) czyli potrzeba na to nie więcej niż 5 linii (wiem wiem... Złośliwi powiedzą że wystarczy jedna w awk :))

Pisze z telefonu więc mogą być błędy:

until [ $1 ] ; do echo "Nalezy podac jako parametr IP routera"; exit ;done

hops="`tracepath -n $1 | tail -n 1 | awk '{print $5}'`"
if [ $hops -eq 2 ] ; then
echo ok;
exit 0;
elif [ $hops -eq 3 ]; then
echo "oczekiwałem 2, a dostałem 3 hopy, "
exit 1
else
echo "coś czego w kolejce do lekarza nie przewidzialem"
exit 2;
fi


lub wersja minimalistyczna:

tracepath -n 192.168.0.1 | tail -n 1 | awk '{ if ($5==2) { print "OK"; exit 0 } else if ( $5==3 ){ print "Dziala drugi - otrzymalem hop="$5" a spodziewalem sie 2"; exit 1} else { print "Kompletnie nieznany wynik"; exit 2} }'
Mariusz Derela edytował(a) ten post dnia 22.12.11 o godzinie 15:04
Tomasz Piękoś

Tomasz Piękoś Senior IT Specialist

Temat: Monitorowanie trasy łącza

a co jesli trasy różnią się hopkiem w sensie innego adresu ?
Ja się naprawde za to zabiorę, ale pewnie w grobie dopiero ;/Tomasz Piękoś edytował(a) ten post dnia 22.12.11 o godzinie 15:30

konto usunięte

Temat: Monitorowanie trasy łącza

to najprościej zamiast ip routera podawaj ip jakiegoś adresu za Twoją siecią (możliwie najbliższego) i badaj ilość hopek.

Jeśli dobrze rozumiem problem oczywiście.

Przykładowo tracepath pokazuje 5 hopów do bramy Twojej sieci i jest to sytuacja klasyczna. Nagle Twój router pada i automatycznie ruch przerzucany jest na drugi router i masz informację, że nagle hopów pojawia się 6 (tak zrozumiałem problem). Nie ma paniki - bo ruch ciągle przechodzi, niemniej fajnie by było wiedzieć, że coś niedobrego stało się z jednym urządzeniem. Dobrze rozumiem problem?:)Mariusz Derela edytował(a) ten post dnia 22.12.11 o godzinie 16:36
Tomasz Piękoś

Tomasz Piękoś Senior IT Specialist

Temat: Monitorowanie trasy łącza

no właśnie nie tak ;]
liczba hopków jest taka sama zarówno dla głównego jak i zapasowego łącza.
Różnią się tylko adresami hopków

ps: Wesołych Świąt - komputer zamykam w szafie i wracam w poniedziałek ;]

konto usunięte

Temat: Monitorowanie trasy łącza

Ups to źle zrozumiałem. Tak więc więc wystarczy sprawdzać co jest na końcu. napisze coś około środy :)

Wesołych Świat :)

Po drobnej modyfikacji powinno być to czego oczekujesz :)

until [ $1 ] ; do echo "Nalezy podac jako parametr IP routera"; exit ;done

ip="`tracepath -n $1 | tail -n 2 | head -n 1 | awk '{print $2}'`"
if [ "$ip" = "192.168.0.1" ] ; then
echo ok;
exit 0;
elif [ "$ip" = "192.168.0.2" ]; then
echo "Oczekiwalem na adres 192.168.0.1, dostalem inny"
exit 1
else
echo "coś czego w kolejce do lekarza nie przewidzialem"
exit 2;
fi

Mariusz Derela edytował(a) ten post dnia 02.01.12 o godzinie 14:12

Następna dyskusja:

monitorowanie zdalnych host...




Wyślij zaproszenie do