Opsætning af realtidsovervågning med ganglia til net og klynger af Linux-servere


Lige siden systemadministratorer har haft ansvaret for administration af servere og grupper af maskiner, har værktøjer som overvågningsapplikationer været deres bedste venner. Du vil sandsynligvis være fortrolig med værktøjer som Icinga og Centreon. Mens det er tungvægten ved overvågning, kan det være lidt vanskeligt for nye brugere at opsætte dem og udnytte deres funktioner fuldt ud.

I denne artikel introducerer vi dig til Ganglia, et overvågningssystem, der er let skalerbart og giver mulighed for at se en bred vifte af systemmålinger af Linux-servere og klynger (plus grafer) i realtid.

Ganglia giver dig mulighed for at oprette net (placeringer) og klynger (grupper af servere) for bedre organisering.

Således kan du oprette et gitter sammensat af alle maskinerne i et fjerntliggende miljø og derefter gruppere disse maskiner i mindre sæt baseret på andre kriterier.

Derudover er Ganglias webgrænseflade optimeret til mobile enheder og giver dig også mulighed for at eksportere data i formaterne .csv og .json .

Vores testmiljø vil bestå af en central CentOS 7-server (IP-adresse 192.168.0.29), hvor vi vil installere Ganglia og en Ubuntu 14.04-maskine (192.168.0.32), den boks, som vi vil overvåge gennem Ganglias webgrænseflade.

I hele denne guide vil vi henvise til CentOS 7-systemet som masternoden og til Ubuntu-boksen som den overvågede maskine.

Installation og konfiguration af ganglia

Følg disse trin for at installere overvågningsværktøjerne i masternoden:

1. Aktivér EPEL-arkivet, og installer derefter Ganglia og relaterede hjælpeprogrammer derfra:

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

Pakkerne installeret i ovenstående trin sammen med ganglier, selve applikationen, udfører følgende funktioner:

  1. rrdtool , Round-Robin Database, er et værktøj, der bruges til at gemme og vise variationen af data over tid ved hjælp af grafer.
  2. ganglia-gmetad er den dæmon, der indsamler overvågningsdata fra værterne, som du vil overvåge. I disse værter og i masternoden er det også nødvendigt at installere ganglia-gmond (selve overvågningsdæmonen):
  3. ganglia-web giver webfronten, hvor vi får vist de historiske grafer og data om de overvågede systemer.

2. Konfigurer godkendelse til Ganglia-webgrænsefladen (/ usr/share/ganglia). Vi bruger grundlæggende godkendelse som leveret af Apache.

Hvis du vil udforske mere avancerede sikkerhedsmekanismer, skal du se afsnittet om godkendelse og godkendelse i Apache-dokumenterne.

For at nå dette mål skal du oprette et brugernavn og tildele en adgangskode for at få adgang til en ressource, der er beskyttet af Apache. I dette eksempel opretter vi et brugernavn kaldet adminganglia og tildeler en adgangskode efter eget valg, som gemmes i /etc/httpd/auth.basic (du er velkommen til at vælge en anden mappe og/eller fil navn - så længe Apache har læst tilladelser til disse ressourcer, har du det godt):

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

Indtast adgangskoden til adminganglia to gange, før du fortsætter.

3. Rediger /etc/httpd/conf.d/ganglia.conf som følger:

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

Brug først gitternavndirektivet efterfulgt af et beskrivende navn til det gitter, du opretter:

gridname "Home office"

Brug derefter data_source efterfulgt af et beskrivende navn til klyngen (gruppe af servere), et pollinginterval i sekunder og IP-adressen til master og overvågede noder:

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

5. Rediger /etc/ganglia/gmond.conf.

a) Sørg for, at klyngeblokken ser ud som følger:

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

b) I udp_send_chanel-blokken skal du kommentere mcast_join-direktivet:

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

c) Endelig kommenter mcast_join og bind direktiverne i udp_recv_channel-blokken:

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

Gem ændringerne, og afslut.

6. Åbn port 8649/udp, og lad PHP-scripts (køre via Apache) oprette forbindelse til netværket ved hjælp af den nødvendige SELinux-boolske:

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

7. Genstart Apache, gmetad og gmond. Sørg også for, at de er aktiveret til at starte ved opstart:

# systemctl restart httpd gmetad gmond
# systemctl enable httpd gmetad httpd

På dette tidspunkt skal du være i stand til at åbne Ganglia-webgrænsefladen på http://192.168.0.29/ganglia og logge ind med legitimationsoplysningerne fra #Step 2.

8. I Ubuntu-værten installerer vi kun ganglia-monitor, svarende til ganglia-gmond i CentOS:

$ sudo aptitude update && aptitude install ganglia-monitor

9. Rediger /etc/ganglia/gmond.conf filen i det overvågede felt. Dette skal være identisk med den samme fil i masternoden, bortset fra at de kommenterede linjer i klyngen, udp_send_channel og udp_recv_channel skal aktiveres:

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
}

Genstart derefter tjenesten:

$ sudo service ganglia-monitor restart

10. Opdater webgrænsefladen, og du skal være i stand til at se statistikker og grafer for begge værter inde i hjemmekontoret/Labs-klyngen (brug rullemenuen ud for Hjemmekontor-gitteret til at vælge en klynge, Labs i vores tilfælde):

Ved hjælp af menufanen (fremhævet ovenfor) kan du få adgang til masser af interessante oplysninger om hver server individuelt og i grupper. Du kan endda sammenligne statistikken for alle serverne i en klynge side om side ved hjælp af fanen Sammenlign værter.

Du skal blot vælge en gruppe servere ved hjælp af et regulært udtryk, så kan du se en hurtig sammenligning af, hvordan de klarer sig:

En af de funktioner, som jeg personligt finder mest tiltalende, er den mobilvenlige oversigt, som du kan få adgang til ved hjælp af fanen Mobil. Vælg den klynge, du er interesseret i, og derefter den enkelte vært:

Resumé

I denne artikel har vi introduceret Ganglia, en stærk og skalerbar overvågningsløsning til net og klynger af servere. Du er velkommen til at installere, udforske og lege med Ganglia så meget som du vil (forresten, du kan endda prøve Ganglia i en demo, der findes på projektets officielle hjemmeside.

Mens du er ved det, vil du også opdage, at flere kendte virksomheder både i it-verdenen eller ikke bruger Ganglia. Der er mange gode grunde til det udover dem, vi har delt i denne artikel, med brugervenlighed og grafer sammen med statistik (det er rart at sætte et ansigt på navnet, er det ikke?) Sandsynligvis at være øverst.

Men tag ikke bare vores ord for det, prøv det selv og tøv ikke med at sende os en linje ved hjælp af kommentarformularen nedenfor, hvis du har spørgsmål.