CentOS 7 での Ceph-dash を使用した Ceph クラスターの監視
このページでは
- ステップ 1 - Ceph-dash の依存関係をインストールする
- ステップ 2 - Ceph-dash をダウンロードする
- ステップ 3 - Ceph-dash 用に Apache 仮想ホストを構成する
- ステップ 4 - SSL と Apache Basic 認証を構成する
- ステップ 5 - HTTP および HTTPS ポートを Firewalld に追加する
- ステップ 6 - テスト
- 参照
Ceph-dash は、Ceph クラスターを監視するための Flask フレームワークに基づく WSGI アプリケーションです。 librados を使用して Ceph クラスタと通信します。 Ceph-dash には優れたダッシュボードがあり、インストールが簡単で、InfluxDB や Graphite のサポートなど、多くの機能を備えています。
このチュートリアルでは、Ceph-dash をインストールし、SSL と mod_auth をサポートする Apache Web サーバーで実行するように構成する方法を説明します。最初の Ceph チュートリアルでは、Ceph クラスターを既にインストールしています。このチュートリアルでは、そのセットアップのモニター ホスト mon1 で ceph-dash を構成します。
前提条件
- Ceph クラスタ - Ceph I チュートリアル
- CentOS 7 ノードの監視 - mon1
- ルート権限
ステップ 1 - Ceph-dash 依存関係のインストール
この最初のステップでは、Apache Web サーバーや mod_ssl など、ceph-dash に必要な依存関係をインストールします。
ceph-admin ノードから mon1 ノードに接続します。
ssh mon1
yum コマンドで必要なすべての依存関係をインストールします。
sudo yum -y install httpd mod_wsgi mod_ssl git
次に、apache/httpd を起動し、起動時に起動するように追加します。
sudo systemctl start httpd
sudo systemctl enable httpd
ステップ 2 - Ceph-dash のダウンロード
Ceph-dash は、github リポジトリから入手できるオープン ソース アプリケーションです。リポジトリを /var/www/ ディレクトリにクローンします。
cd /var/www/html/
git clone https://github.com/Crapworks/ceph-dash.git
デフォルトでは、apache/httpd はユーザー名 apache で実行されているため、ceph-dash ファイルとディレクトリの所有者を apache ユーザーに変更する必要があります。
sudo chown -R /var/www/html/ceph-dash/
ステップ 3 - Ceph-dash 用に Apache 仮想ホストを構成する
Ceph-dash は、contrib ディレクトリで apache と Nginx の仮想ホスト構成のサンプルを提供します。 Ceph-dash の Web サーバーとして apache を使用するため、apache の構成ファイルを apache/httpd ディレクトリにコピーする必要があります。
cd /var/www/html/ceph-dash/
cp contrib/apache/cephdash /etc/httpd/conf.d/cephdash.conf
仮想ホスト構成ディレクトリに移動し、cephdash.conf ファイルを編集します。
cd /etc/httpd/conf.d/
vim cephdash.conf
ServerName の値をドメイン名に変更します - 私の場合は ceph-mon.co
wsgi デーモン プロセスを apache ユーザーとして実行するように変更します。
cephdash.wsgi ディレクトリを /var/www/html/ceph-dash/contrib/wsgi/cephdash.wsgi に変更します。
SSL 構成ディレクトリーを /etc/httpd/ssl/ に変更します。
ceph-dash ディレクトリを /var/www/html/ceph-dash に変更し、基本的な認証構成を追加します。
以下は構成です。
<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>
ファイルを保存してエディターを終了します。
ステップ 4 - SSL と Apache Basic 認証を構成する
仮想ホスト構成では、/etc/httpd/ssl ディレクトリに SSL 構成を既に定義しているため、そこに SSL 証明書とキーを作成する必要があります。
mkdir -p /etc/httpd/ssl/
ここで、OpenSSL コマンドを使用して自己署名 SSL 証明書ファイルを生成します。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/httpd/ssl/ssl.key -out \
/etc/httpd/ssl/ssl.crt
証明書ファイルの権限を 600 に変更します。
chmod 600 /etc/httpd/ssl/*
次に、以下の htpasswd コマンドで apache basic auth を追加して、Ceph-dash アクセスをパスワード保護します。
htpasswd -c /etc/httpd/htpasswd hakase
Type your password:
hakase は私が選んだユーザー名です。
すべてが完了したら、apachectl コマンドで apache 構成ファイルをテストし、結果が Syntax OK であることを確認してから、apache を再起動します。
apachectl configtest
sudo systemctl restart httpd
ステップ 5 - HTTP および HTTPS ポートを Firewalld に追加する
モニターノード mon1 では、firewalld が有効になっています。ウェブブラウザから Ceph-dash にアクセスできるように、http および https 接続用の新しいポートを開く必要があります。
firewall-cmd コマンドを使用して、http および https ポートを firewalld に追加します。
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
firewalld 構成を再ロードします。
sudo firewall-cmd --reload
ステップ 6 - テスト
ウェブブラウザを開き、アドレスバーに ceph-mon.co ドメイン(ceph-dash インストール用に選択したドメイン名を使用)を入力して、Enter キーを押します。
ユーザー名とパスワードの入力を求められるので、htpasswd ファイルで使用したユーザー名とパスワードを入力します。

これで、Ceph-dash ダッシュボードが表示されます。
クラスターの正常性ステータス、監視ノードのステータス、OSD ノードのステータス。

ストレージと PG のステータス。

Ceph-dash は、モニター ノード mon1 の Apache Web サーバーの下にインストールされています。
参照
- http://www.virtualtothecore.com/en/monitor-a-ceph-cluster-with-ceph-dash/