Sistemi di automazione dei messaggi di allarme per il monitoraggio della rete regionale della sanità

490 views
427 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
490
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Sistemi di automazione dei messaggi di allarme per il monitoraggio della rete regionale della sanità

  1. 1. UNIVERSITÀ DEGLI STUDI DI TRIESTEFACOLTÀ DI INGEGNERIACORSO DI LAUREA IN INGEGNERIA INFORMATICAANNO ACCADEMICO 2011/12SISTEMI DI AUTOMAZIONE DEI MESSAGGI DI ALLARME PERIL MONITORAGGIO DELLA RETE REGIONALE DELLA SANITÀRelatore: Laureando:Prof. Fulvio Sbroiavacca Michele SinigoiCorrelatore:Ing. Fabio Del Torre
  2. 2. OBIETTIVI Realizzare un servizio di alert su eventi significativi disponibile h 24 Poter essere immediatamente informati di eventuali problemi ai nodi Creare una gerarchia tra i nodi in modo da evitare l’ invio di messaggi multipli per un singolo problema che affligge più nodi Evitare di scatenare allarmi per problemi momentanei, che non necessitano dell’ intervento del personale Insiel Integrazione di un sistema per l’ invio di sms da affiancare a quello delle email per poter estendere il servizio ed avere un addetto sempre raggiungibile
  3. 3. IL CONTESTO: LA RETE REGIONALELa Rupar è la rete regionale in Friuli Venezia-Giulia che connette: Sedi della regione (SIAR) Aziende ospedaliere, centrali operative del 118, eccetera (SISR) Enti locali come comuni, provincie, biblioteche, scuole eccetera (SIAL)Al momento è in atto una migrazione verso la nuova Rupar basata sulprogetto Ermes (connessione in fibra ottica), che verrà ad avere unastruttura gerarchica con 5 POP, i quali si occuperanno di distribuire il trafficosulla rete.La manutenzione di una rete così complessa è un’ attività che richiedetempestività d’ intervento soprattutto in realtà quali il 118, i prontosoccorso, i centri trasfusionali, i laboratori di analisi, eccetera.
  4. 4. IL SISTEMA: HP OPENVIEWHP OpenView è una applicazioneper il monitoraggio delle reti, èpossibile tenere visivamente sottocontrollo tutti dispositivi in grado diinviare una trap snmp.Il sistema, tramite un browser degliallarmi, ci permette di controllare inodi e con un event configurator diassociare a questi delle azioni dafar compiere al programma stesso.
  5. 5. STRUMENTI UTILIZZATI HP OpenView è il software per il monitoraggio della Rupar del Friuli Venezia-Giulia attualmente utilizzato in Insiel Event configuration di HP OpenView Linguaggio di programmazione Perl SMSMachine/XML
  6. 6. PROGETTAZIONE DELLO SCRIPTHP OpenView offre la possibilità di poter associare agli eventi degli script inlinguaggio Perl, saranno necessari 2 script da associare all’ evento di«nodo down» e a quello di «nodo up». Si procederà nello sviluppo di uno script in grado di inviare email e/o sms nell’ eventualità che un nodo diventi irraggiungibile, badando di rispettare la gerarchia e aggiungendo la possibilità, per lo script, di aggiornare un file di testo da far consultare agli script associati ai nodi di livello più basso, che saranno perciò in grado di bloccare l’ invio del proprio messaggio in quanto il problema sarà localizzato al livello superiore. Il secondo script, necessario per controllare che non vengano inviati allarmi per problemi di pochi istanti di tempo, sfrutterà anch’ esso un file di testo, che verrà aggiornato con data e ora del problema. Lo stesso file verrà letto e controllato dallo script di «nodo down» per determinare se sia necessario procedere con l’ invio degli allarmi.
  7. 7. DIAGRAMMA DI FUNZIONAMENTO DELLOSCRIPT «NODO DOWN» Generazione allarme su HP OpenView Scrittura sul proprio Invio email e sms file di gerarchia Festivo Controllo del file di Controllo che il nodo gerarchia a livello non sia tornato Controllo data e ora superiore raggiungibile File di livello più Nodo Feriale elevato down raggiungibile Termina Termina Invio email
  8. 8. SCRIPT DI «NODO DOWN»: GERARCHIA IVediamo come lo script scrive sul file di testo: my $gerlog_sisr = C:Program FilesHP OpenViewlogallarmi_scriptgerarchia_POPTS.txt; my $time = localtime; open( GER, >>, $gerlog_sisr ) or die "Non riesco ad aprire $gerlog_sisr"; print GER "n"; print GER "$time POPTS DOWN"; close GER;E come controlla il file del nodo di gerarchia superiore: open( GER, <, $gerlog_pop ); my $gr = -s $gerlog_pop; my $last; my $off = 256; while( ! defined( $last ) ){ $off = $gr if $off > $gr; seek( GER, -$off, SEEK_END ) or warn "Ricerca fallita!"; my @rows = <GER>; if( @rows > 1 ){ $last = $rows[ -1 ]; } elsif( $off >= $gr ) { $last = $rows[ 0 ]; } else { $off += 256; } }
  9. 9. SCRIPT DI «NODO DOWN»: GERARCHIA II $now = time(); $date = substr ($last,0,24); $mod = str2time($date); if ($mod+600 >= $now){ print "il nodo a livello superiore è down, invierà lui i messaggi di allarme"; }Se l’ ora scritta sul file è inferiore ai 10 minuti con quella attuale sarà il nodo di gerarchia superiore a inviarel’ allarme altrimenti si prosegue con l’ esecuzione dello script: else { my $file = C:Program FilesHP OpenViewlogallarmi_scriptlog_POPTS.txt; my $time = localtime; open( LOG, >>, $file ) or die "Non riesco ad aprire $file"; print LOG "n"; print LOG "$timen"; print LOG "NODO DOWNn"; close LOG;
  10. 10. SCRIPT DI «NODO DOWN»: INVIO EMAIL my $mess = ("$time | $node | $alert"); @indirizzi_email = (@indirizzi_email, @email_to); foreach my $indirizzi (@indirizzi_email) { my $from = ‘nome@insiel.it; my $smtp = ‘123.45.67.89; my $sub = Controllare . $node . !; $msg = MIME::Lite->new( From => $from, To => $indirizzi, Subject => $sub, Type => multipart/mixed )or die "Errore nella creazione del contenitore: $!n"; $msg->attach ( Type => TEXT, Data => $mess )or die "Errore nell aggiungere il testo: $!n"; MIME::Lite->send(smtp,$smtp, Timeout=>60, Debug => 1); $msg->send; } close INDIRIZZI; }Le variabili $time, $node e $alert vengono fornite dall’ alarm browser
  11. 11. SCRIPT DI «NODO DOWN»: INVIO SMSPer l’ invio degli sms è necessario configurare la SMSMachine/XML open( SMSMACHINEDATA , C:PerlbinSMSMachinedata.txt) or die ("Non riesco ad aprire il file in letturan"); my @data = split(/ /, <SMSMACHINEDATA>); my $numero = $data[0]; my $ipSMSMachine = $data[1]; my $post = http://. $ipSMSMachine ./smssend.cgi; my $ua = LWP::UserAgent->new; $ua->request (POST $post, [ num => $numero text => Controllare POPTS !, mode => mode = 0, Pwd => ‘PASSWORD, ]); close SMSMACHINEDATA;Quindi si procede con l’ invio anche degli sms.
  12. 12. SCRIPT DI «NODO UP»Questo secondo script aggiorna un file di testo con la data e l’ ora in cui il nodo risulta nuovamenteraggiungibile: #! /usr/bin/perl -w use strict; use warnings; my $file = C:Program FilesHP OpenViewlogallarmi_scriptlog_POPTS.txt; my ($sec,$min,$ore,$giom,$mese,$anno,$gios,$gioa,$oraleg) = localtime(time); open( LOG, >>, $file ) or die "Non riesco ad aprire $file"; print LOG "n"; print LOG scalar localtime; print LOG "n"; print LOG "NODO UP"; close LOG;
  13. 13. CONCLUSIONIGli obiettivi sono stati tutti raggiunti.Infatti lo script: È in grado di inviare sia email che sms Rispetta la gerarchia In caso di problemi momentanei si ferma e non lancia gli allarmiIl sistema è attivo da Aprile 2011 presso Insiel ed è attualmente utilizzato per il monitoraggio della reteEventuali sviluppi futuri riguardano la copertura di più nodi all’ interno della rete, estendendo così il servizio già disponibile in modo da migliorare la tempestività nella risoluzione dei problemi.

×