Monitorizarea mai multor calculatoare cu Ganglia pe Debian Squeeze

Ganglia este un sistem de monitorizare dezvoltat de UC Berkely special pentru grupuri (clusters) și grilaje (grids) de mașini de calcul. Acesta poate fi folosit ușor pentru monitorizarea încărcării calculatoarelor.

Spre deosebire de Nagios, principalul sistem de monitorizare concurent care rulează implicit pe o singură mașină-gazdă, Ganglia împarte rolurile între mașinile componente. Ori nodul principal, ori serverul HTTP poate rula demonul gmetad care are acces la metadate, în timp ce nodurile simple rulează demonul de monitorizare gmond. Dacă serverul HTTP rulează pe nodul principal, atunci este foarte simplu. Altfel, este bine să instalezi gmetad pe serverul HTTP, în loc de nodul principal.

În continuare prezentăm un ghid de instalare și configurare pentru Ganglia pe Debian 6.0 „Squeeze”.

Instalarea sistemului Ganglia

Ganglia folosește RRDTool pentru stocarea datelor pentru grafice și nu va funcționa fără acest program. Din fericire, RRDTool este împachetat în Debian Squeeze și nu este necesară compilarea surselor. Rulează doar:

   $ sudo apt-get install rrdtool librrds-perl librrd2-dev

Pentru a putea vedea diagramele radiale în PHP, mai ai nevoie și de suportul pentru biblioteca GD în PHP5:

   $ sudo apt-get install php5-gd

Și Ganglia se găsește în depozitele Debian 6.0 și poate fi instalată ușor. Pe nodul principal, unde rulează serverul HTTP, instalează pachetele:

   $ sudo apt-get install ganglia-monitor gmetad ganglia-webfrontend

Dar pe nodurile simple (și pe cel principal, dacă nu rulează acolo serverul HTTP) este suficient să instalezi doar agentul de monitorizare:

   $ sudo apt-get install ganglia-monitor

Acum creează în /var/www o legătură simbolică la directorul unde a fost instalată interfața pentru Ganglia:

   $ cd /var/www
   $ sudo ln -s /usr/share/ganglia-webfrontend ganglia

În continuare, deschide pagina http://$(hostname)/ganglia cu un navigator:

  $ links http://$(hostname)/ganglia

Și vei observa că se încarcă o pagină Ganglia cu un raport gol, pentru că sistemul nu este încă configurat. Bineînțeles, poți și este recomandat să creezi o gazdă virtuală pentru noul tău sit Ganglia, dar nu vom acoperi aici acest aspect.

Configurarea pe nodul principal

Fișierul de configurare pentru demonul meta de pe nodul principal a fost instalat din pachetul Debian în /etc/ganglia/gmetad.conf. Parcurgând fișierul cu un editor text, vei observa că sunt valori pe care le poți schimba. Unele sunt necesare pentru a funcționa, în timp ce altele sunt opționale.

/etc/ganglia/gmetad.conf

Aceste sunt setări importante și implicit comentate, deci ignorate, iar tu trebuie să le decomentezi și să le modifici în consecință.

  • authorityLa autoritate ar trebui să pui adresa URL a interfeței Ganglia, de forma http://sub.domeniu.org/ganglia, iar în cazul de față http://localhost/ganglia. Dacă ești în spatele unui paravan și adresa apare ca fiind a paravanului, este în regulă să o folosești pe aceea.
  • trusted_hostsDacă serverul HTTP poartă mai multe nume de domenii, e bine să le listezi pe toate aici. Altfel, poți să lași un spațiu gol.

Modificări opționale

  • gridnameDacă nu vrei să ai un nume generic, MyGrid, pentru rețeaua monitorizată, poți să o schimbi în ce-ți place.
  • rrd_rootdirGanglia are nevoie de mult spațiu pentru a salva datele în baza de date. Dacă vrei să fie salvate în alt loc decât /var/lib/ganglia, schimbă această valoare.

Repornirea demonului

Pentru a fi încărcate noile setări, repornește demonul meta:

   $ sudo /etc/init.d/gmetad restart

Configurarea clienților

Fișierele de configurare ale agenților de monitorizare ar trebui să se regăsească în /etc/ganglia/gmond.confde pe fiecare mașină de pe care vrei să culegi datele de încărcare. Ele trebuie modificate în funcție de fiecare nod client. Dacă vrei să monitorizezi și nodul principal, atunci aceleași setări trebuie modificate și acolo.

/etc/ganglia/gmond.conf

Următoarele valori trebuie modificate:

  • nameNumele grupului sau rețelei din care face parte nodul. Acesta va apărea în pagina HTTP.
  • ownerDacă vrei să împarți grupul sau rețeaua în domenii de administrare, aici vor fi puși administratorii responsabili pentru fiecare nod. Dacă nu este un grup sau o rețea mare, este suficient un singur administrator pentru toate nodurile.
  • mcast_ifDacă nodul are mai multe interfețe, va trebui specificată cea pe care o poate folosi ca să se conecteze cu nodul principal.
  • num_nodesNumărul de noduri din grup sau rețea.

Bineînțeles, aceste valori pot fi modificate pe fiecare nod în parte sau poate fi rulat un script care generează și copiază câte un fișier de configurare pentru fiecare nod, în funcție de parametrii nodului.

Repornirea demonilor

După ce ai făcut modificările în fișierele de configurare gmond.conf, trebui să repornești demonul ganglia-monitorpe fiecare nod afectat și gmetadde pe nodul cu serverul HTTP.

  $ sudo /etc/init.d/ganglia-monitor restart
  $ sudo /etc/init.d/gmetad restart

Acum, este recomandabil să aștepți 10 minute pentru ca modificările să devină vizibile. Felicitări, acum îți poți monitoriza propria fermă de calculatoare! :-)

Notă: Acest ghid a fost tradus de pe DebianClusters și adaptat să reflecte actualizările din Debian 6.0. Prima versiune a fost publicată de autor pe wiki.linux.md.

Comentarii

Ganglia este folosit cu succes pentru monitorizarea unui cluster Hadoop/HBase. Poți scoate niște metrici foarte frumoase cu ajutorul lui.