Postavljanje nadzora u stvarnom vremenu s 'Ganglia' za mreže i klastere Linux poslužitelja


Otkako su administratori sustava zaduženi za upravljanje poslužiteljima i grupama strojeva, alati poput aplikacija za nadzor njihovi su najbolji prijatelji. Vjerojatno su vam poznati alati kao što su Nagios, Zabbix, Icinga i Centreon. Iako su to velika težina nadzora, njihovo postavljanje i potpuno iskorištavanje njihovih značajki može biti donekle teško za nove korisnike.

U ovom ćemo vam članku predstaviti Ganglia, sustav nadzora koji je lako skalabilan i omogućuje pregled široke palete sistemskih metrika Linux poslužitelja i klastera (plus grafikone) u stvarnom vremenu.

Ganglia vam omogućuje postavljanje gridova (lokacija) i klastera (grupa poslužitelja) za bolju organizaciju.

Stoga možete stvoriti mrežu sastavljenu od svih strojeva u udaljenom okruženju, a zatim grupirati te strojeve u manje skupove na temelju drugih kriterija.

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

Naše testno okruženje sastojat će se od središnjeg CentOS 7 poslužitelja (IP adresa 192.168.0.29) gdje ćemo instalirati Ganglia i Ubuntu 14.04stroj (192.168.0.32), okvir koji želimo nadzirati putem Ganglia web sučelja.

U ovom vodiču nazivat ćemo sustav CentOS 7 kao glavni čvor, a Ubuntu okvir kao nadzirani stroj.

Instaliranje i konfiguriranje Ganglija

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

1. Omogućite EPEL repozitorij, a zatim odatle instalirajte Ganglia i srodne uslužne programe:

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

Paketi instalirani u gornjem koraku zajedno s ganglijima, samom aplikacijom, obavljaju sljedeće funkcije:

  1. rrdtool, Round-Robin baza podataka, alat je koji se koristi za pohranu i prikaz varijacija podataka tijekom vremena pomoću grafikona.
  2. ganglia-gmetad je demon koji prikuplja podatke o nadzoru s hostova koje želite nadzirati. U tim hostovima iu glavnom čvoru također je potrebno instalirati ganglia-gmond (sam nadzorni demon):
  3. ganglia-web pruža web sučelje gdje ćemo pregledavati povijesne grafikone i podatke o nadziranim sustavima.

2. Postavite autentifikaciju za Ganglia web sučelje (/usr/share/ganglia). Koristit ćemo osnovnu provjeru autentičnosti koju nudi Apache.

Ako želite istražiti naprednije sigurnosne mehanizme, pogledajte odjeljak Autorizacija i autentifikacija u Apache dokumentima.

Da biste postigli ovaj cilj, stvorite korisničko ime i dodijelite lozinku za pristup resursu zaštićenom Apacheom. U ovom primjeru, stvorit ć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 dopuštenja za čitanje na tim resursima, bit ćete u redu):

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

Unesite lozinku za adminganglia dvaput prije nastavka.

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:

Najprije upotrijebite direktivu imena mreže nakon koje slijedi opisni naziv mreže koju postavljate:

gridname "Home office"

Zatim upotrijebite data_source nakon čega slijedi opisni naziv za klaster (grupu poslužitelja), interval prozivanja u sekundama i IP adresa glavnog i nadziranog čvora:

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 izgleda li blok klastera na sljedeći način:

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 direktivu mcast_join:

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

c) Konačno, komentirajte direktive mcast_join i bind 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
}

Spremite promjene i izađite.

6. Otvorite priključak 8649/udp i dopustite PHP skriptama (pokrenutima putem Apachea) da se povežu na mrežu pomoću potrebne SELinux boolean:

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

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

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

U ovom trenutku trebali biste moći otvoriti Ganglia web sučelje na http://192.168.0.29/ganglia i prijaviti se s vjerodajnicama iz #Step 2.

8. U host Ubuntu instalirat ćemo samo ganglia-monitor, ekvivalent ganglia-gmond u CentOS:

sudo aptitude update && aptitude install ganglia-monitor

9. Uredite datoteku /etc/ganglia/gmond.conf u nadziranom okviru. Ovo bi trebalo biti identično istoj datoteci u glavnom čvoru osim što su komentirani redovi u clusteru, udp_send_channel i udp_recv_channel treba biti omogućeno:

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 ponovno pokrenite uslugu:

sudo service ganglia-monitor restart

10. Osvježite web sučelje i trebali biste moći vidjeti statistiku i grafikone za oba hosta unutar Home Office Grid/Labs klastera ( upotrijebite padajući izbornik pored Rešetke kućnog ureda da biste odabrali klaster, Laboratorij u našem slučaju):

Pomoću kartica izbornika (gore označenih) možete pristupiti mnogim zanimljivim informacijama o svakom poslužitelju pojedinačno ili u grupama. Možete čak usporediti statistiku svih poslužitelja u klasteru jedan pored drugog koristeći karticu Usporedi hostove.

Jednostavno odaberite grupu poslužitelja pomoću regularnog izraza i moći ćete vidjeti brzu usporedbu njihove izvedbe:

Jedna od značajki koju osobno smatram najprivlačnijom je sažetak prilagođen mobilnim uređajima, kojem možete pristupiti pomoću kartice Mobilno. Odaberite klaster koji vas zanima, a zatim pojedinačni host:

Sažetak

U ovom smo članku predstavili Ganglia, moćno i skalabilno rješenje za nadzor za mreže i klastere poslužitelja. Slobodno instalirajte, istražujte i igrajte se s Gangliom koliko god želite (usput, možete čak isprobati Gangliju u demo verziji koja se nalazi na službenoj web stranici projekta.

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

Ali nemojte nam samo vjerovati na riječ, isprobajte ga sami i ne ustručavajte se javiti nam se putem obrasca za komentare u nastavku ako imate bilo kakvih pitanja.