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

Ceph-dash mit .htpasswd Authentifizierung

Jetzt sehen Sie das Ceph-Dash Dashboard.

Cluster-Zustandsstatus, Knotenstatus überwachen, OSD-Knotenstatus.

ceph-dash dashboard zustandsstatus, überwachungsknotenstatus und osdknotenstatus

Lager- und PG-Status.

Speicher- und PG-Status des ceph-Clusters

Ceph-dash wurde unter einem Apache-Webserver auf dem Monitorknoten’mon1′ installiert.

Referenz

Das könnte Dich auch interessieren …