Postavljanje nadzora u realnom vremenu sa 'Ganglia' za mreže i klastere Linux servera


Otkako su sistemski administratori zaduženi za upravljanje serverima i grupama mašina, alati poput aplikacija za praćenje su njihovi najbolji prijatelji. Vjerovatno ćete biti upoznati s alatima kao što su Nagios, Zabbix, Icinga i Centreon. Iako su to teška kategorija praćenja, njihovo postavljanje i potpuno iskorištavanje njihovih funkcija može biti donekle teško za nove korisnike.

U ovom članku ćemo vas upoznati sa Ganglia, sistemom za nadzor koji je lako skalabilan i koji omogućava pregled širokog spektra sistemskih metrika Linux servera i klastera (plus grafikone) u realnom vremenu.

Ganglia vam omogućava da postavite mreže (lokacije) i klasteri (grupe servera) za bolju organizaciju.

Dakle, možete kreirati mrežu sastavljenu od svih mašina u udaljenom okruženju, a zatim grupirati te mašine u manje skupove na osnovu drugih kriterijuma.

Osim toga, Ganglia web sučelje je optimizirano za mobilne uređaje, a također vam omogućava izvoz podataka u formatima .csv i .json.

Naše testno okruženje će se sastojati od centralnog CentOS 7 servera (IP adresa 192.168.0.29) na koji ćemo instalirati Ganglia i Ubuntu 14.04 mašina (192.168.0.32), kutija koju želimo da nadgledamo preko Ganglia veb interfejsa.

U ovom vodiču ćemo se pozivati na CentOS 7 sistem kao na glavni čvor, a na Ubuntu kutiju kao na nadgledanu mašinu.

Instalacija i konfiguracija Ganglija

Da biste instalirali pomoćne programe za nadzor u glavni čvor, slijedite ove korake:

1. Omogućite EPEL spremište i zatim instalirajte Ganglia i srodne uslužne programe odatle:

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

Paketi instalirani u gornjem koraku zajedno sa ganglijama, samom aplikacijom, obavljaju sljedeće funkcije:

  1. rrdtool, Round-Robin baza podataka, je alat koji se koristi za pohranu i prikaz varijacija podataka tokom vremena pomoću grafikona.
  2. ganglia-gmetad je demon koji prikuplja podatke za praćenje sa hostova koje želite pratiti. Na tim hostovima i u master čvor je također potrebno instalirati ganglia-gmond (sam nadzorni demon):
  3. ganglia-web pruža web frontend gdje ćemo vidjeti historijske grafikone i podatke o nadgledanim sistemima.

2. Postavite autentifikaciju za Ganglia web interfejs (/usr/share/ganglia). Koristit ćemo osnovnu autentifikaciju koju nam pruža Apache.

Ako želite da istražite naprednije sigurnosne mehanizme, pogledajte odeljak Autorizacija i autentifikacija Apache dokumenata.

Da biste postigli ovaj cilj, kreirajte korisničko ime i dodijelite lozinku za pristup resursu zaštićenom Apacheom. U ovom primjeru, kreirat ćemo korisničko ime pod nazivom adminganglia i dodijeliti lozinku po našem izboru, koja će biti pohranjena u /etc/httpd/auth.basic (slobodno odaberite drugi direktorij i/ili naziv datoteke – sve dok Apache ima dozvole za čitanje na tim resursima, bit ćete u redu):

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

Unesite lozinku za adminganglia dvaput prije nego što nastavite.

3. Izmijenite /etc/httpd/conf.d/ganglia.conf na sljedeći način:

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. Uredite /etc/ganglia/gmetad.conf:

Prvo upotrijebite direktivu gridname koju slijedi opisno ime za mrežu koju postavljate:

gridname "Home office"

Zatim koristite data_source praćeno opisnim imenom za klaster (grupu servera), intervalom prozivanja u sekundama i IP adresom glavnog i nadgledanih čvorova:

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

5. Uredite /etc/ganglia/gmond.conf.

a) Provjerite da li blok klastera izgleda kako slijedi:

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

b) U bloku udp_send_chanel, komentirajte mcast_join direktivu:

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

c) Konačno, komentirajte mcast_join i bind direktive u bloku udp_recv_channel:

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

Sačuvajte promjene i izađite.

6. Otvorite port 8649/udp i dozvolite PHP skriptama (pokrenutim putem Apachea) da se povežu na mrežu koristeći potrebnu SELinux booleovu vrijednost:

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

7. Ponovo pokrenite Apache, gmetad i gmond. Također, provjerite jesu li omogućeni za pokretanje pri pokretanju:

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

U ovom trenutku, trebali biste biti u mogućnosti da otvorite Ganglia web sučelje na http://192.168.0.29/ganglia i prijavite se s vjerodajnicama iz #Korak 2.

8. U Ubuntu hostu, instalirat ćemo samo ganglia-monitor, što je ekvivalent ganglia-gmond u CentOS-u:

sudo aptitude update && aptitude install ganglia-monitor

9. Uredite datoteku /etc/ganglia/gmond.conf u okviru za praćenje. Ovo bi trebalo biti identično istoj datoteci u master čvoru osim što su komentirane linije u klasteru, udp_send_channel i udp_recv_channel treba omogućiti:

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
}

Zatim ponovo pokrenite servis:

sudo service ganglia-monitor restart

10. Osvježite web sučelje i trebali biste moći vidjeti statistiku i grafikone za oba hosta unutar mreže kućne kancelarije/klastera laboratorija ( koristite padajući meni pored Mreža kućne kancelarije da odaberete klaster, Laboratorije u našem slučaju):

Koristeći kartice menija (naglašene iznad) možete pristupiti mnoštvu zanimljivih informacija o svakom serveru pojedinačno iu grupama. Možete čak i porediti statistiku svih servera u klasteru jedan pored drugog koristeći karticu Compare Hosts.

Jednostavno odaberite grupu servera koristeći regularni izraz i moći ćete vidjeti brzo poređenje njihovog učinka:

Jedna od karakteristika koje ja lično smatram najprivlačnijim je sažetak prilagođen mobilnim uređajima, kojem možete pristupiti pomoću kartice Mobilni. Odaberite klaster koji vas zanima, a zatim pojedinačnog domaćina:

Sažetak

U ovom članku predstavili smo Ganglia, moćno i skalabilno rješenje za praćenje mreža i klastera servera. Slobodno instalirajte, istražujte i igrajte se s Gangliom koliko god želite (usput, možete čak isprobati Ganglia u demo verziji na službenoj web stranici projekta.

Dok ste već kod toga, također ćete otkriti da nekoliko poznatih kompanija u IT svijetu ili ne koriste Ganglia. Postoji mnogo dobrih razloga za to osim onih koje smo podijelili u ovom članku, jer su jednostavnost korištenja i grafikoni zajedno sa statistikom (lijepo je staviti lice na ime, zar ne?) koji su vjerojatno na vrhu.

Ali nemojte nam samo vjerovati na riječ, isprobajte i sami i ne ustručavajte se da nam se javite putem obrasca za komentare ispod ako imate bilo kakvih pitanja.