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
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.