Newsgroup: it.comp.os.linux.sys
Titolo: Monitorare un indirizzo IP

Ciao a tutti!
In ufficio abbiamo una connessione DSL. Domani ne arrivera' una seconda,
che sara' usata per connettersi ad alcuni altri Servers.
La prima (quella gia' esistente) viene usata tramite un Modem, quindi ho
un device ppp0, mentre per la seconda ho solo un router a disposizione.
Ora, nel primo caso e' per me molto facile capire quando la connessione ha
problemi, in quanto in caso di disconnessione il device ppp0 svanisce in
una nuvoletta di zolfo (e vengono chiamati gli script in
/etc/ppp/ip-down.d/).
Nel secondo caso, invece, il device rimane li, anche se poi non si riesce
ad andare oltre al router...
Pensavo di controllare la raggiungibilita' di un IP "certo", e definire la
connessione come "fallita" nel caso in cui questo IP non sia piu'
raggiungibile.
Nello specifico, sarebbe l'IP del router del Provider, direttamente
collegato al mio Router. Il provider mi ha gia' garantito che una cosa del
genere e' permessa.
Ora, prima di mettermi a scrivere uno script che, in caso di
disconnessione faccia qualcosa (nello specifico, fermare Nagios prima di
trovarsi la coda piena di E-Mail di notifica...), vorrei sapere se esiste
gia' qualcosa di gia' fatto (il massimo sarebbe addirittura come pacchetto
Debian, ma non mi formalizzo).
In pratica, esiste un qualche programma o script che mi scateni una certa
azione (configurabile) nel caso in cui un certo IP non sia piu'
raggiungibile?
Grazie!
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 raggiungibile?
Non lo so ma io ci metterei 3 minuti a farlo.
Configuri nagios per mandare una mail ad un utente locale in caso di
problemi.
La mail viene consegnata in un file che viene creato ad hoc se non esiste
(questo file coincide con la mbox dell'utente).
[fin qui non hai fatto nulla se non configurare nagios, 3 minuti]
Quando il file viene creato (inizialmente non esiste) usi inotify (con
incrond, ad esempio) per scatenare l'evento che preferisci.
Cancelli il file che ormai non ti serve più e torni al punto iniziale.
Se sai usare incrond, il tempo è coincidente a quello di scrittura dello
script. Se non lo sai usare, aggiungi 20 minuti per leggere la
documentazione.
-- 
A: Because we read from top to bottom, left to right.
Q: Why should i start my reply below the quoted text?

 documentazione.
Scusa, saro' "de coccio", ma non capisco come il configurare Nagios per
mandare un'E-Mail possa servirmi per sapere che un certo IP non e'
raggiungibile...
Oltretutto (questo mi ero dimenticato di scriverlo prima!), nel momento in
cui realizzo che la connessione e' sparita, dovrei anche riconfigurare un
paio di route per poter comunque raggiungere dei Server, tramite l'altra
DSL...
E quindi arriviamo al punto: avere un qualche programma/script/quelchee'
che mi richiami uno script quando un certo IP non e' piu' raggiungibile e
un altro script quando l'IP e' nuovamente raggiungibile.
Esiste qualcosa di gia' fatto?
Grazie


 Debian, ma non mi formalizzo).
(Assumendo che il router sia in grado di loggare) Uno script che fa un
tail -f | grep del log ed esegue un'azione quando individua certi pattern
e' troppo semplicistico per le tue esigenze?

 e' troppo semplicistico per le tue esigenze?
In tal caso, faccio addirittura scatenare l'evento da Syslog, ma purtroppo
se il Router non "collabora", non posso farlo...
E, no! Non parla neanche SNMP...
Ciao


 script, senza stare li' a vedere se il file esiste o meno.
OK, e' un po' piu' complicato di dover semplicemente spedire l'E-Mail...
Il fatto e' che il ping lo faccio anche senza Nagios.
Era solo per sapere se esiste GIA' qualcosa che continua a pingare a
intervalli molto stretti (Nagios pinga ogni qualche minuto) e a scatenare
un evento in caso di fallimento.
Pare di no, quindi dovro' scrivermi qualcosa...
Grazie comunque


 Esiste qualcosa di gia' fatto?
http://blog.taragana.com/wp-content/upload/gwping

 
Ho scritto quattro righe di numero al volo. Mandano l'email a chi vuoi
tu. Puoi anche fargli eseguire un programmino, se vuoi.
Ciao,
Michele
(Spero nell'indentazione)
#!/usr/bin/python
import os, sys, smtplib, time
from subprocess import call
time_wait = 1
count = 1
timeout = 1
ip = "a_non_exists_ip"
smtp_server = "localhost"
mail_from = "
a_real_addrs@a_domain.it
"
mail_to = "
a_real_addrs@a_domain.it
"
while True:
   try:
     ret = call("ping -w %s -c %s %s" % (timeout, count, ip), shell=True)
     if ret:
       header = {}
       header['Subject'] = 'Ping problem on %s' % ip
       header['From'] = mail_from
       header['To'] = mail_to
       msg_send = "\r\n".join( ("%s: %s" % (k, v) for k, v in 
header.iteritems() ) )
       s = smtplib.SMTP()
       s.connect(smtp_server)
       s.sendmail(mail_from, [mail_to], msg_send)
       s.close()
     time.sleep(time_wait)
   except KeyboardInterrupt:
     break

 Debian, ma non mi formalizzo).
monit
4 righe di config e gli fai fare un ping al router del provider.
Se va giù, gli fai fare quello che ti pare.

 Se va giů, gli fai fare quello che ti pare.
Ecco, questa e' una bella idea!
Ora purtroppo abbiamo il Server sotto attacco e ho altro da fare, ma penso
proprio che faro' cosi'!
Grazie a tutti!


 
Limitandosi esclusivamente al problema Nagios, basta che inserisci in 
nagios stesso come host da monitorare il router del provider e lo 
configuri come "parent" di tutti i server che raggiungi tramite quella 
connessione.
In caso di down di quel router Nagios non ti manderà (se opportunamente 
configurato) allarmi per i server situati "dietro".
Ciao.
-- 
Sandro.