Ceph-dash est une application WSGI basée sur le framework Flask pour la surveillance des clusters Ceph. Il utilise librados pour communiquer avec le cluster Ceph. Ceph-dash a un joli tableau de bord, il est facile à installer et possède de nombreuses fonctionnalités, y compris la prise en charge d'InfluxDB et de Graphite.
Dans ce tutoriel, je vais vous montrer comment installer Ceph-dash et le configurer pour qu'il s'exécute sous un serveur Web apache avec le support SSL et mod_auth. Dans le premier tutoriel Ceph, nous avons déjà installé un 'cluster Ceph', dans ce tutoriel, nous allons configurer ceph-dash sur l'hôte moniteur 'mon1 ' de cette configuration.
Prérequis
- Cluster Ceph – Tutoriel Ceph I
- Surveiller le nœud CentOS 7 - mon1
- Privilèges root
Étape 1 : Installer les dépendances Ceph-dash
Dans cette première étape, nous installerons les dépendances nécessaires à ceph-dash, y compris le serveur Web apache et mod_ssl.
Connectez-vous au nœud mon1 à partir du nœud ceph-admin.
ssh mon1
Installez toutes les dépendances nécessaires avec la commande yum.
sudo miam -y install httpd mod_wsgi mod_ssl git
Ensuite, démarrez apache/httpd et ajoutez-le pour qu'il soit lancé au démarrage.
sudo systemctl start httpd
sudo systemctl enable httpd
Étape 2 - Télécharger Ceph-dash
Ceph-dash est une application open source, disponible sur le référentiel github. Clonez le dépôt dans le répertoire /var/www/.
cd /var/www/html/
clone git https://github.com/Crapworks/ceph-dash.git
Par défaut, apache/httpd s'exécute sous le nom d'utilisateur 'apache', nous devons donc changer le propriétaire des fichiers et répertoires ceph-dash en utilisateur 'apache'.
sudo chown -R /var/www/html/ceph-dash/
Étape 3 - Configurer un hôte virtuel Apache pour Ceph-dash
Ceph-dash fournit un exemple de configuration d'hôte virtuel pour apache et Nginx dans le répertoire 'contrib'. Nous utiliserons apache comme serveur Web pour Ceph-dash, nous devons donc copier le fichier de configuration pour apache dans le répertoire apache/httpd.
cd /var/www/html/ceph-dash/
cp contrib/apache/cephdash /etc/httpd/conf.d/cephdash.conf
Accédez au répertoire de configuration de l'hôte virtuel et modifiez le fichier cephdash.conf.
cd /etc/httpd/conf.d/
vim cephdash.conf
Modifier la valeur de 'ServerName ' à votre nom de domaine - dans mon cas ceph-mon.co
Modifier le processus du démon wsgi pour qu'il s'exécute en tant qu'apache utilisateur.
Remplacez le répertoire cephdash.wsgi par '/var/www/html/ceph-dash/contrib/wsgi/cephdash.wsgi' .
Changez le répertoire de configuration SSL en '/etc/httpd/ssl/ '.
Changez le répertoire ceph-dash en '/var/www/html/ceph-dash ', puis ajoutez l'authentification de base configuration.
Ci-dessous la configuration.
ServerName ceph-mon.co
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/server-status
RewriteRule ^ /?(.*) https://%{HTTP_HOST}/$1 [R,L]
ServerName ceph- mon.co
WSGIdaemonProcess cephdash user=apache group=apache Process=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
WSGIProcessGroup cephdash
WSGIApplicationGroup %{GLOBAL}
Ordre refusé, autoriser
Autoriser de tous
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Nécessite un utilisateur valide
Enregistrez le fichier et quittez l'éditeur.
Étape 4 - Configurer SSL et Apache Basic Auth
Dans la configuration de l'hôte virtuel, nous avons déjà défini la configuration SSL dans le répertoire '/etc/httpd/ssl', nous devons donc y créer le certificat et la clé SSL.
mkdir -p /etc/httpd/ssl/
Générez maintenant un fichier de certificat SSL auto-signé avec la commande OpenSSL.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/httpd/ssl/ssl.key -out \
/etc/httpd/ssl/ssl. crt
Modifiez les autorisations du fichier de certificat à 600.
chmod 600 /etc/httpd/ssl/*
Ensuite, ajoutez apache basic auth avec la commande htpasswd ci-dessous pour protéger par mot de passe l'accès Ceph-dash.
htpasswd -c /etc/httpd/htpasswd hakase
Tapez votre mot de passe :
hakase est le nom d'utilisateur que j'ai choisi.
Si tout est fait, testez le fichier de configuration apache avec la commande apachectl et assurez-vous que le résultat est "Syntaxe OK ', puis redémarrez apache.
apachectl configtest
sudo systemctl restart httpd
Étape 5 - Ajouter un port HTTP et HTTPS au pare-feud
Sur le nœud moniteur 'mon1 ', firewalld est activé. Nous devons ouvrir un nouveau port pour la connexion http et https afin de pouvoir accéder à Ceph-dash à partir d'un navigateur Web.
Ajoutez les ports http et https à firewalld avec la commande firewall-cmd.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanentRechargez la configuration du pare-feu.
sudo firewall-cmd --reload
Étape 6 - Tester
Ouvrez votre navigateur Web et saisissez le domaine ceph-mon.co (utilisez le nom de domaine que vous avez choisi pour votre installation ceph-dash) dans la barre d'adresse, appuyez sur Entrée.
Il vous sera demandé un nom d'utilisateur et un mot de passe, saisissez votre nom d'utilisateur et votre mot de passe que vous avez utilisés dans le fichier htpasswd.
Vous pouvez maintenant voir le tableau de bord Ceph-dash.
État de santé du cluster, état du nœud de surveillance, état des nœuds OSD.
Statut de stockage et PG.
Ceph-tiret a été installé sous un apache serveur Web sur le nœud de surveillance 'mon1 '.