Ceph-Dash ist eine WSGI-Anwendung, die auf dem Flask-Framework zur Überwachung von Ceph-Clustern basiert. Es verwendet Librados, um mit dem Ceph-Cluster zu kommunizieren. Ceph-Dash hat ein nettes Dashboard, es ist einfach zu installieren und hat viele Funktionen, einschließlich InfluxDB- und Graphite-Unterstü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 ausgeführt wird. Im ersten Ceph-Tutorial haben wir bereits einen 'Ceph-Cluster' installiert, in diesem Tutorial konfigurieren wir ceph-dash auf dem Monitor-Host 'mon1 ' dieses Setups.
Voraussetzungen
- Ceph Cluster – Ceph I-Anleitung
- Überwachungsknoten CentOS 7 - mon1
- Root-Rechte
Schritt 1 – Ceph-dash-Abhängigkeiten installieren
In diesem ersten Schritt installieren wir die von ceph-dash benötigten Abhängigkeiten, einschließlich Apache-Webserver und mod_ssl.
Stellen Sie vom ceph-admin-Knoten aus eine Verbindung zum mon1-Knoten her.
ssh mon1
Installieren Sie alle benötigten Abhängigkeiten mit dem Befehl yum.
sudo yum -y install httpd mod_wsgi mod_ssl git
Starten Sie dann Apache/httpd und fügen Sie es hinzu, damit es beim Booten gestartet wird.
sudo systemctl start httpd
sudo systemctl enable httpd
Schritt 2 – Laden Sie Ceph-dash herunter
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“, also müssen wir den Eigentümer von ceph-dash-Dateien und -Verzeichnissen auf den Benutzer „Apache“ ändern.
sudo chown -R /var/www/html/ceph-dash/
Schritt 3 – Konfigurieren Sie einen virtuellen Apache-Host für Ceph-dash
Ceph-Dash bietet ein Beispiel einer virtuellen Hostkonfiguration für Apache und Nginx im Verzeichnis „contrib“. 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
Wechseln 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 von 'ServerName ' zu Ihrem Domainnamen - in meinem Fall ceph-mon.co
Ändern Sie den wsgi-Daemon-Prozess so, dass er als Apache ausgeführt wird Benutzer.
Ändern Sie das Verzeichnis „cephdash.wsgi“ in „/var/www/html/ceph-dash/contrib/wsgi/cephdash.wsgi“ .
Ändern Sie das SSL-Konfigurationsverzeichnis in „/etc/httpd/ssl/ '.
Ändern Sie das ceph-dash-Verzeichnis in „/var/www/html/ceph-dash ', und fügen Sie dann die Basisauthentifizierung hinzu Konfiguration.
Unten ist 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 beenden Sie den Editor.
Schritt 4 – SSL und Apache Basic Auth konfigurieren
In der Konfiguration des virtuellen Hosts haben wir bereits die SSL-Konfiguration im Verzeichnis „/etc/httpd/ssl“ definiert, also müssen wir dort das SSL-Zertifikat und den Schlüssel erstellen.
mkdir -p /etc/httpd/ssl/
Generieren Sie nun mit dem OpenSSL-Befehl 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 htpasswd-Befehl unten hinzu, um den Ceph-Dash-Zugriff mit einem Passwort zu schützen.
htpasswd -c /etc/httpd/htpasswd hakase
Type your password:
Hakase ist der von mir gewählte Benutzername.
Wenn alles erledigt ist, testen Sie die Apache-Konfigurationsdatei mit dem apachectl-Befehl und vergewissern Sie sich, dass das Ergebnis "Syntax OK" ist ', dann Apache neu starten.
apachectl configtest
sudo systemctl restart httpd
Schritt 5 – HTTP- und HTTPS-Port zu Firewalld hinzufügen
Auf dem Monitorknoten „mon1 ', Firewalld ist 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 firewalld 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 – Testen
Öffnen Sie Ihren Webbrowser und geben Sie die ceph-mon.co-Domain (verwenden Sie den Domainnamen, den Sie für Ihre ceph-dash-Installation ausgewählt haben) in die Adressleiste ein und drücken Sie die Eingabetaste.
Sie werden nach Benutzername und Passwort gefragt, geben Sie Ihren Benutzernamen und Ihr Passwort ein, die Sie in der htpasswd-Datei verwendet haben.
Jetzt können Sie das Ceph-Dash-Dashboard sehen.
Zustandsstatus des Clusters, Knotenstatus überwachen, OSD-Knotenstatus.
Speicher- und PG-Status.
Ceph-Strich wurde unter einem Apache installiert Webserver auf dem Monitorknoten 'mon1 '.