SlideShare a Scribd company logo
1 of 13
UNIVERSITÀ DEGLI STUDI DI TRIESTE
FACOLTÀ DI INGEGNERIA
CORSO DI LAUREA IN INGEGNERIA INFORMATICA

ANNO ACCADEMICO 2011/12

SISTEMI DI AUTOMAZIONE DEI MESSAGGI DI ALLARME PER
IL MONITORAGGIO DELLA RETE REGIONALE DELLA SANITÀ



Relatore:                                      Laureando:
Prof. Fulvio Sbroiavacca                    Michele Sinigoi
Correlatore:
Ing. Fabio Del Torre
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
IL CONTESTO: LA RETE REGIONALE
La 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 sul
progetto Ermes (connessione in fibra ottica), che verrà ad avere una
struttura gerarchica con 5 POP, i quali si occuperanno di distribuire il traffico
sulla rete.
La manutenzione di una rete così complessa è un’ attività che richiede
tempestività d’ intervento soprattutto in realtà quali il 118, i pronto
soccorso, i centri trasfusionali, i laboratori di analisi, eccetera.
IL SISTEMA: HP OPENVIEW
HP OpenView è una applicazione
per il monitoraggio delle reti, è
possibile tenere visivamente sotto
controllo tutti dispositivi in grado di
inviare una trap snmp.
Il sistema, tramite un browser degli
allarmi, ci permette di controllare i
nodi e con un event configurator di
associare a questi delle azioni da
far compiere al programma stesso.
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
PROGETTAZIONE DELLO SCRIPT
HP OpenView offre la possibilità di poter associare agli eventi degli script in
linguaggio 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.
DIAGRAMMA DI FUNZIONAMENTO DELLO
SCRIPT «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
SCRIPT DI «NODO DOWN»: GERARCHIA I
Vediamo 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;
            }
          }
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 inviare
l’ 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;
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
SCRIPT DI «NODO DOWN»: INVIO SMS
Per 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.
SCRIPT DI «NODO UP»
Questo secondo script aggiorna un file di testo con la data e l’ ora in cui il nodo risulta nuovamente
raggiungibile:

     #! /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;
CONCLUSIONI
Gli 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 allarmi



Il sistema è attivo da Aprile 2011 presso Insiel ed è attualmente
    utilizzato per il monitoraggio della rete

Eventuali 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.

More Related Content

Viewers also liked

Networkand internet
Networkand internetNetworkand internet
Networkand internetmagaita89
 
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...Luca Panteghini
 
Reti Wi-Fi E Sicurezza
Reti Wi-Fi E SicurezzaReti Wi-Fi E Sicurezza
Reti Wi-Fi E SicurezzaLuca Pinton
 
Un Approccio Moderno al Cross-Site Scripting
Un Approccio Moderno al Cross-Site ScriptingUn Approccio Moderno al Cross-Site Scripting
Un Approccio Moderno al Cross-Site ScriptingRenato Ferrua
 
Studio ed implementazione di schemi di crittografia visuale progressiva
Studio ed implementazione di schemi di crittografia visuale progressivaStudio ed implementazione di schemi di crittografia visuale progressiva
Studio ed implementazione di schemi di crittografia visuale progressivaAndrea Fiano
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiPietro Corona
 
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...fcecutti
 
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDAkylanee
 
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...Lorenzo Bevilacqua
 
Fusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessiFusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessisanpi89
 
Sviluppo di metodi per la sorveglianza acustica in ambienti urbani
Sviluppo di metodi per la sorveglianza acustica in ambienti urbaniSviluppo di metodi per la sorveglianza acustica in ambienti urbani
Sviluppo di metodi per la sorveglianza acustica in ambienti urbaniDavid158026
 
Progettazione ed implementazione di una base di dati per la gestione di emiss...
Progettazione ed implementazione di una base di dati per la gestione di emiss...Progettazione ed implementazione di una base di dati per la gestione di emiss...
Progettazione ed implementazione di una base di dati per la gestione di emiss...Francesco Occhioni
 
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...Stima pressione tracheale nel controllo della ventilazione meccanica mediante...
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...Nad1990
 
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Stefano Costanzo
 
Progettazione e realizzazione di una applicazione web per la gestione della p...
Progettazione e realizzazione di una applicazione web per la gestione della p...Progettazione e realizzazione di una applicazione web per la gestione della p...
Progettazione e realizzazione di una applicazione web per la gestione della p...Erni Durdevic
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Università degli Studi di Trieste
 
Slide generazione automatica di siti con mappe geografiche
Slide   generazione automatica di siti con mappe geograficheSlide   generazione automatica di siti con mappe geografiche
Slide generazione automatica di siti con mappe geograficheMartino Miani
 

Viewers also liked (19)

Networkand internet
Networkand internetNetworkand internet
Networkand internet
 
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...
Realizzazione di un sistema di gestione di grandi flotte di localizzatori sat...
 
Reti Wi-Fi E Sicurezza
Reti Wi-Fi E SicurezzaReti Wi-Fi E Sicurezza
Reti Wi-Fi E Sicurezza
 
Un Approccio Moderno al Cross-Site Scripting
Un Approccio Moderno al Cross-Site ScriptingUn Approccio Moderno al Cross-Site Scripting
Un Approccio Moderno al Cross-Site Scripting
 
Studio ed implementazione di schemi di crittografia visuale progressiva
Studio ed implementazione di schemi di crittografia visuale progressivaStudio ed implementazione di schemi di crittografia visuale progressiva
Studio ed implementazione di schemi di crittografia visuale progressiva
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
Slide - Tecniche di Test-driven development in ambito sicurezza informatica e...
 
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA
[SLIDE]Modellazione della dinamica di un liquido bifase mediante GPU CUDA
 
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...
Lorenzo Bevilacqua - Sviluppo di un'applicazione iPhone per la localizzazione...
 
Fusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessiFusione di impronta digitale e impronta vocale per il controlllo accessi
Fusione di impronta digitale e impronta vocale per il controlllo accessi
 
L’evoluzione dei linguaggi di scripting lato browser: Il caso dart - Luca Ala...
L’evoluzione dei linguaggi di scripting lato browser: Il caso dart - Luca Ala...L’evoluzione dei linguaggi di scripting lato browser: Il caso dart - Luca Ala...
L’evoluzione dei linguaggi di scripting lato browser: Il caso dart - Luca Ala...
 
Sviluppo di metodi per la sorveglianza acustica in ambienti urbani
Sviluppo di metodi per la sorveglianza acustica in ambienti urbaniSviluppo di metodi per la sorveglianza acustica in ambienti urbani
Sviluppo di metodi per la sorveglianza acustica in ambienti urbani
 
Progettazione ed implementazione di una base di dati per la gestione di emiss...
Progettazione ed implementazione di una base di dati per la gestione di emiss...Progettazione ed implementazione di una base di dati per la gestione di emiss...
Progettazione ed implementazione di una base di dati per la gestione di emiss...
 
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...Stima pressione tracheale nel controllo della ventilazione meccanica mediante...
Stima pressione tracheale nel controllo della ventilazione meccanica mediante...
 
Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cry...
Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cry...Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cry...
Studio ed Implementazione di Schemi di Crittografia Visuale mediante Java Cry...
 
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
Definizione e sviluppo di un algoritmo genetico multiobiettivo per problemi d...
 
Progettazione e realizzazione di una applicazione web per la gestione della p...
Progettazione e realizzazione di una applicazione web per la gestione della p...Progettazione e realizzazione di una applicazione web per la gestione della p...
Progettazione e realizzazione di una applicazione web per la gestione della p...
 
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
Progetto e realizzazione di uno strumento per la modifica sistematica di codi...
 
Slide generazione automatica di siti con mappe geografiche
Slide   generazione automatica di siti con mappe geograficheSlide   generazione automatica di siti con mappe geografiche
Slide generazione automatica di siti con mappe geografiche
 

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

Cattive abitudini e-lineeguida
Cattive abitudini e-lineeguidaCattive abitudini e-lineeguida
Cattive abitudini e-lineeguidaRobert Casanova
 
Ridirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoRidirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoBabel
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritornolordarthas
 
Sistemi operativi Fabiano Dalla Piazza
Sistemi operativi  Fabiano Dalla PiazzaSistemi operativi  Fabiano Dalla Piazza
Sistemi operativi Fabiano Dalla PiazzaFabiano Dalla Piazza
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Stefano Bianchini
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cmsorestJump
 
Installazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatInstallazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatBabel
 
Comunicazione tra procesi Linux
Comunicazione tra procesi LinuxComunicazione tra procesi Linux
Comunicazione tra procesi LinuxMarco Buttolo
 
Deploy Heroku-style di un child theme WordPress su VPS via GIT
Deploy Heroku-style di un child theme WordPress su VPS via GITDeploy Heroku-style di un child theme WordPress su VPS via GIT
Deploy Heroku-style di un child theme WordPress su VPS via GITPetrozzi Emilio
 
Gianfrasoft Corso Di Php Parte 2
Gianfrasoft   Corso Di Php   Parte 2Gianfrasoft   Corso Di Php   Parte 2
Gianfrasoft Corso Di Php Parte 2Gianfranco Fedele
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPFrancesco Fullone
 
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSLCorso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSLMassimiliano Masi
 
Tutto Quello Che Devi Sapere Su Cryptolocker.pdf
Tutto Quello Che Devi Sapere Su Cryptolocker.pdfTutto Quello Che Devi Sapere Su Cryptolocker.pdf
Tutto Quello Che Devi Sapere Su Cryptolocker.pdfHelpRansomware
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue paginesparkfabrik
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacyTommaso Torti
 
Multithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e AsincroniaMultithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e AsincroniaSebastiano Merlino (eTr)
 

Similar to Sistemi di automazione dei messaggi di allarme per il monitoraggio della rete regionale della sanità (20)

Cattive abitudini e-lineeguida
Cattive abitudini e-lineeguidaCattive abitudini e-lineeguida
Cattive abitudini e-lineeguida
 
Ridirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimentoRidirezionamento di I/O con Bash: un breve approfondimento
Ridirezionamento di I/O con Bash: un breve approfondimento
 
Sviluppo web dall'antichità all'avanguardia e ritorno
Sviluppo web  dall'antichità all'avanguardia e ritornoSviluppo web  dall'antichità all'avanguardia e ritorno
Sviluppo web dall'antichità all'avanguardia e ritorno
 
Php mysql3
Php mysql3Php mysql3
Php mysql3
 
sicurezza e php
sicurezza e phpsicurezza e php
sicurezza e php
 
Sistemi operativi Fabiano Dalla Piazza
Sistemi operativi  Fabiano Dalla PiazzaSistemi operativi  Fabiano Dalla Piazza
Sistemi operativi Fabiano Dalla Piazza
 
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
Sicurezza Php (giugno 2010) Stefano Bianchini presso Ce.Se.N.A.
 
Php mysql e cms
Php mysql e cmsPhp mysql e cms
Php mysql e cms
 
Perl Template Toolkit
Perl Template ToolkitPerl Template Toolkit
Perl Template Toolkit
 
Installazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red HatInstallazione di Joomla nel cloud di Red Hat
Installazione di Joomla nel cloud di Red Hat
 
Comunicazione tra procesi Linux
Comunicazione tra procesi LinuxComunicazione tra procesi Linux
Comunicazione tra procesi Linux
 
Linux Day 2009 LAMP HowTo
Linux Day 2009 LAMP HowToLinux Day 2009 LAMP HowTo
Linux Day 2009 LAMP HowTo
 
Deploy Heroku-style di un child theme WordPress su VPS via GIT
Deploy Heroku-style di un child theme WordPress su VPS via GITDeploy Heroku-style di un child theme WordPress su VPS via GIT
Deploy Heroku-style di un child theme WordPress su VPS via GIT
 
Gianfrasoft Corso Di Php Parte 2
Gianfrasoft   Corso Di Php   Parte 2Gianfrasoft   Corso Di Php   Parte 2
Gianfrasoft Corso Di Php Parte 2
 
Enrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHPEnrico Zimuel: La sicurezza delle applicazioni in PHP
Enrico Zimuel: La sicurezza delle applicazioni in PHP
 
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSLCorso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
Corso IFTS CyberSecurity Expert - Creazione di una CA con OpenSSL
 
Tutto Quello Che Devi Sapere Su Cryptolocker.pdf
Tutto Quello Che Devi Sapere Su Cryptolocker.pdfTutto Quello Che Devi Sapere Su Cryptolocker.pdf
Tutto Quello Che Devi Sapere Su Cryptolocker.pdf
 
Come Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagineCome Drupal costruisce le tue pagine
Come Drupal costruisce le tue pagine
 
Dominare il codice legacy
Dominare il codice legacyDominare il codice legacy
Dominare il codice legacy
 
Multithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e AsincroniaMultithreading, multiprocessing e Asincronia
Multithreading, multiprocessing e Asincronia
 

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

  • 1. UNIVERSITÀ DEGLI STUDI DI TRIESTE FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA ANNO ACCADEMICO 2011/12 SISTEMI DI AUTOMAZIONE DEI MESSAGGI DI ALLARME PER IL MONITORAGGIO DELLA RETE REGIONALE DELLA SANITÀ Relatore: Laureando: Prof. Fulvio Sbroiavacca Michele Sinigoi Correlatore: Ing. Fabio Del Torre
  • 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. IL CONTESTO: LA RETE REGIONALE La 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 sul progetto Ermes (connessione in fibra ottica), che verrà ad avere una struttura gerarchica con 5 POP, i quali si occuperanno di distribuire il traffico sulla rete. La manutenzione di una rete così complessa è un’ attività che richiede tempestività d’ intervento soprattutto in realtà quali il 118, i pronto soccorso, i centri trasfusionali, i laboratori di analisi, eccetera.
  • 4. IL SISTEMA: HP OPENVIEW HP OpenView è una applicazione per il monitoraggio delle reti, è possibile tenere visivamente sotto controllo tutti dispositivi in grado di inviare una trap snmp. Il sistema, tramite un browser degli allarmi, ci permette di controllare i nodi e con un event configurator di associare a questi delle azioni da far compiere al programma stesso.
  • 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. PROGETTAZIONE DELLO SCRIPT HP OpenView offre la possibilità di poter associare agli eventi degli script in linguaggio 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. DIAGRAMMA DI FUNZIONAMENTO DELLO SCRIPT «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. SCRIPT DI «NODO DOWN»: GERARCHIA I Vediamo 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. 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 inviare l’ 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. 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. SCRIPT DI «NODO DOWN»: INVIO SMS Per 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. SCRIPT DI «NODO UP» Questo secondo script aggiorna un file di testo con la data e l’ ora in cui il nodo risulta nuovamente raggiungibile: #! /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. CONCLUSIONI Gli 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 allarmi Il sistema è attivo da Aprile 2011 presso Insiel ed è attualmente utilizzato per il monitoraggio della rete Eventuali 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.