Sisteme de Comunicatii cu Ajutorul Unei Platforme de Tip Cloud
Supravegherea sistemelor de comunicații cu ajutorul unei platforme de tip Cloud
Proiect de diplomă
LISTA FIGURILOR
Figura 1.1- Structura generală a unui sistem de comunicații
Figura 2.1- Virtualizarea unui sistem de operare (container)
Figura 2.2- Platforma de virtualizare
Figura 2.3- Elementele și acțiunile specifice arhitecturii orientate spre servicii
Figura 2.4- Conexiune punct la punct și conexiune prin HUB
Figura 2.5- Stiva Cloud
Figura 2.6- Unity (Varianta desktop pentru Ubuntu)
Figura 3.1- Grup de obiecte de tip gazdă cu aceleași servicii
Figura 3.2- Exemplu de tratare al incidentelor
Figura 3.3- Moduri de comunicare SNMP
Figura 3.4- Comenzi de instalare pe surse pentru componentele Nagios
Figura 3.5- Comenzi de instalare pe surse a aplicației Nagios pentru versiunea Red Hat
Figura 3.6- Realizarea grupului și a utilizatorului
Figura 3.7- Configurarea serverului MySQL
Figura 3.8- Interfața aplicației Nagios 3
Figura 3.9- Interfața aplicației phpMyAdmin
Figura 3.10- Sincronizarea Nagios-Nconf
Figura 3.11- Crearea unei gazde
Figura 3.12- Crearea unui serviciu HTTP
Figura 3.13- Notificarea prin e-mail a administratorului
LISTA ACRONIMELOR
AMD Producător de procesoare
BIOS Basic Input/Output Software
DNS Domain Name System
FCAPS Modelul Fault, Configuration, Accounting, Performance, Security Management
FTP File Transfer Protocol
GUFW Graphic User Interface for Uncomplicated Firewall
HTTP Hypertext Transfer Protocol
IaaS Infrastructure as a Service
IOS Sistem de operare pentru telefoane iPhone
IP Internet Protocol
ISO International Organization Standardization
ISP Internet Service Provider
IT Information Technology
JPEG Joint Photographic Experts Group
LAN Local Area Network
LDAP Lightweight Directory Access Protocol
M2M Machine-to-Machine
MIB Management Information Base
MySQL Bază de date
NConf Interfață grafică pentru Nagios
NIST Institutul Național de Standarde și Tehnologie
NMS Networking Monitoring System
NRPE Nagios Remote Plugin Executor
PaaS Platform as a Service
PHP Hypertext Preprocessor
PING Protocol folosit pentru verificarea conexiunii
PNG Portable Network Graphics
RAM Random Access Memory
SaaS Software as a Service
SAN Storage Area Network
SMS Short Message Service
SMTP Simple Mail Transfer Protocol
SNMP Simple Network Management Protocol
SNMPv2c Community-Based Simple Network Management 2
SNMPv2u User-Based Simple Network Management Protocol 2
SOA Service-oriented Architecture
SSL Secure Sockets Layer
TCP Transmission Control Protocol
TLS Transport Layer Security
UDP User Datagram Protocol
UNIX Grupul sistemelor de operare Linux
UPS Uninterruptible Power Supply
VLAN Virtual Local Area Network
Introducere
Comunicarea reprezintă în ziua de astăzi un lucru foarte important în viața oamenilor. Telefoanele mobile, posturile radio, televiziunile, calculatoarele cu acces la Internet, ziarele sunt capabile de a furniza comunicații rapide dintr-un colț în altul al globului. Toate aceste mijloace de comunicare fac viața oamenilor mai ușoară. Le oferă posibilitatea de a vorbi cu diferite persoane dragi aflate la mare distanță. Totodată, comunicarea reprezintă un ajutor de nădejde pentru nave în largul mării, pentru piloții de avioane în zbor și pentru rachetele și sateliții din spațiu. Comunicarea realizată fără fir păstrează un șofer, de exemplu, în legatură cu familia sa aflată acasă. O altă întrebuințare a comunicării poate fi informarea unui meteorolog cu privire la condițiile atmosferice măsurate de anumiți senzori. Lista este foarte lungă, poate chiar fără sfârșit, privind folosirea comunicării. Așadar, procesul de comunicare reprezintă ceva vital pentru societatea modernă și va fi mereu un lucru de actualitate. După cum va fi prezentat și în această lucrare, comunicarea la distanță este realizată de echipamente specifice numite sisteme de comunicații. O altă tendință, prezentă în zilele noastre, vizavi de comunicare este aceea ca fiecare sistem, echipament de comunicație să fie conectat unul cu celălalt. Acest lucru este realizat prin tehnologia M2M (conexiune mașină la mașină), tehnologie ce presupune existența cel puțin a unei legături, conexiuni între toate terminalele tehnologice de pe glob. Un exemplu simplu de conexiune mașină la mașină, ar putea fi ilustrat prin posibilitatea de a avea acces pe telefonul mobil la diferite informații precum temperatura mâncării aflată la cuptor sau informații despre propriul copil în diverse situații. Acest lucru oferă părinților posibilitatea de a avea grijă de copii și de a lucra în același timp, având în vedere că timpul este un lucru prețios în ziua de astăzi. Această tehnologie a fost dezvoltată cu scopul de a elimina problema distanței și a timpului, pentru a face viața omului mai ușoară. Dacă din punctul de vedere al transmiterii informației problema este rezolvată, este necesară și o stocare a informației. Până acum ceva timp stocarea se făcea fizic pe discuri sau pe hard-uri. În prezent a fost dezvoltată o altă tehnologie, tehnologie ce permite stocarea pe internet a datelor. Această tehnologie se numește Cloud Computing, o tehnologie ce permite renunțarea la mediile clasice de stocare. Este o tehnologie revoluționară pentru că datele sunt imposibil de pierdut, iar volumul de date nu este limitat.
Cloud Computing este o tehnologie fiabilă pentru că se bazează pe mai multe medii de stocare ce lucrează în paralel. De exemplu, pentru stocarea unor date sunt puse la dispoziție cel puțin trei servere din diferite locații ale globului și astfel se asigură copii multiple ale datelor. Această tehnologie împreună cu conexiunile mașină la mașină vor realiza pe viitor acea tendință de conectare a tuturor terminalelor. În concluzie, aceste tehnologii au fost dezvoltate pentru oameni și reprezintă tehnologii de viitor aflate în procese continue de îmbunătățire.
În această lucrare vor fi abordate ca sisteme de comunicații, rețelele de comunicații, iar ca suport, ca tehnologie, vor fi utilizate și descrise platformele Cloud, mai exact conceptul Cloud Computing.
Sisteme de comunicații
Introducere
Această lucrare descrie modalitatea de realizare a unei platforme Cloud pentru supravegherea sistemelor de comunicații. Sistemele de comunicații reprezintă totalitatea echipamentelor care permit transportul informației între două sau mai multe puncte prestabilite (fixe sau mobile), cu un anumit grad de fidelitate. Sistemele de comunicație cuprind sursa de informație pentru echipamentul de emisie, canalul de transmisie, echipamentul de recepție și un destinatar. În sensul cel mai fundamental, comunicarea presupune transmiterea informațiilor de la un punct la altul printr-o succesiune de procese, precum următoarele:
a) Generarea unui semnal
b) Descrierea semnalului, realizată printr-un set de simboluri: electrice, audio sau vizuale
c) Codarea acestor simboluri într-o formă potrivită pentru transmiterea lor peste canal
d) Transmiterea simbolurilor codate la destinația dorită
e) Decodarea și reproducerea simbolurilor originale
f) Recrearea mesajului original
Există multe alte forme de comunicare, care nu implică în mod direct ființele umane. De exemplu, în comunicațiile ce au loc între două sau mai multe calculatoare, deciziile umane pot intra doar în stabilirea programelor, a comenzilor pentru calculator sau în rezultatele monitorizării. Indiferent de forma procesului de comunicare există trei elemente de bază pentru fiecare sistem de comunicații, și anume, un transmițător, un canal și un receptor cum sunt prezentate în figura 1.1 de mai jos. Transmițătorul este situat într-un punct din spațiul de comunicare, receptorul este situat într-un alt punct separat de poziția emițătorului, iar canalul este mediul de suport fizic ce conectează cele două entități. Scopul emițătorului este de a converti semnalul produs de sursă într-o formă adecvată pentru transmisie peste canalul de comunicație. Cu toate acestea, semnalul transmis ce se propagă de-a lungul canalului, este deformat datorită imperfecțiunilor mediului de transmisie. Mai mult decât atât, zgomotul și semnalele de interferență (originare din alte surse) sunt adăugate la ieșirea canalului, astfel încât semnalul recepționat este o versiune modificată a semnalului transmis. Receptorul are sarcina a reconstrui mesajul original pentru utilizator. Există două moduri de bază de comunicare:
1. Comunicarea Broadcasting, comunicare ce implică utilizarea unui singur transmițător principal și numeroase receptoare. În acest caz semnalele, purtătoare de informație au o singură direcție de la transmițător spre receptoare.
2. Comunicarea punct la punct, comunicare ce are loc pe o legătură între un singur emițător și un receptor. În acest caz, există de obicei un flux bidirecțional de informație, care necesită utilizarea unui emițător și receptor, la fiecare capăt al legăturii. În imaginea următoare este prezentată structura generală a unui sistem de comunicație:
Figura 1.1 – Structura generală a unui sistem de comunicații
Modul Broadcasting este exemplificat prin servicii radio și servicii de televiziune, iar cel mai uzual exemplu de comunicație punct la punct este telefonul mobil. Un alt exemplu de comunicație punct la punct și de sistem de comunicații îl reprezintă rețelele de comunicații. Acest model de sistem de comunicații va fi abordat în continuare, în această lucrare. [1]
1.2 Rețele de comunicații
O rețea de comunicații este infrastructura care permite comunicarea între două sau mai multe calculatoare. Rețeaua realizează acest lucru prin furnizarea unui set de reguli de comunicare, numite protocoale, care ar trebui să fie respectate de către toți utilizatorii participanți. Folosirea unui protocol permite comunicarea diferitelor calculatoare de la diferiți furnizori și cu diferite caracteristici de funcționare. Rețeaua este alcătuită din două tipuri de componente: noduri și linii de comunicații. Nodurile se ocupă de protocoalele de rețea și oferă posibilități de comutare. Liniile de comunicare pot lua forme diferite, chiar și în aceeași rețea. Acestea pot fi: cabluri de cupru, fibră optică și linii telefonice. Un calculator de tip gazdă este conectat la rețea printr-o linie de comunicare separată. În cele mai multe cazuri, mai multe calculatoare de tip gazdă pot fi conectate la același nod, în rețea. Din punct de vedere al unui calculator rețeaua poate reprezenta un întreg la care sunt conectate toate nodurile rețelei. Fiecare gazdă are o adresă unică alocată de către rețea. Pentru ca două calculatoare să comunice între ele este necesar ca fiecare dintre ele să știe adresa celuilalt. Toate procesele de comunicare între gazde vor trece prin nodurile rețelei, noduri ce se ocupă de rutarea informației în cadrul rețelei de comunicații. Rutarea informației reprezintă de fapt drumul parcurs de informație de la emițător la destinatar. Acest proces se realizează pe baza adreselor IP alocate de rețea fiecărui participant.[2]
În această lucrare rețeaua de comunicație va fi realizată virtual cu ajutorul platformelor de tip Cloud, iar componentele rețelei vor fi două noduri realizate cu ajutorul mașinilor virtuale: „Controller” și „Compute”. În continuare, va fi abordat conceptul Cloud Computing.
2. Cloud Computing
2.1 Introducere
Cloud Computing este o tehnologie nouă și foarte folosită în zilele noastre, prezentă în foarte multe domenii, și din ce în ce mai cunoscută în rândul oamenilor. Există foarte multe interpretări ale acestui termen, însă nu vom găsi niciodată o definiție standard. Tehnologia Cloud Computing încurajează furnizarea și utilizarea infrastructurii IT, platforme, precum și aplicații de orice fel, sub formă de servicii care sunt disponibile în format electronic pe internet. Termenul Cloud face referire la faptul că aceste servicii sunt oferite de către un furnizor de internet. Pe de altă parte, utilizatorii de servicii Cloud, pot la rândul lor oferi ca servicii aceste platforme Cloud în internet. Resursele Cloud sunt virtualizate, iar prin această metodă, utilizatorii de Cloud au mereu o vedere de ansamblu asupra infrastructurii și cererile lor pot fi îndeplinite fără a depinde de performanțele anumitor sisteme. Totodată, platformele Cloud au alocare dinamică de resurse în felul următor: dacă o aplicație necesită resurse suplimentare, acestea sunt adăugate imediat de către un proces automat. Astfel, dezvoltatorii de aplicații cu idei inovatoare nu trebuie să facă investiții în echipament nou, la realizarea unei companii. Ei pot obține resursele necesare de la un furnizor de servicii Cloud, ocupându-se de activitatea companiei. Dacă cererea, cu privire la alocarea resurselor devine tot mai mare, infrastructura poate fi adaptată fără nici o problemă la noile cerințe. Plata acestor servicii este efectuată în funcție de cantitatea resurselor folosite: resursele neutilizate nu sunt taxate. Cloud computing este, prin urmare, și un factor economic important deoarece, datorită flexibilității în utilizarea serviciilor sale, costurile mari pentru o infrastructură hardware sunt eliminate. Resursele care sunt disponibile pentru utilizare sunt enorme și astfel, avem o tehnologie cu un raport preț-performanță foarte bun. Între timp au apărut furnizori de servicii Cloud cum ar fi Amazon, Google, sau Microsoft. Ofertele lor sunt de diferite tipuri: Amazon oferă resurse virtualizate pentru uz general, în timp ce Google și Microsoft permite aplicarea serviciului de găzduire. O parte din specialiștii IT sunt însă în continuare de partea centrelor de date clasice invocând ca argument securitatea mai slabă în domeniul Cloud. Putem spune că tehnologia Cloud Computing este varianta ideală pentru majoritatea companiilor tinere care nu au lucrat cu sistemele clasice. Totodată, sunt foarte multe firme stabilite care s-au dezvoltat pe baza serviciului Cloud și susțin o creștere durabilă în eficiență, datorită utilizării sale. Chiar dacă companiile s-au dezvoltat cu ajutorul serviciilor Cloud publice, acestea au început să își creeze propriile platforme. Pentru client, munca productivă și flexibilă sunt principalele atuuri cu care vine tehnologia Cloud. Astfel, profitând de ofertele disponibile în piață, cumpărătorii de servicii IT au posibilitatea de a obține independența față de sistemle clasice de date. Comitetul Executiv din Washington a prezentat un studiu bazat pe un eșantion de două sute de afaceriști și specialiști IT. În următorii ani, studiul estimează că departamentele IT clasice vor putea renunța la un sfert din personalul actual de angajați, lucru ce arată încă odată eficiența serviciilor Cloud. Cu din ce în ce mai multe servicii de Cloud specializate, cei din departamentul afacerilor pot să achiziționeze soluții IT independente. În mod similar, utilizatorii avansați pot folosi dispozitivele pentru a obține informații cu privire la sistemele informatice. Deși nu există o definiție standard pentu Cloud Computing, această tehnologie este caracterizată prin conceptele sale de bază, concepte precum: virtualizarea ca mod de folosire și modul dinamic de furnizare al resurselor de diferite tipuri pentru serviciile oferite. Aceste servicii ar trebui să fie disponibile într-un mod sigur, astfel încât consumatorii să le poată folosi la cerere sau pur și simplu atunci când este necesar. Din punctul de vedere al celui care furnizează serviciul Cloud, acest lucru implică un model de facturare pe baza resurselor utilizate. Astfel, putem defini termenul de Cloud Computing ca fiind o platformă ce oferă un ansamblu de rețele, o infrastructură IT, platforme, și aplicații ca servicii la cerere. Aceste servicii sunt facturate pe baza gradului de utilizare al resurselor. Această definiție nu indică dacă serviciile sunt furnizate de către un sistem sau un server, de înaltă performanță. Acest lucru este în contrast cu un sistem distribuit. De obicei, serviciile de cloud se bazează de asemenea pe o infrastructură distribuită, dar este administrată de un nod central. Aceasta este o altă diferență între cloud computing și un sistem clasic unde nodurile sunt de obicei autonome. Un alt factor decisiv pentru Cloud Computing este impactul economic. Datorită diversității în utilizare această tehnologie este foarte căutată în foarte multe afaceri, ceea ce o face în sine o afacere de succes. Aceasta include, în special aplicații internet și servicii de rețele pentru diferiți operatori de telefonie mobilă. O definiție de multe ori citată pentru Cloud Computing a fost stabilită de Institutul Național de Standarde și Tehnologie (NIST) din Statele Unite ale Americii. Această definiție constă în cinci caracteristici esențiale de cloud computing, trei modele diferite de servicii, și patru modele de implementare diferite. Caracteristicile esențiale pentru Cloud sunt:
Serviciu la cererea clientului- caracteristică ce permite pentru client obținerea serviciului dorit fără a necesita deplasarea acestuia la compania respectivă
Accesul larg la rețea- serviciile sunt disponibile, în timp real, cu ajutorul unor mecanisme standard
Distribuirea comună a resurselor- permite folosirea infrastructurii Cloud în același timp de către mai mulți utilizatori
Elasticitatea- distribuirea resurselor în funcție de necesitate, astfel încât resursele apar ca fiind nelimitate pentru client
Măsurarea calității serviciului- caracteristică importantă pentru mulțumirea clientului
2.2 Caracteristicile platformelor Cloud
Unul dintre aspectele plăcute de Cloud Computing este că se ascunde complexitatea infrastructurii IT pentru utilizatori și dezvoltatori. Acest lucru atrage și utilizatorii mai puțin experimentați. Nu este nevoie să se cunoască detaliile asupra modului în care un serviciu este
realizat, acste lucru revenind în slujba furnizorului de servicii . În acest capitol vor fi descrise tehnologii pe care se bazează serviciul Cloud, tehnologii precum: procesul de virtualizare, arhitecturi orientate pe servicii (SOA) și servicii Web.
2.2.1 Procesul de virtualizare
Virtualizarea de resurse se află la baza oricărei arhitecturi Cloud. Conceptul de virtualizare permite o vedere abstractă asupra resurselor fizice și include servere, stocare de date, rețele și aplicații software. Ideea de bază este de a colecta toate resursele fizice și a le gestiona ca un întreg ansamblu. Astfel, cererile individuale pot fi îndeplinite cu ajutorul acestui ansamblu de resurse. De exemplu, este posibil să se aloce dinamic o anumită platformă pentru o aplicație specifică la un moment dat.
2.2.1.1 Avantajele virtualizării
Pentru un furnizor de servicii IT, utilizarea virtualizării îi conferă următoarele avantaje importante :
Folosirea resurselor – rareori serverele fizice lucrează la capacitate maximă, deoarece operatorii alocă suficiente resurse pentru un vârf de utilizare. Dacă se utilizează mașini virtuale, orice cerință referitoare la resurse poate fi îndeplinită de întreg ansamblul de resurse. În cazul în care cererea crește, este posibil să existe o mică întârziere, dar din nou va fi îndeplinită.
Managementul – mașinile virtuale pot fi realizate și configurate automat în funcție de cerințe
Consolidarea – diferite clase de aplicații pot fi consolidate pentru a rula pe un singur sistem de componente fizice. Totodată, și partea hardware de rețele și desktop-uri pot fi înglobate într-un singur sistem. Consolidarea duce la creșterea eficienței și, astfel, la reducerea costurilor.
Consumul de energie – alimentarea centrelor mari de date cu energie electrică a devenit tot mai dificilă, și costul energiei necesar pentru a opera un server este mai mare decât prețul de cumpărare. Consolidarea a redus numărul de componente fizice, acest lucru, la rândul său, reducând cheltuielile pentru aprovizionarea cu energie electrică.
Spațiu necesar mai mic – fiecare metru pătrat de spațiu pentru un centru de date este costisitor. Cu consolidare, aceeași performanță poate fi obținută pe o suprafață mai mică și extinderea costisitoare a unui centru de date existente s-ar putea evita.
Planificarea de urgență – permite mutarea resurselor de la o mașină virtuală la alta pentru cazurile de incidente majore și astfel este posibilă respectarea acordurilor la nivel de serviciu.
Având în vedere că furnizorii de servicii de Cloud au tendința de a construi centre foarte mari de resurse, virtualizarea conferă nu numai avantaje pentru furnizori ci și pentru client, prin reducerea costurilor:
Alocarea dinamică a resurselor – orice cerere poate fi satisfăcută în timp fără nici o întârziere. În cazul insuficienței resurselor, o mașină virtuală poate aloca resurse suplimentare (cum ar fi spațiul de stocare).
Disponibilitatea – serviciile sunt extrem de disponibile și pot fi utilizate zi și noapte fără oprire. În cazul unei actualizări de tehnologie, este posibilă migrarea tuturor aplicațiilor pe alte mașini virtuale.
Accesul – nivelul de virtualizare izolează fiecare mașină virtuală de celelalte și de infrastructura fizică. În acest fel, clienții pot alege singuri capacitatea de resurse de la un portal de servicii Cloud.
2.2.1.2 Virtualizarea sistemelor de operare
Utilizarea virtualizării sistemului de operare ajută la rezolvarea problemelor de securitate și de confidențialitate în mediile Cloud. Pentru acest tip de virtualizare, care este, de asemenea, numit "container", sistemul de operare gazdă are un rol foarte important. Acesta este un concept în care mai multe sisteme identice sunt complet izolate unul de celălalt, dar care rulează sub tutela unui singur sistem de operare (vezi Figura 2.1). Privite din exterior, mediile virtuale apar ca niște sisteme autonome. Toate aplicațiile virtuale folosesc același sistem fizic, dar pot avea acces la mediul virtual doar dacă fac parte din același mediu.
Majoritatea furnizorilor de servicii internet (ISP), care oferă servere virtuale, preferă acest tip de virtualizare deoarece este un model cu pierderi mici și un grad înalt de securitate. Dezavantajul adus de virtualizarea unui sistem de operare este acela că avem o flexibilitate redusă: în timp ce mai multe instanțe independente ale aceluiași sistem de operare pot fi utilizate simultan, nu este posibil să se ruleze alt sistem de operare în același timp. Următoarea imagine descrie conceptul de virtualizare al unui sistem de operare:
Figura 2.1- Virtualizarea unui sistem de operare (container)
2.2.1.3 Platforma de virtualizare
Platforma de virtualizare permite rularea oricărui sistem de operare și oricărei aplicații în mediul virtual. Există două modele diferite de virtualizare: completă și paravirtualizarea. Ambele soluții sunt implementate pe o mașină virtuală. Virtualizarea completă se bazează pe simularea unui întreg calculator virtual cu resurse virtuale, cum ar fi procesorul, memoria RAM, unități optice, adaptoare de rețea, inclusiv BIOS-ul propriu. Chiar dacă suntem într-un proces de virtualizare, sistemele virtuale folosesc o mare parte din resursele fizice ale sistemului gazdă cum ar fi memoria RAM și procesorul. Astfel viteza de procesare este aproape de cea a sistemului de găzduire. Celelalte componente, de exemplu, unitățile optice sau adaptoarele de rețea sunt emulate. Deși această metodă scade performanța, se permite rularea sistemelor de operare de oaspeți. Paravirtualizarea, spre deosebire de cea completă, nu oferă o parte hardware emulată, ci doar o aplicatie gen interfață grafică. În acest model de virtualizare, sistemul de operare gazdă trebuie să fie modificat pentru ca orice acces direct la hardware să se potrivească cu interfața corespunzătoare. Deoarece această abordare permite sistemului de operare de tip oaspete de a participa activ la virtualizare, se poate obține o virtualizare completă. În imaginea următoare avem un exemplu de mașină virtuală:
Figura 2.2- Platforma de virtualizare
2.2.1.4 Virtualizarea spațiului de stocare
Sistemele de Cloud ar trebui să ofere, de asemenea, un spațiu de stocare cu alocare dinamică. Așadar, virtualizarea spațiului de stocare are o serie de avantaje. Ideea de bază virtualizării spațiului de stocare este de a separa depozitul de date de serverele fizice clasice. Aplicații de virtualizare utilizează spațiul în mod dinamic pentru a îndeplini cerințele de stocare. Pentru transferul de date se folosește o rețea de stocare a datelor SAN ( Storage Area Network) sau o rețea locală LAN (Local Area Network). Datele de tip Cloud sunt disponibile sub formă de obiecte Web și astfel ele pot fi accesate în orice moment. Un strat suplimentar de administrare este interpus între clienți și depozitarea fizică a resurselor pentru a facilita accesul și gestionarea datelor. Mai mult, categoriile de stocare a datelor sunt clasificate sub forma unor ierarhii. Acest lucru face posibilă implementarea unui ciclu de gestionare automat pentru date, de la nivelurile superioare cu disponibilitate mare de stocare până la cele inferioare cu spațiu de stocare mai redus. Datele pot trece de pe un nivel pe altul fără a afecta serviciul. Un alt avantaj al virtualizării este posibilitatea de a realiza sisteme identice de stocare a datelor pentru a evita întreruperea serviciului, în cazul unei defecțiuni. De exemplu, modelul de servicii Cloud, Amazon, creează până la trei copii pentru stocarea de date.
2.2.1.5 Virtualizarea rețelei
În mediile Cloud, păstrarea echilibrului în modul de stocare al datelor și alocarea dinamică a resurselor sunt cele mai importante lucruri. Resursele sunt de obicei implementate ca obiecte Web. Din acest motiv, este recomandat să se aplice procedurile utilizate în mod obișnuit pentru serverele Web, serviciile fiind accesate prin intermediul adreselor IP virtuale. Acest mod de lucru este utilizat și în domeniul telecomunicațiilor. Virtualizarea de rețea este, de asemenea, folosită pentru rețelele locale virtuale (VLAN). În acest caz, resursele mediului Cloud apar direct în rețeaua clientului. Astfel, resursele interne pot fi înlocuite în mod transparent cu cele externe. Tehnologia utilizării unei rețele virtuale locale are următoarele avantaje:
Transparența rețelei – mai multe dispozitive distribuite pot fi reunite într-o singură rețea logică. Rețelele virtuale locale de tip VLAN sunt foarte utile atunci când proiectarea unei infrastructuri tehnologice are ca țintă mai multe locații din zone geografice diferite.
Securitatea – anumite sisteme care necesită o protecție specială pot fi ascunse într-o rețea virtuală separată.
În concluzie, rețelele virtuale locale de tip VLAN pot fi utilizate în realizarea mai multor lucruri precum: crearea unei rețele de telecomunicații, administrarea unei rețele și pentru programarea componentelor active de rețea.
2.2.1.6 Aplicația de virtualizare
Aplicația de virtualizare este un model de aplicație software în cadrul căreia sunt gestionate alte programe, programe oferite clienților printr-o rețea. Avantajele virtualizării aplicațiilor, comparativ cu instalațiile programelor de software clasice sunt:
Administrarea mai ușoară a aplicațiilor
Gestionarea automată a actualizărilor de software
Compatibilitate pentru toți utilizatorii
Disponibilitate globală
Există două metode diferite pentru implementarea aplicațiilor virtuale: găzduirea aplicației și crearea unui sistem virtual. În primul caz, aplicația este disponibilă pe internet și este transmisă la client folosind un protocol. Cea de-a doua variantă oferă posibilitatea utilizatorului de a descărca aplicația pe propriul calculator. Totodată, un mediu virtual oferă toate fișierele și aplicațiile necesare pentru realizarea unui sistem virtual și pentru rularea unui sistem de operare. Mediul virtual acționează ca o barieră între aplicația de virtualizare și sistemul de operare, pentru a preveni apariția conflictelor între aplicațiile sistemului virtual și cele ale sistemului fizic. În mediul Cloud, aplicația de virtualizare stă la baza conceptului SaaS (Software as a Service), care este utilizat pentru furnizarea dinamică de componente software. Oracle VirtualBox este o variantă potrivită și gratuită de mașină virtuală. În următorul subcapitol va fi prezentată aplicația de virtualizare.
2.2.1.6.1 Oracle VirtualBox
VirtualBox reprezintă o aplicație de tip mașină virtuală. Această aplicație se instalează pe sisteme de operare existente precum Windows, Linux numite sisteme gazdă, pe calculatoare de tip desktop sau calculatoare portabile, cu procesoare AMD sau Intel. VirtualBox permite realizarea unor astfel de mașini virtuale, cu ajutorul cărora pot fi rulate diverse sisteme de operare (Windows, Linux, Solaris, Mac) fără a necesita instalarea efectivă pe calculator a acestora. Astfel, poate fi generat un nou sistem cu hard-disk-uri virtuale, memorie RAM virtuală, unitate optică, cu caracteristici asemănătoare cu cele ale unui sistem real. Un prim avantaj al unei mașini virtuale este faptul că pot fi rulate mai multe sisteme de operare simultan fără a fi necesară repornirea mașinii pentru a comuta pe alt sistem de operare. De exemplu, se poate rula Windows 7 Ultimate ca sistem de bază instalat efectiv pe calculator și pe mașina virtuală să fie rulat Linux-Ubuntu 12.04 . Astfel, pot fi utilizate în paralel două sisteme de operare diferite. Combinațiile Windows-Linux, Linux-Windows, Windows-Solaris pot diferi de la caz la caz în funcție de necesitatea utilizatorilor. Totodată, o astfel de aplicație este binevenită în cazul unui sistem vechi de operare, atunci când componenta hardware este mult mai nouă decât sistemul de operare. Dintr-o altă perspectivă, o mașină virtuală poate fi folositoare pentru recuperarea unor date. Odată instalată, aceasta împreună cu hard-dsk-urile sale virtuale reprezintă un “recipient” ce poate fi transportat sau copiat între sistemele gazdă. Pe de altă parte, în VirtualBox există o funcționalitate ce permite salvarea stării prezente pentru o revenire ulterioară asupra mașinii virtuale, dacă acest lucru este necesar.
2.2.2 Arhitecturi orientate pe servicii (SOA)
În afară de virtualizare, arhitecturile orientate pe servicii și serviciile web sunt considerate premizele de bază pentru tehnologia Cloud Computing. Arhitecturile orientate spre servicii sunt arhitecturile ale căror componente sunt implementate ca servicii de sine stătătoare (independente). Acestea pot fi legate între ele și pot comunica cu rețeaua printr-o configurație comună. Astfel, ele pot fi văzute de către rețea ca întreg. Tehnologia Cloud Computing, infrastructurile virtualizate și platformele și aplicațiile întregi implementate ca servicii sunt destinate consumului în arhitecturile orientate spre servicii. În cazul mediului Cloud de tip public serviciile sunt oferite pe internet pe baza unor protocoale și interfețe Web standardizate.
2.2.2.1 Proprietățile SOA
SOA este un mod de arhitectură software, care definește modul în care sunt oferite și folosit serviciile. Aceste servicii pot fi folosite nu doar de către clienții propriu-ziși, ci și de de către alte servicii sau aplicații. Adesea, serviciile sunt folosite pentru procese de afaceri, ceea ce înseamnă că un utilizator specifică o anumită ordine pentru efectuarea unor operații și schimburi de date cu diverse servicii. Procesul în sine poate fi considerat un serviciu. Astfel, responsabilitatea arhitecturii SOA este de a promova structurile tehnologice pentru folosirea în diverse domenii de afaceri. Cu alte cuvinte, încurajează folosirea serviciilor IT, în cazul nostru platformele Cloud, pentru orice tip de afacere. Proprietățile tipice ale unei arhitecturi orientate pe servicii sunt următoarele:
Sunt compuse din componente distribuite (serviciile)
Clienții și furnizorii sunt compatibili din punctul de vedere al cerințelor datorită platformelor; diferite limbaje de programare și platforme pot fi folosite pentru punerea în aplicare a serviciilor individuale.
Serviciile sunt supuse unor ajustări dinamice, pentru a avea în orice moment configurația dorită
SOA este o arhitectură de sistem care reprezintă un ansamblu de aplicații variate, diferite, și, eventual, incompatibile ce ne permite utilizarea acestora cu ajutorul unei platforme. În figura 2.3 este ilustrată legătura între furnizorul de servicii, consumatorul de servicii și directorul de servicii pentru a înțelege mai bine dinamica procesului de a oferi un serviciu. Consumatorul de servicii poate localiza un serviciu adecvat într-un director de servicii. În cazul în care un serviciu adecvat a fost găsit sau intermediat, consumatorul de servicii primește o adresă pentru accesarea serviciului, de exemplu, poate avea loc un schimb de mesaje cu aceasta. Apoi, serviciul poate fi apelat prin trimiterea unui mesaj. Furnizorul de servicii răspunde prin trimiterea unui mesaj înapoi.
Figura 2.3- Elementele și acțiunile specifice arhitecturii orientate spre servicii
2.2.2.2 Implentarea arhitecturii orientate pe servicii
O arhitectură orientată pe servicii poate fi pusă în aplicare în mai multe moduri. Implementarea propriu-zisă este bazată pe deciziile luate pentru a respecta comunicația și integrarea între furnizorul de servicii și consumatorul de servicii. Cu alte cuvinte, întreg fenomenul este bazat pe politica “pe primul plan clientul”, ceea ce înseamnă că totul este făcut pentru a mulțumi clientul. Serviciile pot fi integrate într-o arhitectură orientată pe servicii, fie prin utilizarea unei conexiuni punct la punct, fie prin conectarea tuturor elementelor la o unitate centrală, precum un hub. Fiecare conexiune punct la punct se ocupă de legătura dintre un furnizor de servicii și un consumator de servicii. În această variantă, consumatorul de servicii trebuie să cunoască capătul de conexiune pentru serviciul dorit, de exemplu, adresa IP. După ce adresa este cunoscută, este posibilă adresarea directă către furnizor cu privire la cererea de servicii corespunzătoare. Cu abordarea variantei de a avea un hub ca nod central de conectare, va apărea acel director de servicii ce actioneaza ca un nod intermediar între furnizorii de servicii și consumatori. În acest caz, consumatorul de servicii nu știe exact adresa furnizorului. Directorul de servicii are așadar rol de rutare, rol de a transmite mesajele mai departe între servicii de pe diferite sisteme. Un alt rol important este de a asigura compatibilitatea, lucru realizat prin conversia tipului de date în formatul dorit. De exemplu, putem avea transformarea unor tipuri de date de pe 32 de biți pe 64 de biți pentru a putea asigura compatibilitatea între un sistem pe 32 biți și unul pe 64 biți.Următoarea figură ilustrează contrastul dintre cele două tipuri de implementări ale arhitecturii orientate pe servicii:
Figura 2.4 – Conexiune punct la punct și conexiune prin HUB
2.2.3 Serviciile Web
Spre deosebire de sistemele distribuite, care sunt interconectate prin rețele locale, sistemele de Cloud Computing integrează resurse ce ar putea fi situate în orice locație în care avem conexiune la internet. Dezavantajele sistemelor cu conexiune la internet, comparativ cu cele legate la rețelele locale sunt timpul de răspuns mai lent și posibilele conexiuni nesigure. În astfel de medii, se recomandă o legătură asincronă având comunicare bazată pe mesaje. Asemenea arhitecturilor orientate pe servicii, serviciile Web au diferite definiții. Un servciu Web este o aplicație software identificată după modul uniform de distribuire al resurselor, o aplicație bazată pe niște reguli stabilite prin protocoalele de internet. Serviciile Web sunt o legătură între un sistem fizic (calculatorul) și rețeaua de internet. Această legătură permite o comunicare mașină la mașină, pe baza protocoalelor de internet. Serviciile Web sunt definite după modul de folosire și nu după tipul tehnologiei utilizate. Acestea descriu standardele necesare pentru a formata și procesa mesajele în același mod în care sunt definite cele pentru interfețele de servicii. În concluzie, un serviciu Web este responsabil de realizarea unei conexiuni între un calculator și rețeaua de internet și totodată un element foarte important în platformele Cloud pentru că asigură accesul pentru utilizatori.[3]
2.3 Arhitectura Cloud
Arhitectura Cloud poate fi clasificată din două perspective diferite, una de organizare și una tehnică. Din punctul de vedere al organizării, vor fi făcute clasificări bazate pe diferite necesități ale unor organizații, în timp ce punctul de vedere tehnic se ocupă cu descrierea caracteristicilor funcționale. În perspectiva de organizare, arhitectura Cloud poate avea cloud public, cloud privat și cloud hibrid.
2.3.1 Cloud-ul public, privat și hibrid
Cloud-ul public este modelul cel mai utilizat, unde resursele sunt partajate în mod dinamic pe baza serviciilor Web. Reprezintă un model flexibil ce presupune plata pe o singură utilizare. Totodată, este și cel mai nesigur model pentru că poate fi accesat de orice utilizator cu o conexiune la internet. Cloud-ul privat reprezintă metoda ideală pentru o companie de a oferi utilizatorilor Cloud resurse partajate și aplicații virtuale. Diferă de cloud-ul public prin faptul că este mult mai sigur datorită expunerii sale interne și nu externe. Numai ce din interiorul companiei și participanții împuterniciți temporar pot avea acces la operarea și configurarea cloud-ului privat. Cloud-ul hibrid este modelul ce oferă soluții IT virtuale printr-o combinație între cele două cloud-uri: publice și private. Această combinație poate fi una de tipul dispozitiv local- servicii Cloud. Din punctul de vedere al siguranței datelor și a aplicațiilor, cloud-ul hibrid reprezintă o soluție mai potrivită decât cel public. [4]
2.3.2 Perspectiva tehnică a serviciilor Cloud
Tehnologia Cloud Computing permite desfășurarea și folosirea infrastructurilor IT, platformelor și aplicațiilor sub formă de servicii Web. Arhitectura depinde de modelul folosit, și anume o stivă împărțită pe straturi, straturi care sunt aranjate în funcție de gradul lor de abstractizare. În această ipoteză, nivelurile de sus și mai abstracte pot fi consumatoare de servicii furnizate de nivelurile de mai jos și mai concrete. Împărțirea unei stive pe niveluri nu este strictă, de exemplu, un strat mai de sus poate consuma servicii specifice toate nivelurilor și nu doar tipul de serviciu rezervat doar pentru acel nivel. Fiecare nivel este caracterizat prin caracteristici proprii și unele niveluri sunt împărțite subniveluri. Serviciile de cloud au propriile servicii și interfețe ceea ce le face compatibilie cu mai multe straturi, de obicei fiind asignate celui mai de sus nivel pentru că acesta este primul nivel cu care utilizatorii iau contact. Tehnologia Cloud Computing este caracterizată de o evoluție continuă și dinamică, evoluție ce clasifică stiva în trei straturi și anume Infrastructura ca serviciu (IaaS), Platforma ca serviciu (PaaS), Software ca serviciu (SaaS). În imaginea următoare este ilustrată stiva Cloud cu nivelurile principale și subnivelurile sale:
Figura 2.5- Stiva Cloud
2.3.2.1 Infrastructura ca serviciu – IaaS
Infrastructura oferită ca serviciu reprezintă modelul de serviciu de bază. IaaS poate fi un serviciu oferit în internet (serviciu de depozitare). Acest nivel oferă utilizatorilor o vedere abstractă asupra calculatoarelor, sistemelor de stocare, rețelelor, lucru ce se realizează prin furnizarea unei interfețe utilizatorului pentru administrarea resurselor în subnivelul setului de resurse. Aceasta permite utilizatorilor să aloce un subset de resurse pentru uz propriu. Printre funcțiile disponibile din interfața utilizatorului sunt incluse crearea sau eliminarea de imaginie ale sitstemelor de operare sau definirea topologiilor de rețea. Mai mult decât atât, interfața furnizează funcționalitatea necesară pentru operații precum pornirea și oprirea unor instanțe ale sistemelor de operare. Resursele de la nivelul substratului de resurse sunt de două tipuri: resurse fizice și resurse virtuale. Pe lângă partea de resurse, este prezent și un alt subnivel și anume serviciile infrastructurii. Acest subtrat are o arie de aplicare mai restrânsă, pentru că ajută doar la operațiile de calcul. În cazul infrastructurii ca și serviciu, forma comună de furnizare a resurselor de calcul pentru utilizatori o reprezintă utilizarea de mașini virtuale. Acestea se pot administra pe deplin și se pot configura în funcție de nevoile utilizatorilor. În concluzie, nivelul IaaS are rol de bază al unei piramide și rolul de a furniza partea hardware pentru celelalte niveluri.
2.3.2.2 Platforma ca serviciu – PaaS
Nivelul PaaS este realizat peste IaaS și are capacitatea de a implementa aplicații spre deosebire de IaaS. Serviciile de cloud la nivelul platformei nu sunt direcționate către utilizatorii finali, ci mai degrabă pentru dezvoltatori. Acestea pot fi medii de programare și de execuție unde aplicațiile software, scrise într-un anumit limbaj, pot fi executate. Aplicațiile sunt modificate prin schimbarea unei părți a limbajului pentru a fi utilizate în mai multe scopuri. Astfel, pe baza unui singur limbaj de programare vor fi obținute mai multe aplicații. Cu alte cuvinte, consumatorul creează o aplicație sau un serviciu utilizând instrumente de la furnizor. Consumatorul controlează, de asemenea, setările de implementare și configurare de software. Furnizorul pune la dipoziția clientului rețelele, serverele, precum și alte servicii care sunt necesare pentru a găzdui aplicația consumatorului. Totodată, stratul PaaS reprezintă o categorie de servicii de cloud computing, care oferă o platformă de calcul. Împreună cu software-ul ca serviciu (SaaS) și infrastructura ca serviciu (IaaS), este un model de serviciu de cloud computing. Nivelul PaaS poate include, de asemenea, facilități pentru proiectare, dezvoltare de aplicatii, testare și implementare, precum și integrarea de servicii web, integrarea de baze de date, securitate, depozitare și multe altele. Pe lângă aspectele de mai sus PaaS include mecanisme de gestionare a serviciilorului,precum monitorizarea, gestionarea fluxului de lucru. În concluzie, acest nivel are rolul de liant pentru că se folosește de resursele furnizate de infrastructură pentru a implementa aplicațiile software.
2.3.2.3 Software ca serviciu SaaS
Software-ul oferit ca serviciu este modelul superior de cloud construit peste PaaS și reprezintă interfața utilizator-calculator, de exemplu, programe de contabilitate, aplicații multimedia (Facebook), bloguri. Așadar, aplicațiile software Cloud care se adresează în mod direct utilizatorului final aparțin stratului SaaS. Acest model permite cliențiilor să își configureze aplicația și să își aloce singuri resursele necesare. Din punctul de vedere al arhitecturii Cloud, nivelul SaaS poate fi dezvoltat și implementat de către furnizor, pe baza nivelelor PaaS și IaaS. În cadrul stratului SaaS, se pot distinge mai multe tipuri de aplicații, a căror funcționalitate se bazează în principal pe una singură, o aplicație simplă cu drepturi depline. În concluzie, acest nivel este cel mai familiar utilizatorilor pentru că reprezintă nivelul aplicațiilor și vârful piramidei Cloud.[5]
În continuare va fi prezentat modelul de platforme Cloud OpenStack, model ales pentru suportul rețelelor de comunicații, la nivelul de infrastructură.
2.4 Modelul de platforme OpenStack
OpenStack este o platformă de Cloud Computing gratuită de tip open source. Conceptul open source (cu sursă deschisă) descrie modul de a produce sau a dezvolta anumite produse finite, permițând utilizatorilor să se implice în procesul de producție sau dezvoltare. Un exemplu elocvent este site-ul Wikipedia, prin faptul că permite accesul oricărui utilizator să contribuie la elaborarea sau îmbunătățirea produsului final. OpenStack este dezvoltat în primă etapă ca model IaaS (Infrastructură ca serviciu). Tehnologia acestui model constă într-o serie de proiecte intercorelate cu ajutorul cărora sunt coordonate și monitorizate activități de procesare, depozitare și activități privind resursele rețelei. Aceste activități sunt trecute printr-un centru de date. Ținta principală a proiectului de tip open-source este de a face din OpenStack o soluție simplă de implementare Cloud cu un set larg de caracteristici. Din punctul de vedere al modelului IaaS, OpenStack poate oferi mai multe tipuri de servicii precum: servicii de bază, servicii de depozitare (Storage), servicii de partajare (Shared Services) și servicii de nivel înalt (High Level Services). În continuare va fi prezentat sistemul de operare Ubuntu 12.04, ca suport pentru infrastructura Cloud. Ubuntu 12.04 reprezintă un sistem de operare bazat pe Linux pentru diferite platforme cum ar fi computerele personale și serverele. Este gratuit și reprezintă o alternativă fiabilă a celebrului Windows, dar nu atât de răspândită printre utilizatorii obișnuiți de calculatoare. S-a optat pentru o versiune Linux, Ubuntu 12.04 deoarece reprezintă sistemul de operare pentru care s-a dezvoltat modelul de platforme OpenStack. În concluzie, compatibilitatea dintre modelul de platforme și sistemul de operare (suportul) este asigurată. [6]
2.4.1 Sistemul de operare Ubuntu 12.04
Sistemul de operare Ubuntu 12.04 este format din mai multe programe, majoritatea dintre ele fiind gratuite. Acestea dau posibilitatea utilizatorilor să își creeze propria versiune de Ubuntu 12.04, prin instalarea particulară a aplicațiilor dorite. În comparație cu Windows, Ubuntu 12.04 are o interfață grafică numită Unity (similară cu bine cunoscutul Desktop – Figuira 2.6). Prima apariție a interfeței Unity a fost în varianta de notebook, pentru Ubuntu 10.10. A fost dezvoltată pentru a folosi eficient spațiul dat de dimensiunile limitate ale ecranului unui notebook. De exemplu, folosește o aplicație numită “launcher” ce acționează ca un comutator de aplicații. Aceasta se găsește în poziție verticală, în partea stângă a ecranului. Unity mai are și un “top menu bar” ce are același rol ca butonul “Start” din Windows. Unity nu reprezintă o înglobare a mai multor aplicații, ci pur și simplu se folosește de programele deja existente. O altă sarcină pentru Unity este aceea de a face versiunile recente de Ubuntu, respectiv Ubuntu 12.04 mult mai prietenoase, mai accesibile tuturor utilizatorilor (de tip “friendly user”) și totodată mai competitive în comparație cu Windows.
Figura 2.6- Unity (Varianta desktop pentru Ubuntu)
Ubuntu 12.04 are aplicații de bază deja instalate precum: LibreOffice (alternativă pentru cunoscutul Microsoft Office), Mozilla Firefox (Internet Browser), dar și câteva jocuri precum: Sudoku, Șah. Totodată, acest sistem de operare permite instalarea aplicațiilor pe parcurs și în funcție de necesitate, după instalarea propriu-zisă a sistemului de operare. Programele se găsesc în cadrul așa numitelor “repositories”, care reprezintă registrele centrale ale programului Ubuntu, fiind gratuite. Astfel, fiecare utilizator își poate personaliza propriul Ubuntu 12.04. De asemenea, poate utiliza și aplicații specifice sistemului Windows, prin faptul că suportă crearea de mașini virtuale în cadrul sistemului propriu-zis. O diferență majoră pentru sistemele Linux comparativ cu Windows o reprezintă modul de instalare al diferitelor aplicații, programe. Dacă în cazul Windows, toate programele vin cu o interfață prietenoasă, fiind necesari doar câțiva pași, pentru sistemele Linux există diferențe. Aplicațiile sunt instalate prin comenzi specifice Linux (asemenea unui limbaj de programare), introduse în “Terminal” (echivalentul interfeței Command Prompt din Windows). Această abordare, deși nu oferă ușurință în utilizare, este preferată de utilizatorii experimentați datorită flexibilității și timpului redus pe care le oferă în customizarea aplicațiilor. Acesta reușește să dea utilizatorului o imagine de ansamblu asupra întregului sistem de operare și o imagine a modului de lucru pentru un sistem de operare. Utilizatorii pot de asemenea să activeze funcțiile de “firewall”, care nu permit instalarea aplicațiilor necunoscute în sistem. În cazul acestui sistem de operare se poate instala GUFW (Graphic User Interface for Uncomplicated Firewall). Prin autentificarea “sudo” se permite logarea utilizatorului “root”, singurul utilizator cu drepturi depline, ce poate atribui privilegii pentru ceilalți utilizatori. Astfel, se evită breșele de securitate și ștergerea unor fișiere componente ale sistemului de operare, provocate în marea majoritate a cazurilor de utilizatori neexperimentați. Securitatea reprezintă un lucru foarte important la instalarea unui sistem de operare. Un avantaj major pentru Ubuntu 12.04 este acela că oferă actualizări foarte dese, ceea ce face ca stabilitatea sistemului de operare și protecția oferită de acesta să ofere o experiență de utilizare foarte bună a utilizatorului. De aceea pe acest sistem de operare nu este necesar un program antivirus. Din punctul de vedere al cerințelor de sistem, Ubuntu 12.04 stă foarte bine având nevoie de un calculator, fie cu un procesor ARM, fie un procesor pe cu arhitectură x86 pe 32/64 biți, o memorie RAM de aproximativ 768 MB și un spațiu liber pe hard disk de numai 5 GB. În concluzie, această versiune de Linux nu este pretențioasă în materie de resurse hardware. Și totuși Linux oferă și variante ce necesită mai puține resurse precum Kubuntu și Lubuntu. O altă alternativă fiabilă pentru rularea sistemului de operare Ubuntu 12.04 o reprezintă folosirea unei mașini virtuale. Oracle VirtualBox este o variantă potrivită și gratuită de mașină virtuală. [7]
2.4.2 Implementarea infrastructurii OpenStack
Aici voi mai scrie 2-3 pagini privind descrierea procesului de instalare OpenStack
DE COMPLETAT
După această etapă de creare a unei rețele de comunicații, cu suportul OpenStack, pentru monitorizarea rețelei este necesară utilizarea unui program de acest gen. Aplicația de monitorizare se ocupă de supravegherea unei rețele pentru a atenționa administratorul acesteia (prin e-mail, SMS) asupra unor probleme privind funcționlitatea unor componente importante. Un astfel de program de monitorizare este Nagios Core 3.
3. Nagios Core 3
3.1 Introducere
Nagios Core 3 este o aplicație de monitorizare a rețelelor de comunicații de tip open source (permite utilizatorului să se implice în procesul de dezvoltare). Supraveghează calculatoarele de tip gazdă și diferite servicii, atenționând utilizatorul privind starea de funcționalitate a elementelor monitorizate. Scopul principal al acestei aplicații este să depisteze problemele apărute, într-un timp cât mai scurt pentru ca administratorul să știe acest lucru înainte ca utilizatorul să se confrunte cu această problemă. Administratorul este persoana care se ocupă de mentenanța rețelei. Nagios reprezintă o variantă flexibilă deoarece se pot instala doar anumite aplicații pentru anumite servicii, în funcție de necesitate. Obiectele monitorizate de către Nagios sunt împărțite în două categorii: obiecte de tip gazdă fizice (routere, servere, imprimante) și diferite servicii (HTTP, FTP). Fiecărui obiect de tip gazdă îi sunt asociate unul sau mai multe servicii, ca în următoarea figură:
Figura 3.1- Grup de obiecte de tip gazdă cu aceleași servicii
Nagios Core 3 are două caracteristici importante. Prima dintre ele este aceea că în locul valorilor concrete apar patru tipuri ale stărilor de monitorizare: stare bună (OK), stare de avertizare (WARNING), stare critică (CRITICAL), stare necunoscută (UNKNOWN). Aceste stări ajută utilizatorul să stabilească doar limitele de avertizare/critice fără a ține cont de valorile numerice propriu-zise. Pentru monitorizarea unor valori precum spațiul de pe hard-disk și gradul de solicitare al procesorului se pot defini valori limite pentru fiecare stare. Astfel un utilizator mai puțin experimentat poate fi la curent cu starea sistemului său, fără a fi necesară cunoașterea exactă a unei valori. Cea de-a doua caracteristică se referă la afișarea simultană a stărilor de monitorizare, a mai multor sisteme de tip gazdă și a grupurilor de servicii. Acest raport simultan de monitorizare oferă o imagine de ansamblu al infrastructurii și totodată ajută la prioritizarea problemelor. Cele cu statut critic vor fi analizate și rezolvate primele, după care vor fi preluate cele cu statut de avertizare. Pentru supravegherea diferitelor servicii, Nagios folosește diferite plugin-uri (aplicații). Un plugin este un set de componente software care adaugă funcții specifice unei aplicații software mai mari. Astfel, Nagios transmite acestor plugin-uri informația necesară referitoare la ce componentă trebuie verificată, limitele critice și de avertizare. Plugin-urile sunt responsabile cu verificarea și analiza rezultatelor, în urma lor rezultând una dintre cele patru stări (OK, WARNING, CRITICAL, UNKNOWN) cu posibilitatea adăugării unui text adițional pentru administratorii sistemului. Pe lângă nucleul de monitorizare, Nagios Core 3 oferă aceste plugin-uri pentru o personalizare exactă în funcție de serviciile necesare. De exemplu, dacă este necesară o verificare a unei temperaturi se poate opta pentru instalarea plugin-ului respectiv sau chiar scrierea manuală a unui plugin.
3.2 Beneficiile în monitorizarea resurselor
În monitorizarea infrastructurii, funcționarea corectă a tuturor componentelor asigură beneficii importante. Avantajul principal dat de procesul de monitorizare este îmbunătățirea calității, dată de funcționarea fluidă a sistemului. Astfel, persoana care se ocupă de administrare poate rezolva problemele apărute mult mai repede din moment ce sunt organizate sub forma unor notificări. Unele probleme apărute pot necesita un timp mare de analiză și rezolvare, iar cu ajutorul programului Nagios starea sistemului este mereu actualizată și astfel se reduce timpul de mentenanță, fiind mereu la curent cu nivelul resurselor. Totodată, Nagios poate gestiona singur diferite probleme apărute până la rezolvarea acestora. De exemplu, la funcționarea incorectă a unui router, Nagios comută pe alt router de rezervă până la rezolvarea primei probleme și astfel se asigură o continuitate în utilizare a sistemului. Un alt avantaj în monitorizare este posibilitatea de a identifica exact problema. Fără o monitorizare asupra componentelor atât hardware, cât și software, utilizatorul sistemului poate presupune în mod greșit cauza principală a problemei. Nagios este de asemenea foarte flexibil privind modul de atenționare al utilizatorului, în cazul unor defecțiuni. Se poate face o împărțire a celor care se ocupă de mentenanța sistemului. De exemplu, Nagios poate trimite notificări pe mail celor care se ocupă de servere și separat alte notificări celor care se ocupă de routere, modem-uri și alte componente hardware ale rețelei. Notificările pot fi primite și sub forma unei alarme, pe diferite dispozitive precum pager-ul. Totodată, cu ajutorul interfeței web, a programului Nagios se poate ține o evidență a personalului în funcție de sarcinile acestora. Monitorizarea resurselor nu este utilă doar pentru soluționarea diferitelor probleme apărute ci și pentru prevenirea acestora. De exemplu, gradul de încărcare al hard-ului poate fi ridicat și în această situație este indicat să se mute o parte din informație pe alt hard pentru a evita problema supraîncărcării, înainte ca aceasta să fie una critică.
Un alt beneficiu, este acela că pe un singur server central, se pot monitoriza cu ajutorul programului Nagios mai multe sisteme gazdă. Acestea comunică cu un nod principal și astfel prin intermediul unui singur sistem poți supraveghea mai multe mașini de tip gazdă.
3.3 Caracteristicile aplicației Nagios Core 3
Caracteristica de bază a programului de monitorizare Nagios este flexibilitatea deoarece poate fi configurat astfel încât să se folosească doar în funcție de necesitate. De exemplu, poți instala doar anumite aplicații ce se ocupă de supravegherea componentelor hardware. De asemenea are un sistem automat de notificări al problemelor apărute. O altă trăsătură specifică programului Nagios este împărțirea acestuia în elemente de bază precum comenzile, perioadele de timp, contactele, gazdele, serviciile, gazdele și serviciile asociate acestora. Comenzile reprezintă niște definiții pe baza cărora, Nagios ia decizia de a efectua o verificare. Acestea sunt trecute în fișiere de tip text și reprezintă un nivel abstract al aplicațiilor de tip plugin. Perioadele de timp se referă la intervalul de timp în care se poate realiza o monitorizare (de exemplu, de luni până vineri între orele 9.00 și 17.00). Contactele sunt persoanele ce primesc notificări privind mentenanța obiectelor supravegheate. Un alt element de bază îl reprezintă mașinile de tip gazdă. Acestea sunt sisteme fizice ce înglobează informația privind modul și momentul verificărilor. Pot fi clasificate în grupuri de mașini gazdă dacă acestea au caracteristici comune. Serviciile sunt elemente ce pot urmări funcționalitatea și resursele unei anumite mașini gazde. Gazdele și serviciile specifice acestora presupun stabilirea exactă a unor persoane dintr-un anumit departament care se vor ocupa de un tip de probleme al unei anumite mașini. În concluzie, aceste persoane sunt împărțite în mai multe grupuri, iar la apariția unei probleme sunt cunoscute deja departamentul, modul și timpul de intervenție. Un beneficiu important în urma folosirii aplicației Nagios este acela că poți avea o imagine de ansamblu asupra topologiei de rețea. Topologia unei rețele reprezintă cartografierea elementelor (legături, noduri), în special interconexiunile fizice (reale) și logice (virtuale) dintre noduri. Referitor la Nagios, de exemplu, în cazul unui router defectat este evident faptul că toate elementele de rețea interconectate cu acesta nu vor putea funcționa corect. Astfel, se poate identifica ușor partea defectată a rețelei. Totodată, topologia poate fi personalizată în funcție de utilizator și în funcție de interdependența mașinilor gazdă.
O altă variantă este definirea unui serviciu care sa fie dependent de alt serviciu, fie pe aceeași gazdă, fie pe alta. Dacă unul din servicii este defectat, atunci pentru un serviciu ce depinde de cel defectat nu se mai efectuează verificarea. Uneori, datorită dependenței survenite în urma topologiei, unele probleme sunt corelate cu o problemă principală. Astfel, este economisită o perioadă de timp deoarece se știe cauza principală și nu mai este necesară o altă verficare mai amănunțită. Nagios oferă un sistem coerent de „definiții macro”. Acestea sunt variabilele care pot fi puse în toate definițiile obiectelor, în funcție de contextul avut. Ele pot fi puse în interiorul unei comenzi, și în funcție de gazdă, servicii, precum și mulți alți parametri, valorile sunt substituite în mod corespunzător. De exemplu, o definiție de comandă ar putea folosi adresa IP a gazdei care în prezent este verificată. Aceasta, de asemenea, permite să se stocheze informații despre stările anterioare și actuale ale unui serviciu prin mail de notificare. Nagios 3 oferă diverse variante de definiții macro, ceea ce îl face un mecanism puternic. Nagios oferă, de asemenea, mecanisme pentru programarea opririlor planificate. Puteți seta starea unui serviciu sau mașini gazdă să fie indisponibilă. Acest lucru va împiedica Nagios să notifice utilizatorul pentru a fi contactat cu privire la problemele legate de aceste obiecte. Nagios poate notifica, de asemenea, utilizatorul despre opririle planificate în mod automat. Acest lucru este utilizat în principal atunci când trebuie realizată întreținerea unei infrastructuri IT, iar serverele sau serviciile pe care le furnizează sunt indisponibile pentru o perioadă lungă de timp. Acest lucru permite totodată informarea utilizatorilor.
3.3.1 Modul de tratare al incidentelor
Nagios verifică dacă o anumită gazdă sau un anumit serviciu funcționează corect și reține statutul său. Starea unui serviciu, una dintre cele patru posibile este esențială în supravegherea funcționării acestuia. Nagios Core 3 folosește așa numitele moduri SOFT și HARD pentru trata- rea incidentelor și pentru a delimita incidentele temporare față de cele permanente. Modul SOFT
reprezintă incidentele temporare, iar modul HARD pentru cele permanente. De exemplu, un administrator repornește un server, acest lucru provocând indisponibilitatea de conectare pentru
cinci secunde la paginile web. De obicei, astfel de operațiuni se fac pe timp de noapte pentru a reduce numărul de utilizatori afectați, aceasta fiind o perioadă potrivită de timp. Cu toate acestea, o problemă ar putea apărea atunci când Nagios încearcă să se conecteze la server și observă că acesta este de fapt căzut . În cazul în care se bazează doar pe un singur rezultat, Nagios ar activa o alertă ce arată nefuncționarea unui server web. Problema ar fi putea rezolvată în câteva clipe, dar ar putea dura câteva minute pentru ca Nagios să realizeze acest lucru. Pentru situațiile în care un serviciu este indisponibil, pentru un timp foarte scurt sau testul nu a reușit temporar, sunt tre-cute ca fiind incidente SOFT. În cazul în care statutul de verificare este necunoscut sau este altul decât cel anterior, Nagios va testa din nou gazda sau serviciul de mai multe ori pentru a fi sigur că schimbarea este permanentă. Numărul de controale pentru trecerea de la tipul SOFT la tipul HARD este specificat în configurația serviciului sau a mașinii gazdă. Nagios presupune că noul rezultat este o stare SOFT, dar dacă după verificări suplimentare incidentul este permanent atunci se consideră HARD. Fiecare definiție gazdă și serviciu specifică numărul de încercări de efectuat înainte să se presupună că o schimbare este permanentă. Acest lucru permite o mai mare flexibilitate privind numărul eșecuri peste care ar trebui să fie tratată o problemă ca una temporară. Setarea numărului de controale la valoarea unu va face ca toate modificările să fie tratate de tip HARD. Ceea ce urmează este o ilustrare de tratare SOFT și HARD, presupunând că numărul de verficări efectuate este setat la trei:
Figura 3.2- Exemplu de tratare al incidentelor
Această caracteristică permite ignorarea privind întreruperile scurte pentru un serviciu. De asemenea, este foarte util pentru efectuarea de controale care pot eșua periodic, chiar dacă totul funcționează corect. Privind monitorizarea dispozitivelor cu protocolul SNMP este de asemenea, un exemplu în cazul în care un singur control ar putea eșua, dar la a doua sau a treia verificare serviciul este valabil.
Simple Network Management Protocol (SNMP) este un protocol standard de Internet
pentru gestionarea dispozitivelor pe rețele IP. Multe tipuri de dispozitive suportă SNMP, precum
routere, switch-uri, servere, stații de lucru, imprimante și surse de alimentare neîntreruptibile (UPS-uri). SNMP este utilizat pentru a monitoriza starea dispozitivelor de tip routere, servere și alte componente hardware de rețea, de asemenea, se poate folosi pentru a controla dispozitivele de rețea sau pentru luarea unor măsuri automate în cazul în care apar problemele. Informațiile pe care le pot monitoriza, variază de la lucruri relativ simple, cum ar fi volumul de trafic, până la
elemente de hardware și furnizor, cum ar fi temperatura unui router.[8]
3.4 Monitorizarea la distanță cu protocolul SNMP
Simple Network Management Protocol (SNMP) este un protocol destinat monitorizării și gestionării dispozitivelor conectate la o rețea. Scopul său principal este de a realiza un mod de obținere și setare al parametrilor pentru diferite echipamente aflate la distanță. Protocolul permite culegerea informațiilor de la un dispozitiv, setarea opțiunilor, și, de asemenea, posibilitatea de a notifica alte dispozitive despre un incident în rețea. SNMP este un etalon în monitorizare și gestionare de dispozitive, astfel încât toți producătorii de echipamente hardware și software sunt compatibili cu acest protocol. Toate sistemele de operare utilizate în mod obișnuit, pot avea propriile versini de SNMP, de exemplu, Microsoft oferă un tip de SNMP pentru Windows, iar toate sistemele UNIX folosesc “Daemon” SNMP pentru a primi cereri de la alte mașini. SNMP oferă, de asemenea, un mod standardizat, ierarhic de a grupa și accesa informațiile denumit MIB (bază de gestionare a informatțiilor). Aceasta stabilește atributele ce pot fi accesate și tipurile de date ce sunt asociate cu ele. Acest lucru permite crearea de standarde pe care toate dispozitivele ar trebui să le utilizeze pentru furnizarea informațiilor cu privire la parametrii de bază, cum ar fi configurarea rețelei, gradul de utilizare și posibilele amenințări. Acesta permite, de asemenea, personalizarea parametrilor, astfel încât aceștia nu vor interfera cu alți parametri. Majoritatea sistemelor de operare au diverse utilități care permit comunicarea cu alte dispozitive cu ajutorul protocolului SNMP. Aceste utilități pot fi folosite pentru a verifica ce standarde pot fi suportate de către un dispozitiv și valoarea lor într-un moment dat.
SNMP este proiectat pentru a fi ușor de implementat și pentru a oferi un mod de acces la
informații despre anumite dispozitive. Acest protocol permite chiar utilizarea dispozitivelor cu resurse de stocare și memorie limitate. SNMP folosește protocolul UDP (User Datagram Protocol) care necesită mult mai puțin resurse decât TCP și un singur pachet pe operațiune.
Fiecare dispozitiv care este gestionat cu SNMP trebuie să aibă o aplicație care să comunice cu alte dispozitive. Multe dispozitive cu sisteme integrate suportă SNMP, fiind inclus în nucleul sistemului. În toate aceste cazuri, un dispozitiv trebuie să fie sincronizat cu protocolul SNMP.
Toate aplicațiile sunt, de obicei, gestionate de un dispozitiv central numit managerul SNMP. Acesta este un calculator care adună informații și se ocupă de setarea parametrilor. De obicei, aceasta este o aplicație care rulează în fundal, care comunică prin SNMP și stochează informația. SNMP folosește portul UDP 161 pentru a comunica cu aplicația și portul 162 pentru
a trimite informații de la aplicație la manager. Pentru a utiliza SNMP, acestea porturi trebuie să fie folosite în mod corect de către toate routerele de rețea, și nu ar trebui să fie stopate de aplicația Firewall. Există două tipuri de comunicare, care sunt efectuate de către SNMP, primul tip este atunci când un manager trimite cerere către o aplicație, cerere prin managerul dorește să preia informații de la o aplicație. Dacă informația trebuie modificată atunci se trimit un set de cereri cu privire la acea modificare. Un alt tip de comunicare este atunci când o aplicație dorește să notifice un manager despre o problemă. În astfel de cazuri, aplicația trebuie să cunoască adresa IP a managerului pentru a-i trimite corect informația. Pentru situațiile când apar probleme SNMP trimite așa numitul tip de mesaj “Trap”. Un manager trebuie să țină cont de mesajul SNMP Trap pentru a putea rezolva problema apărută. Aplicațiile care comunică și răspund cererilor altor dispozitive sunt denumite agenți. Ceea ce urmează este o ilustrare a posibilelor tipuri de comunicare SNMP:
Figura 3.3- Moduri de comunicare SNMP
SNMP are mai multe versiuni cu care un agent poate comunica. SNMPv1 este prima versiune a protocolului. Această versiune se poate ocupa de obținerea informațiilor, setarea parametrilor și notificarea problemelor apărute (get, set, și trap). Securitatea, în cazul versiunii SNMPv1 este simplificată. O cerere de tip get, set, sau trap este realizată pe baza autentificării adresei IP a managerului. Toate dispozitivele SNMP care comunică prin utilizarea SNMPv1
verifică dacă operațiunile pot fi efectuate. Acestea pot comunica în două moduri: privat și public. În modul privat este permisă atât citirea cât și scrierea de informații, iar în modul public doar citirea. SNMP versiunea a doua a introdus îmbunătățiri la capitolele performanță și securitate. În loc de a folosi separat operațiunile versiunii precedente, utilizează o singură operațiune ce le înglobează pe toate, numită “getbulk”. De asemenea, SNMPv2, în cazul pierderii unui singur pachet UDP nu va mai trimite un mesaj trap către manager.
Cea mai comună versiune este SNMPv2c-Community-Based Simple Network Management Protocol. Folosește caracteristicile versiunii standard, dar utilizează model de securitate implementat îm SNMPv1. User-Based Simple Network Management Protocol, sau SNMPv2u, este variantă similară, dar un model cu securitate sporită, însă fără a îngloba toate caracteristicile de securitate dezvoltate inițial pentru SNMPv2.
SNMP versiunea 3 introduce un model de securitate îmbunătățit, inclusiv autentificarea,
controlul de confidențialitate și controlul accesului. Această versiune are o securitate mai bună decât SNMPv2, dar a fost realizată pe baza securității de la SNMPv2u. Acest standard este mai bun deoarece oferă o mai bună securitate și cu un nivel scăzut față de SNMPv2. Cele mai multe servere SNMP vin integrate cu sisteme de operare ce suportă toate cele trei standarde SNMPv1, SNMPv2c, și SNMPv3. Unele dispozitive sunt compatibile numai cu SNMPv1 în timp ce altele oferă, de asemenea, SNMPv2. Pachetele de versiuni diferite SNMP sunt incompatibile, deci un dispozitiv folosind doar SNMPv1 nu va recunoaște un pachet SNMPv2. În cele mai multe cazuri, dispozitivele utilizate în rețea vor oferi versiuni diferite. În acest caz de incompatibilitate se folosește o aplicație ce face trecerea dintr-o versiune în cealaltă pentru SNMP.
3.4.1 Managerii și agenții SNMP
În SNMP, există două tipuri de entități: manageri și agenți. Un manager este un server care rulează aplicații software ce se pot ocupa de gestionarea elementelor rețelei. Totodată, un manager mai este denumit ca Network Management Stations (dispozitiv de gestionare al rețelei). Un NMS este responsabil pentru obținerea de informații și de mesajele de tip trap primite de la agenții din rețea. Aceste informații sunt folosite de manager pentru a stabili cauza unui incident.
Mesajul de tip trap reprezintă o modalitate prin care agentul comunică manager-ului că ceva s-a întâmplat. Acestea sunt trimise în mod asincron, nu ca răspuns la cererile NSM-ului. NSM este responsabil pentru efectuarea unei acțiuni pe baza informațiilor primite de la agent. De exemplu, atunci când conexiunea la internet este întreruptă router-ul poate trimite un mesaj trap la NMS. La rândul său, managerul poate acționa și poate informa utilizatorul că a apărut o problemă.
Cea de a doua entitate, agentul, este o aplicație software care rulează pe dispozitivele de rețea. Acesta poate fi un program separat (în cazul sistemului de operare Ubuntu) sau poate fi încorporat în sistemul de operare (de exemplu, IOS pe un router Cisco). Astăzi, cele mai multe dispozitive cu adresare IP au agenți SNMP încorporați. Faptul că, producătorii de dispozitive sunt dispuși să pună la dispoziție produse ce au deja agenți, administrarea unei rețele devine mult mai facilă. Agentul oferă informații de gestionare monitorizând diverse aspecte operaționale ale dispozitivului. De exemplu, agentul de pe un ruter este capabil de a urmări starea interfețelor acestuia: care sunt funcționale și care nu sunt utilizabile. Managerul este direct responsabil de starea dispozitivelor, iar în cazul celor ce au probleme, acesta trebuie să acționeze. NSM-ul este informat asupra problemelor cu ajutorul agentului printr-un mesaj de tip trap. Unele dispozitive vor trimite un mesaj privind rezolvarea problemei către manager. Acest lucru poate fi util pentru a determina când o problemă a fost rezolvată. De reținut faptul că, mesajele, privind cererea de informații din partea manager-ului și mesajele de tip trap pot fi transmise în același timp. [9]
3.4.2 Structura gestionării informației
Structura gestionării informației oferă o modalitate de a defini obiectele gestionate și comportamentul lor. Un agent are în posesia sa o listă a obiectelor pe care trebuie să le urmărească. Un astfel de obiect poate fi starea operațională a unei interfețe router (de exemplu, stare funcțională, nefuncțională sau de testare). Această listă definește și tipul de informații pe care managerul le poate folosi în determinarea stării dispozitivului pe care se află agentul. Baza de date cu obiectele gestionate și monitorizate de către agent se numește bază de management a informației. Orice fel de statut al dispozitivului sau informațiile statistice care pot fi accesate de manager sunt stocate în această bază de date. În concluzie, baza de date ce oferă definițiile obiectelor conlucrează cu regulile stabilite de structura informației. De exemplu, cele două concepte au un rol de dicționar, care arată cum se scrie un cuvânt și apoi dă explicația acestuia.
O bază de date poate conține, mai exact, variabile precum valorile statistice ale unei interfețe: viteza de transmitere a informației, informația trimisă/primită pe opt biți precum și diverse alte lucruri care țin de sistem în sine (locație de sistem). Scopul principal al bazei de date este de a oferi informații generale de gestionare a protocoalelor TCP/IP.
3.4.3 Conceptul de management al rețelei
SNMP este într-adevăr un protocol de gestionare a rețelei. Acest protocol este necesar în managementul unei rețele deoarece este utilă stabilirea unui set de reguli. Managementul de rețea este un concept general care constă în utilizarea diverselor instrumente, tehnici, și sisteme pentru a ajuta oamenii în gestionarea diverselor dispozitive, sisteme sau rețele. Pe lângă protocolul SNMP, gestionarea unei rețele este bazată și pe un model numit FCAPS, sau Fault Management, Configuration Management, Accounting Management, Performance Management, and Security Management. Acest model a întocmit de Organizația Internațională de Standardizare (ISO), pentru a ajuta la înțelegerea funcțiilor majore ale sistemelor de gestionare a rețelei.
3.4.3.1 Gestionarea incidentelor (Fault Management)
Obiectivul gestionării incidentelor este de a detecta problemele apărute în rețea și să notifice administratorii de rețele apariția acestora. În multe domenii de lucru, de exemplu în telecomunicații, timpul de nefuncționare al rețelei trebuie să fie foarte mic pentru a fi tolerat. Gestionarea incidentelor se face în trei pași importanți necesari în rezolvarea soluționarea problemelor:
Pasul 1. Problema este izolată pentru a putea determina simptomele cu ajutorul aplicațiilor
Pasul 2. Se rezolvă problema pe baza informațiilor obținute la pasul 1
Pasul 3. Se înregistrează procesul care a fost urmat pentru a rezolva pe viitor o problemă similară
Deși pasul 3 pare nesemnificativ, acesta are o importanță deosebită. Se efectuează de fapt o trecere într-o bază de date a tuturor informațiilor folosite în pașii 1 și 2. Așadar, importanța acestui pas constă în posibilitatea de a folosi toate informațiile în cazul unui incident asemănător și astfel timpul de rezolvare al unei probleme este redus semnificativ. Acest lucru este vital în servicii precum telecomunicațiile.
3.4.3.2 Configurarea elementelor monitorizate (Configuration Management )
Scopul acestui concept este de a culege informații despre configurarea sistemelor pentru a afla cu exactitate în ce fel aceste configurații hardware și software afectează rețeaua. Acest lucru este foarte important în monitorizarea unei rețele de comunicații. Orice sistem are un set de parametri de configurație. Printre parametrii importanți de configurare regăsim:
versiunea sistemului ce operare
viteza și numărul de interfețe al unei rețele
numărul de hard-disk-uri
numărul de procesoare
memoria RAM (Random Access Memory)
Aceste informații sunt stocate într-o bază de date, iar atunci când are loc o modificare în configurarea parametrilor, baza de date este actualizată. Principalul beneficiu al acestei baze de date este acela că în cazul unei probleme putem avea un loc unde să căutăm o posibilă rezolvare.
3.4.3.3 Distribuirea uniformă a resurselor (Accounting Management)
Obiectivul acestui concept este să asigure folosirea uniformă a resurselor rețelei pentru toți utilizatorii. Totodată, sunt minimizate problemele apărute în rețea datorită distribuirii uniforme a resurselor. Aceste resurse pot fi alocate și în funcție de prioritatea rezolvării unei probleme. De exemplu, în cadrul unei rețele problemele sunt clasificate în funcție de prioritate, ceea ce înseamnă că vor fi distribuite mai multe resurse către o problemă cu prioritate ridicată.
3.4.3.4 Managementul performanței (Performance Management)
Principalul scop al mangementului performanței este de a măsura parametrii rețelei de comunicații din punct de vedere al performanței. Acest lucru ajută la optimizarea și evoluția sistemelor de comunicații. Procesul de gestionare al performanței cuprinde trei pași:
Indicii de performanță sunt înregistrați într-o bază de date
Nivelurile de performanță sunt stabilite pe baza indicilor
Depășirea pragului de performanță indică apariția unei probleme
Un exemplu de management al performanței este serviciul de monitorizare al unei rețele de internet. De exemplu, un furnizor de servicii Internet (ISP), ar putea fi interesat în monitorizarea serviciului său de e-mail, pentru a vedea dacă timpul de răspuns respectă indicii de performanță. Aceasta include trimiterea de mail-uri prin SMTP (Simple Mail Transfer Protocol).
3.4.3.5 Gestionarea securității (Security Management)
Managemenul securității are două roluri. În primul rând, controlează resursele, pentru o rețea și gazdele sale. În al doilea rând, are rolul de a detecta și preveni incidente ce pot compromite componentele rețelei. Atacurile împotriva rețelelor pot duce la defectarea unui serviciu sau chiar mai rău, pot permite hackerilor accesul la sisteme vitale care conțin date foarte importante precum: parole, date confidențiale, coduri de programare. Gestionarea securității constă nu numai în sistemele de securitate a rețelei, dar și în securitatea fizică. Securitatea fizică include cardurile de acces în interiorul unei clădiri și sistemele de supraveghere video. Scopul acestei securități este de a asigura accesul la sistemele vulnerabile, numai persoanelor autorizate.
Astăzi, managementul securității în rețea se realizează prin utilizarea diverselor instrumente și sisteme proiectate special pentru acest scop precum:
Aplicații de tip Firewall
Sisteme de detectare a intruziunilor
Sisteme de prevenție a intruziunilor
Aplicații software de tip antivirus
Majoritatea sistemelor de securitate ale rețelei pot avea încorporate sisteme de management cum ar fi protocolul SNMP. În concluzie, securitatea este foarte importantă în monitorizarea unei rețele de comunicații, dar și în cazul altor sisteme tehnologice deoarece ajută la prevenirea unor incidente majore privind echipamentele software și hardware, dar și angajații respectivului proiect. [10]
3.5 Instalarea aplicației Nagios Core 3
Acest subcapitol descrie modul de instalare Nagios și plugin-uri standard pentru Nagios. Există două tipuri de instalare: instalarea pe surse și instalarea pe pachete. În continuare se va descrie un proces de instalare pe surse. Procesul descris reprezintă instalarea aplicației disponibilă pe majoritatea sistemelor de operare. Se recomandă consultarea sistemului de operare și software-ul de distribuție pentru a vedea dacă acestea oferă deja pachete preinstalate Nagios. Obținerea și instalarea Nagios ca o distribuție binară, corespunzătoare pentru o anumită platformă, este întotdeauna o alegere mai bună deoarece oferă, de asemenea, actualizări automate și se asigură că toate dependențele sunt îndeplinite. Instalarea manuală cu ajutorul liniei de cod este recomandată pentru administratorii de sistem care doresc performanțe sporite și doresc să gestioneze actualizările și configurațiile de software pe cont propriu. Acest subcapitol cuprinde elementele de bază de configurare Nagios și ce tipuri de obiecte pot fi configurate. În procesul de instalare trebuie luate în considerare următoarele lucruri:[11]
Actualizarea unei versiuni mai vechi
Cerințe de sistem
Obținerea licenței Nagios
Stabilirea utilizatorilor și grupurilor de utilizatori
Procesul de instalare pe pachete
3.5.1 Actualizarea unei versiuni mai vechi (Nagios 1, Nagios 2)
Actualizarea unei versiuni mai vechi presupune în adăugarea unor elemente de bază specifice unei versiuni mai nouă. Dacă sunt deja instalate Nagios 1,repectiv Nagios 2 trecerea către Nagios 3 ar fi utilă. În astfel de cazuri, ar trebui ca procedura să fie aceeași ca și la o instalație propriu-zisă. Este recomandată utilizarea aceluiași utilizator, acelorași grupuri și directoare folosite pentru instalațiile anterioare Nagios. De asemenea, este necesar de a opri toate procesele Nagios înainte de a efectua un upgrade (actualizare). Acest se poate face de obicei prin următoarea comandă:
/etc/init.d/nagios stop
În acest fel, atât Nagios și aplicațiile aferente se vor instala fără probleme. Din moment ce pentru Nagios 3 parametrii de configurare sunt compatibili cu versiunile precedente, configurația nouă va funcționa bine după upgrade.
3.5.2 Cerințe de sistem
Această secțiune se aplică pentru utilizatorii care au realizat instalarea Nagios din surse, așa numita instalare manuală. Aproape toate distribuțiile moderne de Linux includ Nagios ( 1.x , 2.x sau 3.x) în componența lor. Site-ul Nagios oferă, de asemenea, instrucțiuni pentru instalarea automată pe mai multe sisteme de operare. În astfel de cazuri, vor fi instalate toate pachetele legate de sistemul de bază (valabil pentru sistemele Debian și Ubuntu ). De obicei ,un sistem cu pachete deja instalate conține toate componentele necesare pentru a construi Nagios. Instalarea Nagios din surse necesită un compilator C, fișiere C și comanda make (comandă de compilare). În plus, dezvoltarea de fișiere pentru OpenSSL ar trebui să fie instalată astfel încât plugin-urile bazate pe rețea să poată comunica peste stratul de SSL .OpenSSL este o implementare open source a protocoalelor SSL și TLS. Biblioteca de bază, scrisă în limbajul de programare C, implementează funcțiile criptografice de bază și oferă diverse funcții de utilizare. Astfel, este permisă utilizarea bibliotecii OpenSSL într-o varietate de limbaje de programare.Secure Sockets Layer (SSL) și Transport Layer Security (TLS), succesorul său, sunt protocoale criptografice care permit comunicații sigure pe internet. Între SSL 3.0 și TLS 1.0 există anumite diferențe, dar protocolul rămâne aproximativ același. Termenul "SSL" se poate referi la ambele protocoale. Pachetele MySQL de dezvoltare ar trebui să fie, de asemenea, instalate astfel încât verificările bazei de date să poată fi rulate. MySQL este un sistem de baze relațional, produs de compania suedeză MySQL cu același nume, fiind cel mai popular sistem de baze de date la ora actuală. Deși aceste pachete, de obicei, vin instalate, este necesară o verificare că acestea sunt de fapt acolo înainte de compilare.
Nagios nu are un număr mare de pachete, care să ofere funcționalități de bază. Deci, dacă se optează pentru o utilizare completă a aplicației Nagios trebuie efectuată instalarea aplicațiilor software suplimentare (plugin-urile). Fișierele de tip OpenSSL (inclusiv bibliotecile) sunt necesare pentru plugin-urile Nagios pentru a comunica peste protocolul SSL. Pentru a monitoriza baze de date MySQL, este recomandată instalarea fișierelor antet și a bibliotecilor pentru aceste baze de date. Acest lucru va permite construirea plugin-urilor de control pentru monitorizarea bazelor de date. Dacă se optează pentru interfața web Nagios, avem nevoie de un server web compatibil cu scripturi. Se recomandă folosirea server-ului web Apache (versiunea 1 sau 2), serverul și este cel mai popular server web pe o versiune de Linux . Deși Nagios merge cu orice server web care suportă scripturi, în această lucrare s-a optat pentru Apache pentru că sistemul de operare folosit este Ubuntu.
Mai mult decât atât, este nevoie de o bibliotecă grafică pentru interfața web Nagios pentru a creea o hartă cu stările dispozitivelor monitorizate. Totodată, biblioteca grafică creează imagini în format JPEG și PNG. Toate pachetele menționate mai sus sunt de obicei instalate pe multe sisteme de operare, dar în această lucrare se va folosi Ubuntu 12.04. Toate versiunile noi Ubuntu folosesc aceleași pachete, așadar comenzile utilizate aici vor funcționa fără probleme. Pentru diferite sisteme de operare, pachetele sunt similare, deși pot avea nume diferite. Ceea ce urmează este set de comenzi pentru a instala toate componentele Nagios necesare pentru versiunea de Ubuntu:
Figura 3.4- Comenzi de instalare pe surse pentru componentele Nagios
Comenzile pentru a instala pachetele corespunzătoare pot fi, de asemenea, diferite. Pentru sistemele de operare Red Hat Enterprise Linux si Fedora Core cu plugin-ul “yum” instalat, comenzile vor fi:
Figura 3.5- Comenzi de instalare pe surse a aplicației Nagios pentru versiunea Red Hat
Așadar, aplicația de monitorizare Nagios se poate instala pe mai multe sisteme de operare, chiar și Windows sau alte versiuni de Linux mai puțin cunoscute. Se optează pentru Ubuntu 12.04 în această lucrare deoarece este o versiune mai nouă de Linux și nu se întâmpină probleme în procesul de instalare. Totodată, se poate opta și pentru versiunea Red Hat, de exemplu, datorită comenzilor care nu sunt foarte diferite de cele pentru Ubuntu. Așadar, Nagios Core 3 este un program versatil și foarte adaptabil oricărui sistem de operare. Este de preferat totuși alegerea unui versiuni Linux deoarece sunt disponibile de la început pachete preinstalate ceea ce transformă procesul de instalare într-un lucru agreabil pentru utilizator.[8]
3.5.3 Obținerea licenței Nagios
Nagios Core 3 este o aplicație de monitorizare a rețelelor de comunicații de tip open source, ceea ce înseamnă că este disponibil gratuit pe pagina oficială și că utilizatorul poate contribui la îmbunătățirea produsului. Nagios este distribuit sub licență publică gratuită, ceea ce înseamnă că poate fi redistribuit și modificat în mod liber , cu condiția ca toate modificările să fie disponibile publicului. Nagios are, de asemenea, un set standard de plugin-uri distribuite sub aceeași licență. În primul rând, multe sisteme de operare au deja distribuții binare de Nagios. Pentru ușurință, în utilizare cele mai bune sunt distribuții binare în loc de compilarea aplicației Nagios. Prin urmare, este recomandată o versiune compilată disponibilă Nagios 3. Pentru un utilizator experimentat este indicat a se instala Nagios pe surse. În acest caz, se descarcă atât Nagios cât și plugin-urile Nagios. Descărcarea Nagios se efectuează accesând site-ul oficial, acest proces realizându-se automat.
3.5.4 Stabilirea utilizatorilor și grupurilor de utilizatori
Această secțiune descrie modul de a stabili utilizatoruii și grupurile de utilizatori Nagios. Dacă se face upgrade de la o versiune anterioară Nagios, vom avea aceiași utilizatori și aceleași grupuri, fiind deja realizate. Primul lucru care trebuie făcut este de a decide locul în care se va instala Nagios. Se vor instala fișierele Nagios în directorul /etc/Nagios, și toate fișierele de configurare vor fi în aceste locații. Tot în această locație se vor stoca fișiere precum cele de tip plugin, cele în care se păstrează informații despre starea sa actuală, fișierele de tip configurare, de exemplu nagios_config. După stbilirea directorului de instalare, este necesară setarea utilizatorilor Nagios. Se va crea, de asemenea, un utilizator principal „nagiosadmin” care va face parte din grupul „nagioscmd”, grup făcut pentru toți utilizatorii. Următoarele comenzi vor crea grupul și utilizatorul menționați mai sus, inclusiv adăugarea utilizatorului în grup:
Figura 3.6- Realizarea grupului și a utilizatorului
Se vor crea un nou utilizator și grupuri, deoarece procesele Nagios rulează separat, ca niște utilizatori. Acest lucru sporește securitatea și permite o configurare mai flexibilă. Interfața web Nagios trebuie să fie capabilă să trimită comenzi privind procesul de monitorizare, lucru permis de utilizatorul principal. Dacă dorim să folosim interfața web este necesar ca utilizatorul să fie adăugat în grupul “nagioscmd”, pentru ca serverul web să funcționeze. Acest lucru va permite ca interfața web să comunice cu Nagios.
3.5.5 Procesul de instalare pe pachete
În această lucrare se va instala aplicația Nagios Core 3 prin pachete. S-a optat pentru această variantă deoarece este mult mai simplă și permite utilizatorului să aibă o imagine de ansamblu asupra tuturor componentelor. În continuare, va fi prezentat pe scurt procesul propriu-zis de instalare. În primul se instalează serverul web “apache2” prin următoarea comandă:
# sudo apt-get install apache2
Pentru a instala aplicații în Linux, se folosește comanda “apt-get install” urmată de denumirea aplicației. Se observă o avertizare la încercarea de instalare a serverului web, în care este specificat că nu se poate determina numele domeniului acestuia:
#apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
Ca urmare a acestui fapt se creează un fișier nou în directorul /etc/apache2/, în care se adaugă comanda de mai jos, comandă folosită pentru editarea fișierelor de tip configurare și în fișier se va scrie sintaxa “ServerName localhost” pentru a stabili numele domeniului, plus o comandă de verificare a serverului web:
# nano /etc/apache2/httpd.cfg
# service apache2 restart
Apache2 este un server web de tip open source cu o contribuție notabilă la dezvoltatea netului (world wide web). Totodată, suportă o mare varietate de module care îi extind funcționalitatea, acestea fiind de la limbaje de programare de server până la scheme de autentificare. Câteva limbaje suportate sunt: python și PHP. O altă calitate a serverului Apache este “virtual hosting” (găzduirea virtuală), care constă în posibilitatea de a găzdui mai multe site-uri simultan pe același server. După aceste prime etape se constată funcționarea corectă a serverului “apache2”. Acest element, și anume serverul web, este necesar pentru funcționarea aplicației Nagios Core 3 la nivel de rețea , nu doar la nivel local. Mai departe s-au instalat și celelalte pachete:
# sudo apt-get install build-essential
# apt-get install php5-gd wget libgd2-xpm libgd2-xpm-dev libapache2-mod-php5
# apt-get install mysql-server mysql-client
Ultima comandă realizează instalarea serverului de baze de date “MySQL”, iar în urma acesteia se vor completa următoarele câmpuri, ca în figura de mai jos:
Figura 3.7- Configurarea serverului MySQL
MySQL este o bază de date open source și asigură o bună implementare economică de aplicații de baze de date incorporate, bazate pe web, fiabile și performante . Pentru conectarea la un server sunt necesare un utilizator și o parolă la fel ca în figura de mai sus. Utilizatorul este denumit “root”, iar parola este la latitudinea utilizatorului. În continuare se va instala aplicația “phpmyadmin”, prin următoarea comandă:
# apt-get install phpmyadmin
Aplicația “phpMyAdmin” este o unealtă scrisă în limbaj PHP cu scopul de a administra baze de date MySQL pe web. Poate creea, șterge, modifica tabele și adăuga, șterge, modifica câmpuri și poate executa interogări SQL, administra privilegii, exporta datele în diverse forme. După acești primi pași sistemul de operare Ubuntu 12.04 este pregătit pentru instalarea programului de monitorizare Nagios Core 3. Acest lucru se realizează prin următoarea comandă:
# apt-get install nagios3
După instalarea programului Nagios, se va verifica funcționarea acestuia accesând în browser-ul de internet adresa “localhost/nagios3”. În continuare, va apărea o interfață cu două câmpuri unul pentru utilizator și unul pentru parolă. Se va completa “nagiosadmin” în dreptul utilizatorului, iar parola este aceeași pe tot parcursul instalării. După aceste etape se va obține următoarea imagine ce confirmă funcționarea programului nagios3 :
Figura 3.8- Interfața aplicației Nagios 3
Pentru a realiza sincronizarea aplicației de monitorizare cu serverul MySQL, trebuie ca Nagios 3 să fie configurat astfel încât să accepte comenzi externe. Acest lucru se realizează prin editarea fișierului “nagios.cfg”:
#sudo nano /etc/nagios3/nagios.cfg
check_external_commands=1
Mai departe se adaugă utilizatorul „nagiosadmin” la grupul „www-data” (Apache) și se dau grupului permisiuni pentru execuție:
# sudo usermod -G nagios www-data
# chmod g+x /var/lib/nagios3/rw
Pentru ca modificările să fie înregistrate trebuie repornite Nagios 3 și serverul web Apache2:
# sudo /etc/init.d/nagios3 restart
# sudo /etc/init.d/apache2 restart
În continuare, s-a optat pentru instalarea unui instrument de configurare pentru Nagios și anume Nconf deoarece această aplicație oferă posibilitatea de a modifica fișiere Nagios dintr-o interfață grafică și nu din linie de comandă. NConf este un instrument open source pentru configurarea sistemului de monitorizare a rețelei Nagios. Acesta se adresează în principal administratorilor de sistem care sunt în căutarea unei modalități mai convenabile de gestionare a fișierelor de configurare Nagios prin utilizarea unei interfețe grafice, spre deosebire de menținerea fișierelor de configurare cu un editor de text. NConf permite gestionarea unui mediu de monitorizare distribuit. Acesta oferă, de asemenea, diferite caracteristici, cum ar fi întreprinderi, cum ar fi autentificarea LDAP. Un mecanism de importul fișierelor de configurare existente este, de asemenea, disponibil. LDAP, Lightweight Directory Access Protocol, este un protocol Internet pe care mail-ul și alte programe îl folosesc pentru a căuta informații pe un server. LDAP nu este limitat la informații despre persoane de contact. LDAP este folosit pentru a căuta certificate de criptare, indicii de imprimante și alte servicii pe o rețea, și să ofere autentificare unică, în cazul în care o singură parolă pentru un utilizator este împărțită între mai multe servicii. Ca un protocol, LDAP nu definește modul în care programele lucrează pe fiecare client sau server. Acesta definește "limbajul" folosit pentru programul client pentru a comunica cu serverul. Pe partea de client, poate fi un program de e-mail sau o agendă de adrese. [12] NConf este scris în principal, în limbaj PHP. Toate datele sunt stocate într-o bază de date MySQL. Pentru a integra Nagios cu NConf, am instalat mai intai plugin-ul NRPE [13]:
# sudo apt-get install nagios-nrpe-plugin
Mai departe s-a descărcat ultima versiune de Nconf, după care s-a dezarhivat conținutul în directorul „/var/www” pentru ca serverul „apache2” să poată avea acces la fișierele de configurare:
# wget http://sourceforge.net/projects/nconf/files/nconf/1.3.0-0/nconf-1.3.0-0.tgz
# tar xzvf nconf-1.3.0-0.tgz -C /var/www
Pentru a stoca datele de configurare generate de NConf s-a creat o bază de date MySQL, în “phpMyAdmin”, iar pentru sincronizarea cu serverul „apache2” s-a editat fișierul „apache.conf” cu următoarea comandă :
# nano /etc/apache2/apache2.conf
Include /etc/phpmyadmin/apache.conf
În urma acestor modificări, aplicația “phpMyAdmin” funcționează și poate fi accesată în programul Mozilla Firefox prin adresa “localhost/phpmyadmin” ca în figura următoare:
Figura 3.9-Interfața aplicației phpMyAdmin
Aplicația “phpMyAdmin” poate gestiona un întreg server de MySQL, precum și o bază de date unică. Gestionarea utilizatorilor reprezintă procesul de control care permite utilizatorilor să se conecteze la serverul MySQL și arată setul de permisiuni pe care îl au, pe fiecare bază de date. În cadrul aplicației “phpMyAdmin”, administratorii au control deplin asupra proceselor de creare de utilizatori, vizualizare și editare de privilegii pentru utilizatorii existenți, precum și ștergere de utilizatori. Utilizatorii pot fi creați, editați și eliminați ca în figura de mai sus. Pentru a crea un utilizator nou, se selectează butonul “Create User” din partea de jos a paginii și trebuie folosit utilizatorul "root". Se vor completa câmpurile din figura de mai sus pentru a stabili particularitățile noului utilizator în funcție de necesitate. După aceea se va selecta locul de creare al bazei de date pentru acel utilizator și se vor acorda privilegii globale specifice. După crearea noului utilizator, se vor defini permisiunile pe care utilizatorul le poate avea asupra unei baze de date specifice. În general, utilizatorii nu au nevoie de privilegii la nivel mondial, ci doar de permisiunile pentru baza lor de date specifică.
Pentru a edita un utilizator existent, se va selecta pictograma „creion” din dreptul paginii de utilizatori. Se pot edita apoi privilegiile lor la nivel global, parolele sau chiar să se copieze aceste privilegii pentru un utilizator nou pentru a economisi timp.Utilizatorii sunt atribuiți la bazele de date prin editarea înregistrării de utilizator. Dacă se dorește crearea unui utilizator specific pentru anumite cerințe, va trebui să nu i se atribuie privilegii globale, ci privilegii caracteristice.
Revenind la interfața Nconf, funcționarea acesteia este verificată prin accesarea adresei „localhost/nconf” în programul Mozilla Firefox. În continuare, se va configura interfața Nconf astfel încât gazdele adăugate să fie văzute de programul Nagios 3, acest lucru fiind observat în imaginea următoare:
Figura 3.10- Sincronizarea Nagios-Nconf
Constatăm faptul că în imaginea de mai sus apar încă trei elemente pe lângă gazda „localhost”, față de Figura 3.8 acolo unde era prezentă doar gazda locală ceea ce arată că sincronizarea între Nagios și Nconf a fost realizată, iar programele funcționează corect. Acesta a fost procesul propriu-zis de instalare al aplicației Nagios Core 3, urmând ca în ANEXA 1 să fie prezentate pe larg imaginile complete ale procesului.
3.6 Configurarea aplicației Nagios
Nagios Core este adecvat pentru monitorizarea serviciilor și a stărilor pentru diferite gazde, iar unul dintre avantajele sale principale este că procesul de configurare poate fi simplu sau complex, în funcție de necesitate. Mulți utilizatori Nagios Core folosesc software-ul ca o modalitate de a trimite cereri de PING la câteva gazde pe rețeaua lor locală sau pe Internet, și pentru a trimite e-mail de notificare. Nagios Core este capabil de a monitoriza multe configurări de sisteme mult mai complexe decât acest lucru, de exemplu, o rețea LAN. Cu toate acestea, atât pentru configurații simple cât și complexe de Nagios Core, elementele cele mai importante și cele ce pot fi configurate sunt gazdele, serviciile și contactele. Acestea sunt cele trei lucruri pe care administratorii rețea le vor crea și configura.
Într-o posibilă configurație Nagios Core, gazdele corespund, de obicei, sistemelor de tip calculator. Acesta ar putea fi un sistem fizic sau o mașină virtuală accesibilă în rețea, sau chiar serverul de monitorizare însuși. Conceptual, cu toate acestea, o gazdă poate monitoriza orice tip de entitate de rețea, cum ar fi punctul final al unei rețele private. Serviciile corespund, de obicei, unui ansamblu pentru Nagios Core care are rolul de a verifica starea unei gazde, fie că e ceva simplu ca obținerea PING (protocolul ce verifică comunicarea între gazdă și server) sau ceva mai complicat, cum ar fi verificarea unui router cu ajutorul protocolului SNMP.
Contactele definesc o persoană ce trebuie notificată atunci când au loc evenimente legate de funcționarea serviciilor corespunzătoare gazdelor noastre, de exemplu, imposibilitatea de a trimite un mesaj de testare prin e-mail.
Așadar, în continure, se vor configura cele trei entități de bază ale programului Nagios 3.
3.6.1 Crearea unei gazde
În acest subcapitol, se va înființa o gazdă pentru un server care răspunde la protocolul PING pe rețeaua locală. Rezultatul final constă în adăugarea noii gazde în interfețele Nagios Core atunci când pornește și se va verifica în mod automat starea gazdei. Fișierul după care Nagios Core se ghidează și aplică configurările curente este fișierul “nagios.cfg”, fișier ce este situat la locația “/usr/local/Nagios/etc/nagios.cfg”. Este totuși de preferat ca fiecare gazdă să aibă propriul fișier de configurare, într-un director de obiecte separate. Pentru a efectua aceste operațiuni trebuie să folosim editorul de texte “vi” și să folosim utilizatorul “root” pentru a avea privilegii. După ce avem o nouă configurație o să repornim aplicația Nagios Core pe server pentru ca noile modificări să fie înregistrate. O locație comună pentru scriptul de pornire / oprire al gazdelor este “/ etc / init.d/”. Pentru a monitoriza un server, o gazdă trebuie mai întâi să obținem numele de gazdă sau adresa IP. Este o bună practică să se utilizeze adresa IP, dacă acest lucru este posibil , pentru că monitorizarea va continua chiar dacă domeniul de nume DNS (Domain Name System) nu va funcționa. În cele din urmă, trebuie să testăm dacă putem să comunicăm cu gazda din serverul Nagios prin protocolul PING pentru a putea ști dacă rutele și netmask-urile sunt toate corecte. Configurația din această secțiune reprezintă modul în care se adaugă o gazdă în lista Nagios Core de gazde. Acesta va verifica periodic gazda prin trimiterea unei cereri PING, de verificare pentru a vedea dacă aceasta primește un răspuns și actualizarea statutului gazdei așa cum apare în interfața Nconf. Chiar dacă nu s-au definit servicii de verificare pentru această gazdă încă și nici nu am specificat ce măsuri să fie luate în caz de incidente, gazda va fi verificată în mod automat la intervale regulate de Nagios Core și se poate vedea starea sa în Nconf în orice moment. În imaginea următoare sunt prezentați pașii necesari pentru crearea propriu-zisă a unei gazde:
Figura 3.11- Crearea unei gazde
Directivele definite în configurația precedentă sunt explicate după cum urmează:
host_name- acesta definește numele de gazdă al mașinii, folosit intern de către Nagios
alias- acesta definește un nume poate fi citit mai ușor pentru gazdă,apare în interfața web
address- acesta definește adresa IP a gazdei, fiind valoarea reală pe care Nagios Core o va folosi pentru a contacta serverul
max_check_attempts- acesta definește numărul maxim de câte ori Nagios Core ar trebui să încerce să repete verificarea în cazul în care conexiunea a eșuat
check_period- acesta face referire la perioada de timp în care gazda ar trebui să fie verificată
check_command- acesta definește ce comandă de verificare trebuie aplicată în funcție de starea gazdei
contacts- acesta indică utilizatorul ce trebuie notificat cu privire la starea gazdei, în cazul de față am utilizat “nagiosadmin”
notification_interval- intervalul de timp dintre două notificări consecutive
notification_period- acesta face referire la perioada de timp în care Nagios ar trebui să trimită notificări, în cazul în care există probleme, funcționând întocmai ca un orar de lucru
3.6.2 Crearea unui serviciu HTTP
Serviciile sunt obiecte care descriu funcționalitatea unei anumite gazde. Acestea pot fi servere de rețea, cum ar fi FTP, sau resurse referitoare la spațiul de stocare sau la încărcarea procesorului. Un serviciu este întotdeauna corelat cu gazda pe care este definit. De asemenea, este identificat prin descrierea sa, care trebuie să fie unică într-o anumită gazdă. Un serviciu de asemenea, definește, când și cum Nagios ar trebui să verifice pentru a vedea dacă gazda funcționează în mod corespunzător și definește modul de notificare al persoanelor responsabile pentru acest serviciu.În acest subcapitol, se va crea un nou serviciu pentru a-l verifica pe o gazdă existentă. Se va verifica gazda „host1” pentru a vedea dacă răspunde la cererea HTTP pe portul 80. Pentru a face acest lucru, se va folosi o comandă predefinită numită “check_http”, care reprezintă unul din plugin-urile standard de Nagios Core. În următoarea imagine se va defini serviciul HTTP pe gazda „host1” :
Figura 3.12- Crearea unui serviciu HTTP
3.6.3 Definirea unui e-mail pentru contact
În acest subcapitol, va fi creat un contact nou, contact cu care gazda și serviciile pot comunica în special pentru actualizarea stărilor. Se va realiza un e-mail pentru contactul respectiv astfel încât acesta să primească o notificare atunci când verificarea gazdei eșuează.
Pașii necesari pentru realizarea unei configurări e-mail sunt foarte asemănători cu pașii precedenți în realizarea unei gazde și a unui serviciu HTTP. În imaginea următoare se va configura e-mailul astfel încât contactul (administratorul) să fie notificat printr-un mail automat în cazul apariției unor incidente:
Figura 3.13- Notificarea prin e-mail a administratorului
Directivele definite în configurația precedentă sunt explicate după cum urmează:
contact_name- acesta definește un nume unic de contact
alias- acesta definește un nume ce poate fi citit mai ușor
e-mail- acesta definește adresa de e-mail a persoanei de contact, deoarece se va trimite mesaje prin mail
host_notification_commands- stabilește comenzile de acces în cazul, în care schimbarea de statut a gazdei este notificată, în această situație se folosește comanda predefinită notify-host-by-email
host_notification_options- acesta specifică starea gazdei în notificarea contactului, folosim d,u,r pentru stările DOWN (gazdă căzută), UNREACHABLE (gazdă inaccesibilă), respectiv UP (gazdă ridicată)
host_notification_period- definește perioada de timp în care contactul poate fi notificat cu privire la starea gazdei, în caz de depășire al acestei perioade notificarea nu mai are loc
service_notification_commands- stabilește comenzile de acces în cazul, în care schimbarea de statut al serviciului este notificat, în această situație folosim comanda predefinită notify-service-by-email
service_notification_options- acesta specifică starea serviciului în notificarea contactului, folosim w,u,c,r pentru stările WARNING (avertizare), UNKNOWN (serviciu necunoscut), CRITICAL (stare critică a serviciului), respectiv OK-RECOVERING (serviciu în recuperare)
service_notification_period- definește perioada de timp în care contactul poate fi notificat cu privire la starea serviciului, în caz de depășire al acestei perioade notificarea nu mai are loc
address- acesta definește adresa IP a gazdei, fiind valoarea reală pe care Nagios Core o va folosi pentru a contacta serverul
max_check_attempts- acesta definește numărul maxim de câte ori Nagios Core ar trebui să încerce să repete verificarea în cazul în care conexiunea a eșuat
check_period- acesta face referire la perioada de timp în care gazda ar trebui să fie verificată
check_command- acesta definește ce comandă de verificare trebuie aplicată în funcție de starea gazdei
contacts- acesta indică utilizatorul ce trebuie notificat cu privire la starea gazdei, în cazul de față am utilizat “nagiosadmin”
notification_interval- intervalul de timp dintre două notificări consecutive
notification_period- acesta face referire la perioada de timp în care Nagios ar trebui să trimită notificări, în cazul în care există probleme, funcționând întocmai ca un orar de lucru
În acest subcapitol s-a definit contactul responsabil cu starea gazdelor și a serviciilor, contactul fiind menționat în fișierul de configurare ”contacts.cfg”. Se poate defini contactul în orice fișier de configurare, dar pentru o bună organizare s-a optat pentru realizarea unui singur fișier, doar pentru contacte. După fiecare configurare a aplicației Nagios Core este indicat să fie efectuată o verificare printr-o simplă repornire a serverului web.[14]
CONCLUZII
BIBLIOGRAFIE
[1] Communication Systems 4th Edition- Simon Haykin
http://fiek.uni-pr.edu/getattachment/32aa0fdc-d99e-4393-b0f9-63773f8710e5/Communication-Systems.aspx
[2] Communication Networks- Sharam Hekmat
http://www.pragsoft.com/books/CommNetwork.pdf
[3] Cloud Computing and Software Services – Theory and Technics Springer 2011 Edition 1-Syed A. Ahson • Mohammad Ilyas
[4] Implementing and Developing Cloud Computing Applications- David E.Y. Sarna
[5] Handbook of Cloud Computing-Borko Furht & Armand Escalante
[6] Cloud OpenStack- http://docs.openstack.org/
[7] Ubuntu 12.04- https://help.ubuntu.com/12.04/serverguide/serverguide.pdf
[8] Nagios Core Version 3.x Documentation- http://www.nagios.org
[9] Essential SNMP Edition 2- Douglas R. Mauro & Kevin J. Schmidt- http://www.reedbushey.com/124Essential%20SNMP%202nd%20Edition.pdf
[10] Learning Nagios 3.0-Wojciech Kocjan
http://www.szemtsov.net/books/Learning_Nagios_3.pdf
[11] Nagios Book- Chris Burgess
http://nagiosbook.org/PRE-RELEASE_The_Nagios_Book-05012006.pdf
[12] LDAP- http://www.gracion.com/server/whatldap.html
[13] NConf- Angelo Garguilo- http://www.netways.de/uploads/media/Angelo_Garguilo_NConf_02.pdf
[14] Nagios Core Administration Cookbook- Tom Ryder
ANEXA 1
Imaginile procesului de instalare a programului Nagios Core 3
Figura 5.1-Configurarea serverului MySQL
Figura 5.2 -Instalarea aplicației phpMyAdmin
Figura 5.3 – Configurarea aplicației phpMyAdmin
Figura 5.4 – Crearea bazei de date „nconf”
Figura 5.5 – Instalarea interfeței NConf
Figura 5.6 – Pasul 1 în configurarea aplicației NConf
Figura 5.7 – Pasul 2 în configurarea aplicației NConf
Figura 5.8- Pasul 3 în configurarea aplicației NConf
Figura 5.9 – Pasul 4 în configurarea aplicației NConf
Figura 5.10 – Aplicația NConf funcțională
Figura 5.11- Adăugarea gazdelor din NConf în Nagios Core
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Sisteme de Comunicatii cu Ajutorul Unei Platforme de Tip Cloud (ID: 163591)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
