本文の内容は、2021年4月22日にDavid Lorite Solanasが投稿したブログ(https://sysdig.com/blog/monitoring-ceph-health-prometheus)を元に日本語に翻訳・再構成した内容となっております。
Prometheusを使ってCephの健全性を監視するのは簡単です。CephはすでにPrometheus用のすべてのメトリクスを持つエンドポイントを公開しているからです。この記事では、Cephストレージクラスターのモニタリングを開始するために必要な作業と重要なメトリクスをご紹介します。
Cephは、安価なハードウェアでも大容量のデータを管理できる、素晴らしいオブジェクトベースストレージソリューションを提供しています。また、Ceph Foundationは、Linux Foundationの直轄基金として組織されています。
Cephを監視することは、ディスクプロバイダの健全性を維持するためにも、クラスターのクォーラムを維持するためにも非常に重要です。
CephのPrometheusモニタリングを有効にする方法
Rook で Ceph をデプロイした場合、他に何もする必要はありません。すでにPrometheusが有効になっており、ポッドにはアノテーションが施されているので、Prometheusが自動的にメトリクスを収集してくれます。
CephをRookでデプロイしていない場合は、いくつかの追加手順があります。
Prometheusモニタリングの有効化
このコマンドを使用して、CephストレージクラスタでPrometheusを有効にします。これにより、Prometheusメトリクスを返すエンドポイントが有効になります。
ceph mgr module enable prometheus
このコマンドを実行した後、Prometheusを完全に有効にするには、Prometheusマネージャモジュールを再起動する必要があることに注意してください。
PrometheusメトリクスでCephポッドをアノテーションする
ceph-mgrのデプロイメントに以下のアノテーションを追加して、PrometheusサービスディスカバリーがCephメトリクスエンドポイントを自動的に検出できるようにします。
annotations: prometheus.io/scrape: 'true' prometheus.io/port: '9283'
Cephの健全性の監視
Cephのステータス
チェックすべき絶対的なトップ1メトリクスは、ceph_health_statusです。このメトリクスが存在しない場合や、1とは異なる値を返す場合は、クラスターに重大な問題が発生しています。
このような状況を認識するために、アラートを作成しましょう:
absent(ceph_health_status == 1)
クラスターの残りのストレージ
ディスクを使用するすべてのシステムと同様に、残りの利用可能なストレージを確認する必要があります。これを確認するには、ceph_cluster_total_bytesを使用して総ディスク容量(バイト単位)を取得し、ceph_cluster_total_used_bytesを使用してディスク使用量(バイト単位)を取得します。
残りの容量が総ディスク容量の15%未満になったら警告するPromQLクエリーを作成してみましょう。
(ceph_cluster_total_bytes-ceph_cluster_total_used_bytes)/ceph_cluster_total_bytes < 0.15
Object Storage Daemonノードのダウン
Object Storage Daemon (OSD)は、ローカルファイルシステムにオブジェクトを保存し、ネットワーク経由でオブジェクトへのアクセスを提供する役割を果たします。各ノードにOSDがあります。OSDがダウンすると、そのノードにマウントされている物理ディスクにアクセスできなくなります。
OSDがダウンのアラートを作成してみましょう:
ceph_osd_up == 0
MDSレプリカの欠落
実際のMDSレプリカの数が予想より少なくなっていないか確認することが重要です。通常、高可用性(HA)のためには、その数は3つです。しかし、大規模なクラスターでは、それ以上になることもあります。
ceph-mdsは、Ceph分散ファイルシステムのメタデータサーバデーモンです。共有OSDクラスターへのアクセスを調整します。MDSがダウンすると、OSDクラスターへのアクセスができなくなります。
このPromQLクエリは、利用可能なMDSがない場合に警告します。
count(ceph_mds_metadata == 1) == 0
クォーラム
Ceph MONがクォーラムを形成できない場合、クォーラムが回復するまで、cephadmはクラスターを管理できません。CephがPaxosを使用してマスタークラスターマップに関するコンセンサスを確立する方法の詳細については、Cephのドキュメントを参照してください。
クォーラムを得るためには、3つのモニターを用意することをお勧めします。どれかがダウンした場合、クォーラムが危険にさらされます。
これは、ceph_mon_quorum_statusメトリクスで警告することができます。
count(ceph_mon_quorum_status{%s} == 1) <= ((count(ceph_mon_metadata{%s}) %s 2) + 1)
PromQLをもっと詳しく知りたいですか? PromQL cheatsheetをダウンロードしてください!
これらのメトリクスを数クリックでGrafanaやSysdig Monitorに追加する
この記事では、Prometheusを使ってCephの健全性を監視することで、Cephクラスターの健全性を簡単にチェックできることを学び、見るべき上位5つの重要なメトリクスを特定しました。
PromCat.ioでは、ダッシュボードと本記事で紹介したアラートを、GrafanaやSysdig Monitorですぐに使用できるようにしています。これらの統合は、Sysdigによってキュレーション、テスト、メンテナンスされています。
また、Sysdig MonitorでCephを簡単に監視できることをご紹介します。
この統合をお試しになりたい場合は、Sysdig Monitorの無料トライアルにお申し込みください。