Dmitry Nikolaev - stock.adobe.co

HPC-Cluster mit der Open-Source-Lösung Ganglia verwalten

Die Open-Source-Lösung Ganglia ist in der Lage, größere Cluster effektiv zu verwalten und unter anderem mit Azure und AWS kompatibel. Wir zeigen, wie der Einstieg gelingt.

Ganglia ist ein Überwachungssystem, das für Cluster entwickelt wurde. Im Fokus steht die Überwachung von HPC-Cluster (High Performance Computing) in lokalen Netzwerken und der Cloud.

Die Lösung kann also im Rechenzentrum On-Premises installiert oder als Dienst in der Cloud genutzt werden. Auch in Microsoft Azure und AWS (Amazon Web Services) können Administratoren Ganglia verwenden, um virtuelle Server zu überwachen.

HPC-Cluster mit integriertem RRD-Tool

Ganglia ist zusätzlich ein RRD-Tool (Round-Robin-Database), das Daten speichern, aufbereiten und visualisieren kann. Im Rahmen der Überwachung werden Daten automatisch überschrieben, wenn der zugewiesene Speicherplatz ausgeht. Es wurde vor allem für HPC-Cluster und Grids in großen Netzwerken entwickelt. Aus diesem Grund ist Ganglia durch seine Hierarchie geeignet, sehr große Cluster zu überwachen.

XML dient der Darstellung der Daten und der Datentransport funktioniert über XDR. Das Speichern und Visualisieren dieser Daten übernimmt das bereits erwähnte RRD-Tool. Ganglia wird über ein Web-Frontend verwaltet. Mit diesem können Administratoren zentral alle Einstellungen einsehen und sich visualisierte Daten anzeigen lassen. Die Weboberfläche basiert auf PHP. Das Web-Frontend zeigt die Daten auf Wunsch in Echtzeit an.

Ganglia Monitoring Daemon und Ganglia Meta Daemon

Beim Einsatz von Ganglia spielen Ganglia Monitoring Daemon (gmond) und Ganglia Meta Daemon (gmetad) eine wichtige Rolle. Gmond läuft auf allen Knoten, die Ganglia überwachen soll. Der Daemon gibt den Knotenzustand als XML aus. Der Daemon gmetad sorgt für die Verbindungen zwischen den Knoten im Ganglia-System. Er ist für die Datenquellen verantwortlich, analysiert die Daten und exportiert diese.

Installation von Ganglia vorbereiten – Apache, PHP und MariaDB

Bei der Installation und Einrichtung von Ganglia beginnen Sie mit dem ersten Knoten im Ganglia-Cluster. Hier können Sie zum Beispiel Ubuntu verwenden. Im ersten Schritt müssen Sie die Quelle aktualisieren und Apache sowie PHP installieren sowie für den Autostart konfigurieren. Das erreicht man im Terminal mit folgenden Befehlen:

sudo apt-get update -y

sudo apt install apache2

sudo systemctl stop apache2.service

sudo systemctl start apache2.service

sudo systemctl enable apache2.service

Natürlich ist es auch möglich, die Installation aller Komponenten für die Vorbereitung auf Ganglia auch auf einmal vorzunehmen.

Sudo apt-get install apache2 mariadb-server php7.2 libapache2-mod-php7.2 php7.2-mbstring php7.2-curl php7.2-zip php7.2-gd php7.2-mysql php7.2-curl php7.2-mcrypt unzip wget -y

In diesem Fall müssen Sie MariaDB konfigurieren und starten:

systemctl start mariadb

systemctl enable mariadb

Vorbereitungen für das Web-Frontend von Ganglia

Wichtig ist in diesem Zusammenhang die Installation für den Betrieb des Web-Frontend. Dazu nutzt man folgende Befehle:

sudo apt-get install software-properties-common

sudo add-apt-repository ppa:ondrej/php

sudo apt update

sudo apt install php7.2 libapache2-mod-php7.2 php7.2-common php7.2-gmp php7.2-curl php7.2-intl php7.2-mbstring php7.2-xmlrpc php7.2-mysql php7.2-gd php7.2-xml php7.2-cli php7.2-zip

Vor der Installation von Ganglia sollte man noch die Konfigurationsdatei von PHP für Apache 2 bearbeiten. Dazu verwenden Sie zum Beispiel Nano:

sudo nano /etc/php/7.2/apache2/php.ini

In der Datei passen Sie verschiedene Einstellungen so an, dass diese optimal mit Ganglia zusammen funktionieren.

allow_url_fopen = On

short_open_tag = On

memory_limit = 512M

upload_max_filesize = 200M

max_execution_time = 600

max_input_vars = 2500

date.timezone = Germany/Berlin

Nach den Änderungen starten Sie Apache auf dem Server neu:

sudo systemctl restart apache2.service

Ganglia installieren und konfigurieren

Die Installation von Ganglia ist ebenfalls vom Terminal aus möglich. Die Befehle dazu sind:

sudo apt update

sudo apt install ganglia-monitor rrdtool gmetad ganglia-webfrontend

Auch hier können Sie den automatischen Start gleich konfigurieren:

sudo systemctl stop ganglia-monitor.service

sudo systemctl start ganglia-monitor.service

sudo systemctl enable ganglia-monitor.service

Den aktuellen Status des Dienstes können Sie sich im Terminal mit dem folgenden Befehl anzeigen lassen:

systemctl status ganglia-monitor.service

Abbildung 1: Das Ganglia-Dashboard bevor Hosts angemeldet wurden
Abbildung 1: Das Ganglia-Dashboard bevor Hosts angemeldet wurden

Ebenso überprüft man Gmetad:

systemctl status gmetad

Anpassen der Konfigurationsdateien von Gmetad

Nach der Installation sollten Sie die Konfigurationsdatei des Gmetad anpassen. Hier kann man Nano verwenden:

sudo nano /etc/ganglia/gmetad.conf

Zunächst legen Sie die Datenquelle und den Port für den Zugriff fest:

data_source "my cluster" 50 192.168.178.121:8649

Nun sollte man in der Konfigurationsdatei alle Stellen anpassen, wo die IP-Adresse des Cluster notwendig ist und die Beispieladressen auf die richtige Adresse abändern. Das gilt ebenfalls für die Konfigurationsdatei von gmond.

sudo nano /etc/ganglia/gmond.conf

Passen Sie die Zeilen anpassen, in denen die IP-Adresse für mcast_join definiert wird:

mcast_join = 192.168.178.121

bind = 192.168.178.121

Danach kopieren Sie die Konfigurationsdatei von Ganglia in das Systemverzeichnis von Apache:

sudo cp /etc/ganglia-webfrontend/apache.conf /etc/apache2/sites-enabled/ganglia.conf

Nach dem Neustart der Dienste oder des ganzen Servers sollte Ganglia über die URL des Cluster erreichbar sein. In diesem Beispiel ist das:

http://192.168.178.121/ganglia

Clients an Ganglia anbinden

Auf den Cluster-Knoten installieren Sie zunächst der Ganglia-Client, um diesen an Ganglia anzubinden. Die Installation nimmt man zum Beispiel in Ubuntu oder Debian, mit folgendem Befehl vor:

sudo apt install ganglia-monitor

Auch hier bearbeiten Sie die Datei gmond.conf. Tragen Sie bei udp_send_channel die IP-Adresse des Ganglia-Servers ein. Der Dienst startet mit:

systemctl start ganglia-monitor

Überwachung von Servern mit Ganglia

Sobald Server an Ganglia angebunden sind, lassen sich deren Daten und der Ressourcenverbrauch im Dashboard anzeigen. Dazu wählt man bei Main im Menü Grid den Server aus. Wichtig ist hier noch die Registerkarte Main. Hier können Sie die Daten auf Basis der letzten Stunden, Tage, Wochen, Monate und Jahre anzeigen. Das Sortieren der Daten und das Eingeben von bestimmten Zeiträumen ist ebenso möglich.

Erfahren Sie mehr über Server- und Desktop-Virtualisierung