Überwachung eines Ceph-Clusters mit Ceph-Dash auf CentOS 7
Ceph-dash ist eine WSGI-Anwendung, die auf dem Flask-Framework zur Überwachung von Ceph-Clustern basiert. Es verwendet Librados, um mit dem Cluster Ceph zu kommunizieren. Ceph-dash hat ein schönes Dashboard, es ist einfach zu installieren und hat viele Funktionen, einschließlich InfluxDB und Graphitunterstützung.
In diesem Tutorial zeige ich Ihnen, wie Sie Ceph-dash installieren und so konfigurieren, dass es unter einem Apache-Webserver mit SSL- und mod_auth-Unterstützung läuft. Im ersten Ceph-Tutorial haben wir bereits einen’Ceph-Cluster‘ installiert, in diesem Tutorial werden wir Ceph-Dash auf dem Monitorhost‘mon1‚ dieses Setups konfigurieren.
Voraussetzungen
- Ceph Cluster – Ceph I Tutorial
- Überwachungsknoten CentOS 7 – mon1
- Root-Rechte
Schritt 1 – Installation von Ceph-Dash-Abhängigkeiten
In diesem ersten Schritt werden wir die von ceph-dash benötigten Abhängigkeiten installieren, einschließlich apache Webserver und mod_ssl.
Verbinden Sie sich mit dem Knoten mon1 vom Knoten ceph-admin.
ssh mon1
Installiere alle Abhängigkeiten, die du mit dem Befehl yum benötigst.
sudo yum -y install httpd mod_wsgi mod_ssl git
Starten Sie dann apache/httpd und fügen Sie es hinzu, um es beim Booten zu starten.
sudo systemctl start httpd sudo systemctl enable httpd
Schritt 2 – Ceph-Dash herunterladen
Ceph-dash ist eine Open-Source-Anwendung, die im github-Repository verfügbar ist. Klonen Sie das Repository in das Verzeichnis /var/www/.
cd /var/www/html/ git clone https://github.com/Crapworks/ceph-dash.git
Standardmäßig läuft apache/httpd unter dem Benutzernamen’apache‘, daher müssen wir den Besitzer von ceph-dash-Dateien und -Verzeichnissen auf den Benutzer’apache‘ ändern.
sudo chown -R /var/www/html/ceph-dash/
Schritt 3 – Konfigurieren Sie einen Apache Virtual Host für Ceph-dash.
Ceph-dash stellt ein Beispiel für eine virtuelle Host-Konfiguration für apache und Nginx im Verzeichnis ‚contrib‘ zur Verfügung. Wir werden Apache als Webserver für Ceph-dash verwenden, also müssen wir die Konfigurationsdatei für Apache in das Verzeichnis apache/httpd kopieren.
cd /var/www/html/ceph-dash/ cp contrib/apache/cephdash /etc/httpd/conf.d/cephdash.conf
Gehen Sie in das Konfigurationsverzeichnis des virtuellen Hosts und bearbeiten Sie die Datei cephdash.conf.
cd /etc/httpd/conf.d/ vim cephdash.conf
Ändern Sie den Wert des‘ServerNamens‚ auf Ihren Domainnamen – in meinem Fall ceph-mon.co.
Ändern Sie den Prozess des wsgi-Daemons so, dass er als Apache-Benutzer ausgeführt wird.
Ändern Sie das Verzeichnis cephdash.wsgi in ‚/var/wwww/html/ceph-dash/contrib/wsgi/cephdash.wsgi‘.
Ändern Sie das SSL-Konfigurationsverzeichnis auf ‚/etc/httpd/ssl/‚.
Ändern Sie das ceph-dash-Verzeichnis auf‘/var/wwww/html/ceph-dash‚ und fügen Sie dann die grundlegende Auth-Konfiguration hinzu.
Nachfolgend finden Sie die Konfiguration.
<VirtualHost *:80> ServerName ceph-mon.co RewriteEngine On RewriteCond %{REQUEST_URI} !^/server-status RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L] </VirtualHost> <VirtualHost *:443> ServerName ceph-mon.co WSGIDaemonProcess cephdash user=apache group=apache processes=1 threads=5 WSGIScriptAlias / /var/www/html/ceph-dash/contrib/wsgi/cephdash.wsgi WSGIPassAuthorization On SSLEngine on SSLCertificateFile /etc/httpd/ssl/ssl.crt SSLCertificateKeyFile /etc/httpd/ssl/ssl.key <Directory /var/www/html/ceph-dash> WSGIProcessGroup cephdash WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
Speichern Sie die Datei und verlassen Sie den Editor.
Schritt 4 – SSL und Apache Basic Auth konfigurieren
In der Konfiguration des virtuellen Hosts haben wir die SSL-Konfiguration bereits im Verzeichnis’/etc/httpd/ssl‘ definiert, so dass wir dort das SSL-Zertifikat und den Schlüssel erstellen müssen.
mkdir -p /etc/httpd/ssl/
Erzeugen Sie nun mit dem Befehl OpenSSL eine selbstsignierte SSL-Zertifikatsdatei.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout /etc/httpd/ssl/ssl.key -out \ /etc/httpd/ssl/ssl.crt
Ändern Sie die Berechtigungen der Zertifikatsdatei auf 600.
chmod 600 /etc/httpd/ssl/*
Als nächstes fügen Sie apache basic auth mit dem Befehl htpasswd unten hinzu, um den Ceph-dash-Zugang mit einem Passwort zu schützen.
htpasswd -c /etc/httpd/htpasswd hakase Type your password:
hakase ist der Benutzername, den ich gewählt habe.
Wenn alles erledigt ist, testen Sie die Apache-Konfigurationsdatei mit dem Befehl apachectl und stellen Sie sicher, dass das Ergebnis’Syntax OK‘ ist, und starten Sie dann den Apache neu.
apachectl configtest sudo systemctl restart httpd
Schritt 5 – Hinzufügen von HTTP- und HTTPS-Port zu Firewalldateien
Auf dem Monitorknoten ‚mon1‚ ist die Firewall aktiviert. Wir müssen einen neuen Port für die http- und https-Verbindung öffnen, damit wir über einen Webbrowser auf Ceph-dash zugreifen können.
Fügen Sie den http- und https-Port mit dem Befehl firewall-cmd zu firewall hinzu.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
Laden Sie die Firewall-Konfiguration neu.
sudo firewall-cmd --reload
Schritt 6 – Prüfung
Öffnen Sie Ihren Webbrowser und geben Sie die Domain ceph-mon.co (verwenden Sie den Domainnamen, den Sie für Ihre ceph-dash-Installation gewählt haben) in der Adressleiste ein, drücken Sie die Eingabetaste.
Sie werden nach Benutzername und Passwort gefragt, geben Sie Ihren Benutzernamen und Ihr Passwort ein, das Sie in der htpasswd-Datei verwendet haben.
Jetzt sehen Sie das Ceph-Dash Dashboard.
Cluster-Zustandsstatus, Knotenstatus überwachen, OSD-Knotenstatus.
Lager- und PG-Status.
Ceph-dash wurde unter einem Apache-Webserver auf dem Monitorknoten’mon1′ installiert.