Ceph-dash es una aplicación WSGI basada en el marco Flask para monitorear clústeres de Ceph. Utiliza librados para comunicarse con el clúster de Ceph. Ceph-dash tiene un buen panel de control, es fácil de instalar y tiene muchas funciones, incluido el soporte de InfluxDB y Graphite.
En este tutorial, le mostraré cómo instalar Ceph-dash y configurarlo para que se ejecute en un servidor web apache con soporte SSL y mod_auth. En el primer tutorial de Ceph, ya instalamos un 'clúster de Ceph', en este tutorial, configuraremos ceph-dash en el host del monitor 'mon1 ' de esa configuración.
Requisitos previos
- Clúster de Ceph:tutorial de Ceph I
- Nodo de supervisión CentOS 7 - mon1
- Privilegios de raíz
Paso 1:instalación de las dependencias de Ceph-dash
En este primer paso, instalaremos las dependencias que necesita ceph-dash, incluido el servidor web apache y mod_ssl.
Conéctese al nodo mon1 desde el nodo ceph-admin.
ssh mon1
Instale todas las dependencias necesarias con el comando yum.
sudo yum -y install httpd mod_wsgi mod_ssl git
Luego inicie apache/httpd y agréguelo para que se inicie en el momento del arranque.
sudo systemctl start httpd
sudo systemctl enable httpd
Paso 2:descarga Ceph-dash
Ceph-dash es una aplicación de código abierto, disponible en el repositorio de github. Clona el repositorio en el directorio /var/www/.
cd /var/www/html/
git clone https://github.com/Crapworks/ceph-dash.git
De forma predeterminada, apache/httpd se ejecuta con el nombre de usuario 'apache', por lo que debemos cambiar el propietario de los archivos y directorios ceph-dash al usuario 'apache'.
sudo chown -R /var/www/html/ceph-dash/
Paso 3:configurar un host virtual de Apache para Ceph-dash
Ceph-dash proporciona una muestra de una configuración de host virtual para apache y Nginx en el directorio 'contrib'. Usaremos apache como servidor web para Ceph-dash, por lo que debemos copiar el archivo de configuración de apache en el directorio apache/httpd.
cd /var/www/html/ceph-dash/
cp contrib/apache/cephdash /etc/httpd/conf.d/cephdash.conf
Vaya al directorio de configuración del host virtual y edite el archivo cephdash.conf.
cd /etc/httpd/conf.d/
vim cephdash.conf
Cambiar el valor de 'ServerName ' a su nombre de dominio - en mi caso ceph-mon.co
Cambie el proceso del daemon wsgi para que se ejecute como apache usuario.
Cambie el directorio cephdash.wsgi a '/var/www/html/ceph-dash/contrib/wsgi/cephdash.wsgi' .
Cambie el directorio de configuración de SSL a '/etc/httpd/ssl/ '.
Cambie el directorio ceph-dash a '/var/www/html/ceph-dash ', luego agrega la autorización básica configuración.
A continuación se muestra la configuración.
<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>
Guarde el archivo y salga del editor.
Paso 4:configurar SSL y Apache Basic Auth
En la configuración del host virtual, ya hemos definido la configuración SSL en el directorio '/etc/httpd/ssl', por lo que debemos crear el certificado SSL y la clave allí.
mkdir -p /etc/httpd/ssl/
Ahora genere un archivo de certificado SSL autofirmado con el comando OpenSSL.
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/httpd/ssl/ssl.key -out \
/etc/httpd/ssl/ssl.crt
Cambie los permisos del archivo de certificado a 600.
chmod 600 /etc/httpd/ssl/*
A continuación, agregue la autenticación básica de apache con el siguiente comando htpasswd para proteger con contraseña el acceso de Ceph-dash.
htpasswd -c /etc/httpd/htpasswd hakase
Type your password:
hakase es el nombre de usuario que he elegido.
Si todo está hecho, pruebe el archivo de configuración de apache con el comando apachectl y asegúrese de que el resultado sea 'Syntax OK ', luego reinicie apache.
apachectl configtest
sudo systemctl restart httpd
Paso 5:agregue el puerto HTTP y HTTPS al firewalld
En el nodo del monitor 'mon1 ', firewalld está habilitado. Tenemos que abrir un nuevo puerto para la conexión http y https para que podamos acceder a Ceph-dash desde un navegador web.
Agregue el puerto http y https a firewalld con el comando firewall-cmd.
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
Vuelva a cargar la configuración del cortafuegos.
sudo firewall-cmd --reload
Paso 6 - Prueba
Abra su navegador web y escriba el dominio ceph-mon.co (utilice el nombre de dominio que ha elegido para la instalación de ceph-dash) en la barra de direcciones, presione Intro.
Se le pedirá el nombre de usuario y la contraseña, escriba el nombre de usuario y la contraseña que utilizó en el archivo htpasswd.
Ahora puede ver el panel de Ceph-dash.
Estado de salud del clúster, estado del nodo del monitor, estado de los nodos OSD.
Almacenamiento y estado de PG.
Guión cefalométrico se ha instalado bajo un apache servidor web en el nodo de monitor 'mon1 '.