Sette opp sanntidsovervåking med 'Ganglia' for rutenett og klynger av Linux-servere


Helt siden systemadministratorer har hatt ansvaret for å administrere servere og grupper av maskiner, har verktøy som overvåking av applikasjoner vært deres beste venner. Du vil sannsynligvis være kjent med verktøy som Nagios, Zabbix, Icinga og Centreon. Selv om disse er overvåkingens tungvektere, kan det være vanskelig for nye brukere å sette dem opp og fullt ut dra nytte av funksjonene deres.

I denne artikkelen vil vi introdusere deg til Ganglia, et overvåkingssystem som er enkelt skalerbart og lar deg se et bredt utvalg av systemberegninger for Linux-servere og -klynger (pluss grafer) i sanntid.

Ganglia lar deg sette opp rutenett (plasseringer) og klynger (grupper av servere) for bedre organisering.

Dermed kan du lage et rutenett som består av alle maskinene i et eksternt miljø, og deretter gruppere disse maskinene i mindre sett basert på andre kriterier.

I tillegg er Ganglias nettgrensesnitt optimalisert for mobile enheter, og lar deg også eksportere data i formatene .csv og .json.

Testmiljøet vårt vil bestå av en sentral CentOS 7-server (IP-adresse 192.168.0.29) hvor vi skal installere Ganglia, og en Ubuntu 14.04maskin (192.168.0.32), boksen som vi ønsker å overvåke gjennom Ganglias nettgrensesnitt.

Gjennom denne veiledningen vil vi referere til CentOS 7-systemet som hovednoden, og til Ubuntu-boksen som den overvåkede maskinen.

Installere og konfigurere Ganglia

Følg disse trinnene for å installere overvåkingsverktøyene i hovednoden:

1. Aktiver EPEL-depotet og installer Ganglia og relaterte verktøy derfra:

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

Pakkene installert i trinnet ovenfor sammen med ganglia, selve applikasjonen, utfører følgende funksjoner:

  1. rrdtool, Round-Robin-databasen, er et verktøy som brukes til å lagre og vise variasjonen av data over tid ved hjelp av grafer.
  2. ganglia-gmetad er demonen som samler overvåkingsdata fra vertene som du vil overvåke. I disse vertene og i masternoden er det også nødvendig å installere ganglia-gmond (selve overvåkingsdemonen):
  3. ganglia-web gir nettgrensesnittet der vi vil se de historiske grafene og dataene om de overvåkede systemene.

2. Konfigurer autentisering for Ganglia-nettgrensesnittet (/usr/share/ganglia). Vi vil bruke grunnleggende autentisering som levert av Apache.

Hvis du vil utforske mer avanserte sikkerhetsmekanismer, kan du se delen Autorisasjon og autentisering i Apache-dokumentene.

For å oppnå dette målet, opprette et brukernavn og tilordne et passord for å få tilgang til en ressurs beskyttet av Apache. I dette eksemplet vil vi opprette et brukernavn som heter adminganglia og tilordne et passord etter eget valg, som vil bli lagret i /etc/httpd/auth.basic (du kan gjerne velg en annen katalog og/eller filnavn – så lenge Apache har leserettigheter på disse ressursene, går det bra):

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

Skriv inn passordet for adminganglia to ganger før du fortsetter.

3. Endre /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:

Først bruker du gridname-direktivet etterfulgt av et beskrivende navn for rutenettet du setter opp:

gridname "Home office"

Deretter bruker du data_source etterfulgt av et beskrivende navn for klyngen (gruppe av servere), et pollingintervall i sekunder og IP-adressen til master- og overvåkede 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 ut som følger:

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

b) Kommenter mcast_join-direktivet i udp_send_chanel-blokken:

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

c) Kommenter til slutt mcast_join og bind-direktivene 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
}

Lagre endringene og avslutt.

6. Åpne port 8649/udp og la PHP-skript (kjøres via Apache) koble til nettverket ved å bruke den nødvendige SELinux-boolen:

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

7. Start Apache, gmetad og gmond på nytt. Sørg også for at de er aktivert for å starte ved oppstart:

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

På dette tidspunktet bør du kunne åpne Ganglias nettgrensesnitt på http://192.168.0.29/ganglia og logge på med legitimasjonen fra #Trinn 2.

8. I Ubuntu-verten vil vi bare installere ganglia-monitor, tilsvarende ganglia-gmond i CentOS:

sudo aptitude update && aptitude install ganglia-monitor

9. Rediger /etc/ganglia/gmond.conf-filen i den overvåkede boksen. Dette skal være identisk med den samme filen i hovednoden bortsett fra at de kommenterte linjene i klyngen, udp_send_channel og udp_recv_channel bør være aktivert:

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
}

Start deretter tjenesten på nytt:

sudo service ganglia-monitor restart

10. Oppdater nettgrensesnittet, så skal du kunne se statistikken og grafene for begge vertene i hjemmekontornettet/lab-klyngen ( bruk rullegardinmenyen ved siden av Hjemmekontornettet for å velge en klynge, Labs i vårt tilfelle):

Ved å bruke menyfanene (uthevet ovenfor) kan du få tilgang til mye interessant informasjon om hver server individuelt og i grupper. Du kan til og med sammenligne statistikken til alle serverne i en klynge side ved side ved å bruke kategorien Sammenlign verter.

Bare velg en gruppe servere ved å bruke et regulært uttrykk, og du vil kunne se en rask sammenligning av hvordan de presterer:

En av funksjonene jeg personlig synes er mest tiltalende er det mobilvennlige sammendraget, som du får tilgang til ved å bruke Mobil-fanen. Velg klyngen du er interessert i og deretter den individuelle verten:

Sammendrag

I denne artikkelen har vi introdusert Ganglia, en kraftig og skalerbar overvåkingsløsning for rutenett og klynger av servere. Installer, utforske og lek med Ganglia så mye du vil (forresten, du kan til og med prøve ut Ganglia i en demo på prosjektets offisielle nettsted.

Mens du er i gang, vil du også oppdage at flere kjente selskaper både i IT-verdenen eller ikke bruker Ganglia. Det er mange gode grunner for det i tillegg til de vi har delt i denne artikkelen, med brukervennlighet og grafer sammen med statistikk (det er fint å sette et ansikt til navnet, er det ikke?) som sannsynligvis er på toppen.

Men ikke bare ta vårt ord for det, prøv det selv og ikke nøl med å sende oss en linje ved å bruke kommentarskjemaet nedenfor hvis du har spørsmål.