Zoeken op website

Realtime monitoring opzetten met 'Ganglia' voor grids en clusters van Linux-servers


Sinds systeembeheerders verantwoordelijk zijn voor het beheer van servers en groepen machines, zijn tools zoals monitoringapplicaties hun beste vrienden. U bent waarschijnlijk bekend met tools als Nagios, Zabbix, Icinga en Centreon. Hoewel dit de zwaargewichten van monitoring zijn, kan het instellen ervan en het volledig benutten van hun functies enigszins moeilijk zijn voor nieuwe gebruikers.

In dit artikel laten we u kennismaken met Ganglia, een monitoringsysteem dat eenvoudig schaalbaar is en waarmee u in realtime een grote verscheidenheid aan systeemstatistieken van Linux-servers en -clusters (plus grafieken) kunt bekijken.

Met Ganglia kunt u rasters (locaties) en clusters (groepen servers) instellen voor een betere organisatie.

U kunt dus een raster maken dat is samengesteld uit alle machines in een externe omgeving, en deze machines vervolgens groeperen in kleinere sets op basis van andere criteria.

Bovendien is de webinterface van Ganglia geoptimaliseerd voor mobiele apparaten, en kunt u ook gegevens exporteren in de formaten .csv en .json.

Onze testomgeving zal bestaan uit een centrale CentOS 7 server (IP-adres 192.168.0.29) waarop we Ganglia zullen installeren, en een Ubuntu 14.04 machine (192.168.0.32), de box die we willen monitoren via de webinterface van Ganglia.

In deze handleiding verwijzen we naar het CentOS 7-systeem als het masterknooppunt, en naar de Ubuntu-box als de bewaakte machine.

Ganglia installeren en configureren

Om de monitoringhulpprogramma's in het masternode te installeren, volgt u deze stappen:

1. Schakel de EPEL-repository in en installeer vervolgens Ganglia en gerelateerde hulpprogramma's vanaf daar:

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

De pakketten die in de stap hierboven zijn geïnstalleerd, voeren samen met ganglia, de applicatie zelf, de volgende functies uit:

  1. rrdtool, de Round-Robin Database, is een tool die wordt gebruikt om de variatie van gegevens in de loop van de tijd op te slaan en weer te geven met behulp van grafieken.
  2. ganglia-gmetad is de daemon die monitoringgegevens verzamelt van de hosts die je wilt monitoren. In die hosts en in de masternode is het ook nodig om ganglia-gmond (de monitoring-daemon zelf) te installeren:
  3. ganglia-web levert de webfrontend waar we de historische grafieken en gegevens over de bewaakte systemen kunnen bekijken.

2. Stel authenticatie in voor de Ganglia webinterface (/usr/share/ganglia). We zullen basisauthenticatie gebruiken zoals geleverd door Apache.

Als u meer geavanceerde beveiligingsmechanismen wilt verkennen, raadpleeg dan de sectie Autorisatie en Authenticatie van de Apache-documentatie.

Om dit doel te bereiken, maakt u een gebruikersnaam aan en wijst u een wachtwoord toe om toegang te krijgen tot een bron die wordt beschermd door Apache. In dit voorbeeld zullen we een gebruikersnaam aanmaken met de naam adminginganglia en een wachtwoord naar keuze toewijzen, dat zal worden opgeslagen in /etc/httpd/auth.basic (voel je vrij om kies een andere map en/of bestandsnaam – zolang Apache leesrechten heeft voor die bronnen, komt alles goed):

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

Voer het wachtwoord voor adminganglia tweemaal in voordat u doorgaat.

3. Wijzig /etc/httpd/conf.d/ganglia.conf als volgt:

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

Gebruik eerst de gridname-instructie gevolgd door een beschrijvende naam voor het raster dat u aan het instellen bent:

gridname "Home office"

Gebruik vervolgens data_source gevolgd door een beschrijvende naam voor het cluster (groep servers), een polling-interval in seconden en het IP-adres van de master- en bewaakte knooppunten:

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

5. Bewerk /etc/ganglia/gmond.conf.

a) Zorg ervoor dat het clusterblok er als volgt uitziet:

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

b) Geef in het udp_send_chanel blok commentaar op de mcast_join richtlijn:

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

c) Geef ten slotte commentaar op de mcast_join en bind richtlijnen in het udp_recv_channel blok:

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

Sla de wijzigingen op en sluit af.

6. Open poort 8649/udp en laat PHP-scripts (uitgevoerd via Apache) verbinding maken met het netwerk met behulp van de benodigde SELinux-boolean:

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

7. Start Apache, gmetad en gmond opnieuw. Zorg er ook voor dat ze zijn ingeschakeld om te starten tijdens het opstarten:

systemctl restart httpd gmetad gmond
systemctl enable httpd gmetad httpd

Op dit punt zou u de Ganglia-webinterface moeten kunnen openen op http://192.168.0.29/ganglia en inloggen met de inloggegevens uit #Step 2.

8. In de Ubuntu host installeren we alleen ganglia-monitor, het equivalent van ganglia-gmond in CentOS:

sudo aptitude update && aptitude install ganglia-monitor

9. Bewerk het bestand /etc/ganglia/gmond.conf in het bewaakte vak. Dit moet identiek zijn aan hetzelfde bestand in het masterknooppunt, behalve dat de uitgecommentarieerde regels in het cluster, udp_send_channel en udp_recv_channel moet zijn ingeschakeld:

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 vervolgens de service opnieuw:

sudo service ganglia-monitor restart

10. Vernieuw de webinterface en u zou de statistieken en grafieken voor beide hosts moeten kunnen bekijken in het Thuiskantoorraster/Labs-cluster ( gebruik het vervolgkeuzemenu naast Thuiskantoorraster om een cluster te kiezen, Labs in ons geval):

Met behulp van de menutabbladen (hierboven gemarkeerd) heeft u toegang tot veel interessante informatie over elke server afzonderlijk en in groepen. U kunt zelfs de statistieken van alle servers in een cluster naast elkaar vergelijken via het tabblad Hosts vergelijken.

Kies eenvoudig een groep servers met behulp van een reguliere expressie en u zult een snelle vergelijking kunnen zien van hoe ze presteren:

Een van de functies die ik persoonlijk het aantrekkelijkst vind, is de mobielvriendelijke samenvatting, die je kunt openen via het tabblad Mobiel. Kies het cluster waarin u geïnteresseerd bent en vervolgens de individuele host:

Samenvatting

In dit artikel hebben we Ganglia geïntroduceerd, een krachtige en schaalbare monitoringoplossing voor grids en clusters van servers. Voel je vrij om Ganglia te installeren, verkennen en ermee te spelen zoveel je wilt (je kunt Ganglia trouwens zelfs uitproberen in een demo op de officiële website van het project.

Terwijl je toch bezig bent, zul je ook ontdekken dat verschillende bekende bedrijven, zowel in de IT-wereld als niet, Ganglia gebruiken. Daar zijn genoeg goede redenen voor, naast de redenen die we in dit artikel hebben gedeeld, waarbij gebruiksgemak, grafieken en statistieken (het is leuk om een gezicht bij de naam te plakken, nietwaar?) waarschijnlijk bovenaan staan.

Maar geloof ons niet alleen op ons woord, probeer het zelf uit en aarzel niet om ons een bericht te sturen via het onderstaande opmerkingenformulier als u vragen heeft.