Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Skript na hlídání odpovědi na ping

Návody a problémy s konfigurací.
sacnok
Příspěvky: 345
Registrován: 9 years ago

Skript na hlídání odpovědi na ping

Příspěvekod sacnok » 7 years ago

Ahoj, máte někdo funkční skript, který mi na Mikrotiku bude hlídat, jestli mi odpovídá jedna, nebo více IP adres a v případě výpadku pošle mail.
0 x

georgee
Příspěvky: 42
Registrován: 9 years ago

Příspěvekod georgee » 7 years ago

Script


IP_TEST

Kód: Vybrat vše

# Testovani dostupnosti serveru
# script zjistuje dostupnost zadanych adres serveru a zmenu stavu zasila na udany mail
# script predpoklada tri globalni promenne A, B a C.
# A je pole IP adres oddelene carkami
# B je pole nazvu serveru oddelene carkami
# C je pole stavu
# 1=server je dostupny, 2=server je nedostupny - cekam,3=server je nedostupny

#Zde vyplnte vas email
:global email neco@email.local

#"natazeni" globalnich promennych
:global A;
:global B;
:global C;

:global stav ""
:global predchozistav ""
:global novystav ""
:global zprava ""

:for i from=0 to=([:len $A]-1) do={
    :set predchozistav [:pick $C $i]
:put $predchozistav
    :if ([/ping [:pick $A $i] count=5] = 0) do={
      :if ($predchozistav = 2) do={
         :set zprava ($zprava . [:pick $B $i] . " DOWN!,")
         :log error ([:pick $B $i] . " DOWN!")
      }
      :set novystav 3
      :if ($predchozistav = 1) do={
         :set novystav 2
      }
   } else={
      :if ($predchozistav = 3) do={
         :set zprava ($zprava . [:pick $B $i] . " UP!,")
         :log error ([:pick $B $i] . " UP!")
      }
      :set novystav 1
   }
   :set stav ($stav . "," . $novystav)
}
#Odesli zpravu
:if ([:len $zprava] > 0) do={
    /tool e-mail send to=$email  subject=("Cas: " . [/system clock get time]) body=$zprava
}
           
#uloz novy stav
:set C [:toarray $stav]




startup

Kód: Vybrat vše

:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];



do Scheduleru si dej jak IP_TEST tak i startup ten nastavit po startu "start time - startup"
Naposledy upravil(a) georgee dne 05 May 2017 13:48, celkem upraveno 3 x.
0 x

Uživatelský avatar
goblajz
Příspěvky: 820
Registrován: 16 years ago
antispam: Ano

Příspěvekod goblajz » 7 years ago

Startup má být jen

Kód: Vybrat vše

:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];
0 x

georgee
Příspěvky: 42
Registrován: 9 years ago

Příspěvekod georgee » 7 years ago

goblajz píše:Startup má být jen

Kód: Vybrat vše

:global A [:toarray "111.111.111.111,222.222.222.222,333.333.333.333"];
:global B [:toarray "router A,router B,router C"];
:global C [:toarray "1,1,1"];


Diky opraveno, to je to kdyz neumi nekdo pouzivat crtl+c a ctrl+v :-D
0 x

sacnok
Příspěvky: 345
Registrován: 9 years ago

Příspěvekod sacnok » 7 years ago

Díky, jak často pak pouštíte ten IP_TEST
0 x

georgee
Příspěvky: 42
Registrován: 9 years ago

Příspěvekod georgee » 7 years ago

sacnok píše:Díky, jak často pak pouštíte ten IP_TEST

Mam ho kazdych 5 minut.
0 x

ludvik
Příspěvky: 4448
Registrován: 12 years ago

Příspěvekod ludvik » 7 years ago

Většině stačí funkce Netwatch.
0 x
Jelikož je zde zakázáno se negativně vyjadřovat k provozním záležitostem, tak se holt musím vyjádřit takto: nové fórum tak jak je připravováno považuji za cestu do pekel. Nepřehledný maglajz z toho bude. Do podpisu se mi pozitiva již nevejdou.

sacnok
Příspěvky: 345
Registrován: 9 years ago

Příspěvekod sacnok » 7 years ago

Je mezi tím skriptem a Netwatch jiný rozdíl, než ten že skript má "3 stavy" a Netwatch jenom 2
0 x

sacnok
Příspěvky: 345
Registrován: 9 years ago

Příspěvekod sacnok » 6 years ago

Chtěl jsem rozběhat skript viz výše, ane chodí mi.

Nasměrujeme mě někdo kde mám chybu?

V proměných se mi nastaví proměnné A, B, C, email, predchozistav -> 1, zbytek zůstává nevyplněný

-- Ping_startup --
:global A [:toarray "8.8.8:8,77.75.77.53"];
:global B [:toarray "Google,Seznam"];
:global C [:toarray "1,1,1"];

----

-- Ping_monitor --
# Testovani dostupnosti serveru
# script zjistuje dostupnost zadanych adres serveru a zmenu stavu zasila na udany mail
# script predpoklada tri globalni promenne A, B a C.
# A je pole IP adres oddelene carkami
# B je pole nazvu serveru oddelene carkami
# C je pole stavu
# 1=server je dostupny, 2=server je nedostupny - cekam,3=server je nedostupny

#Zde vyplnte vas email
:global email sacnok@seznam.cz

#"natazeni" globalnich promennych
:global A;
:global B;
:global C;

:global stav ""
:global predchozistav ""
:global novystav ""
:global zprava ""

:for i from=0 to=([:len $A]-1) do={
:set predchozistav [:pick $C $i]
:put $predchozistav
:if ([/ping [:pick $A $i] count=5] = 0) do={
:if ($predchozistav = 2) do={
:set zprava ($zprava . [:pick $B $i] . " DOWN!,")
:log error ([:pick $B $i] . " DOWN!")
}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
}
} else={
:if ($predchozistav = 3) do={
:set zprava ($zprava . [:pick $B $i] . " UP!,")
:log error ([:pick $B $i] . " UP!")
}
:set novystav 1
}
:set stav ($stav . "," . $novystav)
}
#Odesli zpravu
:if ([:len $zprava] > 0) do={
/tool e-mail send to=$email subject=("Cas: " . [/system clock get time]) body=$zprava
}

#uloz novy stav
:set C [:toarray $stav]
0 x

georgee
Příspěvky: 42
Registrován: 9 years ago

Příspěvekod georgee » 6 years ago

sacnok píše:Chtěl jsem rozběhat skript viz výše, ane chodí mi.

Nasměrujeme mě někdo kde mám chybu?

V proměných se mi nastaví proměnné A, B, C, email, predchozistav -> 1, zbytek zůstává nevyplněný

-- Ping_startup --
:global A [:toarray "8.8.8:8,77.75.77.53"];
:global B [:toarray "Google,Seznam"];
:global C [:toarray "1,1,1"];

----



Za prvé ta máš chybu
:global A [:toarray "8.8.8:8,77.75.77.53"];



a za druhé
:global C [:toarray "1,1,1"]; na :global C [:toarray "1,1"];



Máš jen na dvě adresy
0 x

sacnok
Příspěvky: 345
Registrován: 9 years ago

Příspěvekod sacnok » 6 years ago

Díky :thumbsup:

Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"
0 x

sacnok
Příspěvky: 345
Registrován: 9 years ago

Příspěvekod sacnok » 6 years ago

sacnok píše:Díky :thumbsup:

Dal by se skript upravit tak, že by posílal i zprávu při stavu č. 2 -> "server je nedostupny - cekam na overeni"


Tak jsem na to přišel, vložil jsem další řádek do místa, kde se nastavuje stav č. 2

}
:set novystav 3
:if ($predchozistav = 1) do={
:set novystav 2
:set zprava ($zprava . [:pick $B $i] . " Down - cekam 3 minuty na overeni,")
}
0 x

mpcz
Příspěvky: 2779
Registrován: 18 years ago

Příspěvekod mpcz » 4 years ago

Používám podobný script skript, ale změnil jsem logiku výpisu. Tedy: pokud je v tabulce NETWATCH jeden nebo více cílů se statusem "down", vypíše je SMSka na telefonu (nastavitelně) jednou za 10/20/30 ... minut všechny zaráz pod sebou ve tvaru:

05:10 20aug 40.209 hospoda Dzban 3x (takto je v SMS vidět první řádek na displayi v okamžiku přijetí a říká, že ukryté - /po rozkliku/ jsou ještě 3 další záznamy)
40.211 skola
40.215 Novakovi
40.251 hala Sport

Přijde mi tento systém mnohem přehlednější než NETWATCH v základu, protože u něj při větším provozu velmi lehce docházelo k přehlédnutí poruchové SMS mezi jinými SMS zprávami z banky a emaily a také je z hromadného výpisu na první pohled rozpoznat, kde je na řetězeném spoji problém. Každé ráno a večer pošle stejný skript kontrolni SMS - "TEST" pro kontrolu, že systém funguje. Doporučuji.
Email na urgentní hlášky nepoužívám. Někdy se ty poštovní servery zavzdušní a poruchový email přijde klidně i na druhý den, běžně za několik hodin. mpcz, 20aug2019
0 x

mpcz
Příspěvky: 2779
Registrován: 18 years ago

Příspěvekod mpcz » 4 years ago

Zdravím, mám dotaz, než se pustím do vlastního boje. Nezahlédl někdo skript script, který zařídí, že?:
Klient má trvale v rozsahu scanu zadánu jen jednu frekvenci, která je nastavená na AP. Při ztrátě spojení s AP se tedy znovuspojí cobydup. Pokud ale technik na AP změní frekvenci na jinou, skript zařídí změnu rozsahu scanu na default nebo dle zadání. Tu novou zjištěnou zadá jako jedinou do rozsahu scanu. Něco mi říká, že by to nemuselo být složité, určitě něco takového už někoho napadlo a řešil to.
To je pouze má pracovní teorie, ale domnívám se, že by to mohlo podstatně vylepšit provoz na klientovi, který je neznámým zdrojem zarušen tak, že během dne i 3x spojení spadne, vlivem daného procesu znovupřipojování u MKT zbytečně i na cca 30 sec., čehož si klient zcela určitě povšimne.
Dík, mpcz, 8sep2019
0 x

CrazyApe
Příspěvky: 790
Registrován: 9 years ago

Příspěvekod CrazyApe » 4 years ago

Asi to nen moc k tematu ale myslim, ze zbytecne slozite skriptovat neco takoveho. Primarne by si asi mel vyresit pricinu toho, ze musis za den 3x neco preladovat...a pak mas vypadky. Nejspis bude duvod ten, ze pouzivas nevhodne anteny(HW klient+ap) do prostredi v kterem nabizis sve sluzby a nebo je klient moc daleko od AP a nebo obojí dohromady . Nevim kolik mas lidi oproti třeba siti o kterou se staram ja ale ja přeladuju tak 1 sektor za 14 dnů a to nejsem v zadnem nezarusenem prostredi casto scanuju i 150+ sítí.
0 x