Configurarea monitorizării în timp real cu „Ganglia” pentru grile și clustere de servere Linux


De când administratorii de sistem sunt responsabili cu gestionarea serverelor și a grupurilor de mașini, instrumente precum aplicațiile de monitorizare au fost cei mai buni prieteni ai lor. Probabil că veți fi familiarizat cu instrumente precum Nagios, Zabbix, Icinga și Centreon. Deși aceștia sunt cei mai grei ai monitorizării, configurarea acestora și profitarea pe deplin de funcțiile lor pot fi oarecum dificile pentru utilizatorii noi.

În acest articol vă vom prezenta Ganglia, un sistem de monitorizare care este ușor scalabil și permite vizualizarea în timp real a unei game largi de valori de sistem ale serverelor și clusterelor Linux (plus grafice).

Ganglia vă permite să configurați grile (locații) și clustere (grupuri de servere) pentru o mai bună organizare.

Astfel, puteți crea o grilă compusă din toate mașinile dintr-un mediu la distanță și apoi grupați acele mașini în seturi mai mici pe baza altor criterii.

În plus, interfața web a lui Ganglia este optimizată pentru dispozitive mobile și, de asemenea, vă permite să exportați date în formatele .csv și .json.

Mediul nostru de testare va consta dintr-un server central CentOS 7 (adresa IP 192.168.0.29) unde vom instala Ganglia și un Ubuntu 14.04mașină (192.168.0.32), caseta pe care dorim să o monitorizăm prin interfața web a lui Ganglia.

Pe parcursul acestui ghid, ne vom referi la sistemul CentOS 7 ca nodul principal și la caseta Ubuntu ca mașina monitorizată.

Instalarea și configurarea Ganglia

Pentru a instala utilitățile de monitorizare în nodul principal, urmați acești pași:

1. Activați depozitul EPEL și apoi instalați Ganglia și utilitarele aferente de acolo:

yum update && yum install epel-release
yum install ganglia rrdtool ganglia-gmetad ganglia-gmond ganglia-web 

Pachetele instalate în pasul de mai sus împreună cu ganglionii, aplicația în sine, îndeplinesc următoarele funcții:

  1. rrdtool, baza de date Round-Robin, este un instrument care este folosit pentru a stoca și afișa variația datelor de-a lungul timpului folosind grafice.
  2. ganglia-gmetad este demonul care colectează date de monitorizare de la gazdele pe care doriți să le monitorizați. În acele gazde și în nodul principal este, de asemenea, necesar să instalați ganglia-gmond (demonul de monitorizare însuși):
  3. ganglia-web furnizează interfața web unde vom vizualiza graficele istorice și datele despre sistemele monitorizate.

2. Configurați autentificarea pentru interfața web Ganglia (/usr/share/ganglia). Vom folosi autentificarea de bază oferită de Apache.

Dacă doriți să explorați mecanisme de securitate mai avansate, consultați secțiunea Autorizare și autentificare din documentele Apache.

Pentru a atinge acest obiectiv, creați un nume de utilizator și atribuiți o parolă pentru a accesa o resursă protejată de Apache. În acest exemplu, vom crea un nume de utilizator numit adminganglia și vom atribui o parolă la alegerea noastră, care va fi stocată în /etc/httpd/auth.basic (nu ezitați să alege alt director și/sau nume de fișier – atâta timp cât Apache are permisiuni de citire pentru acele resurse, vei fi bine):

htpasswd -c /etc/httpd/auth.basic adminganglia

Introduceți parola pentru adminganglia de două ori înainte de a continua.

3. Modificați /etc/httpd/conf.d/ganglia.conf după cum urmează:

Alias /ganglia /usr/share/ganglia
<Location /ganglia>
    AuthType basic
    AuthName "Ganglia web UI"
    AuthBasicProvider file
    AuthUserFile "/etc/httpd/auth.basic"
    Require user adminganglia
</Location>

4. Editați /etc/ganglia/gmetad.conf:

Mai întâi, utilizați directiva gridname urmată de un nume descriptiv pentru grila pe care o configurați:

gridname "Home office"

Apoi, utilizați data_source urmat de un nume descriptiv pentru cluster (grup de servere), un interval de interogare în secunde și adresa IP a nodurilor master și monitorizate:

data_source "Labs" 60 192.168.0.29:8649 # Master node
data_source "Labs" 60 192.168.0.32 # Monitored node

5. Editați /etc/ganglia/gmond.conf.

a) Asigurați-vă că blocul cluster arată după cum urmează:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

b) În blocul udp_send_chanel, comentați directiva mcast_join:

udp_send_channel   {
  #mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

c) În cele din urmă, comentați directivele mcast_join și bind în blocul udp_recv_channel:

udp_recv_channel {
  #mcast_join = 239.2.11.71 ## comment out
  port = 8649
  #bind = 239.2.11.71 ## comment out
}

Salvați modificările și ieșiți.

6. Deschideți portul 8649/udp și permiteți scripturilor PHP (rulate prin Apache) să se conecteze la rețea folosind booleanul SELinux necesar:

firewall-cmd --add-port=8649/udp
firewall-cmd --add-port=8649/udp --permanent
setsebool -P httpd_can_network_connect 1

7. Reporniți Apache, gmetad și gmond. De asemenea, asigurați-vă că sunt activate pentru a porni la pornire:

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

În acest moment, ar trebui să puteți deschide interfața web Ganglia la http://192.168.0.29/ganglia și să vă conectați cu acreditările de la #Pasul 2.

8. În gazda Ubuntu, vom instala numai ganglia-monitor, echivalentul ganglioni-gmond în CentOS:

sudo aptitude update && aptitude install ganglia-monitor

9. Editați fișierul /etc/ganglia/gmond.conf din caseta monitorizată. Acesta ar trebui să fie identic cu același fișier din nodul principal, cu excepția faptului că liniile comentate din cluster, udp_send_channel și udp_recv_channel ar trebui să fie activat:

cluster {
name = "Labs" # The name in the data_source directive in gmetad.conf
owner = "unspecified"
latlong = "unspecified"
url = "unspecified"
}

udp_send_channel   {
  mcast_join = 239.2.11.71
  host = localhost
  port = 8649
  ttl = 1
}

udp_recv_channel {
  mcast_join = 239.2.11.71 ## comment out
  port = 8649
  bind = 239.2.11.71 ## comment out
}

Apoi, reporniți serviciul:

sudo service ganglia-monitor restart

10. Reîmprospătați interfața web și ar trebui să puteți vizualiza statisticile și graficele pentru ambele gazde în cadrul grila biroului de acasă/clusterul Labs ( utilizați meniul drop-down de lângă Grilă de birou la domiciliu pentru a alege un cluster, Laboratoare în cazul nostru):

Folosind filele de meniu (evidențiate mai sus) puteți accesa o mulțime de informații interesante despre fiecare server individual și în grupuri. Puteți chiar să comparați statisticile tuturor serverelor dintr-un cluster unul lângă altul, folosind fila Compara gazde.

Pur și simplu alegeți un grup de servere folosind o expresie regulată și veți putea vedea o comparație rapidă a modului în care funcționează:

Una dintre caracteristicile pe care personal le găsesc cele mai atrăgătoare este rezumatul pentru dispozitive mobile, pe care îl puteți accesa folosind fila Mobil. Alegeți clusterul care vă interesează și apoi gazda individuală:

rezumat

În acest articol am prezentat Ganglia, o soluție de monitorizare puternică și scalabilă pentru grile și clustere de servere. Simțiți-vă liber să instalați, să explorați și să vă jucați cu Ganglia cât de mult doriți (apropo, puteți chiar să încercați Ganglia într-o demonstrație oferită pe site-ul oficial al proiectului.

În timp ce sunteți la asta, veți descoperi, de asemenea, că mai multe companii binecunoscute atât în lumea IT folosesc sau nu Ganglia. Există o mulțime de motive întemeiate pentru asta, în afară de cele pe care le-am împărtășit în acest articol, cu ușurință de utilizare și grafice împreună cu statistici (este frumos să punem o față numelui, nu-i așa?) probabil fiind în top.

Dar nu ne credeți pe cuvânt, încercați-l singur și nu ezitați să ne scrieți folosind formularul de comentarii de mai jos dacă aveți întrebări.