目次にジャンプページナビゲーションにジャンプ: 前のページ[アクセスキーp]/次のページ[アクセスキーn]
documentation.suse.com / SUSE Enterprise Storage 7.1マニュアル / 運用と管理ガイド / クラスタの運用 / 監視とアラート
適用項目 SUSE Enterprise Storage 7.1

16 監視とアラート

SUSE Enterprise Storage 7.1では、cephadmが監視スタックとアラートスタックを展開します。ユーザはcephadmを使用して展開したいサービス(Prometheus、Alertmanager、Grafanaなど)をYAML設定ファイルで指定する必要がありますが、CLIを使用してサービスを展開することもできます。同じ種類のサービスが複数展開される場合は、高可用性セットアップが展開されます。ノードエクスポータはこのルールの例外です。

cephadmを使用して以下の監視サービスを展開できます。

  • 「Prometheus」は監視およびアラートツールキットです。このツールはPrometheusエクスポータからのデータを収集し、事前に定義されたしきい値に達した場合は事前に設定されたアラートを発します。

  • 「Alertmanager」はPrometheusサーバによって送信されるアラートを処理します。このツールはアラートの重複排除、グループ化、ルーティングを行って適切な受信者に届けます。デフォルトでは、自動的にCephダッシュボードが受信者に設定されます。

  • 「Grafana」は視覚化およびアラートソフトウェアです。この監視スタックではGrafanaのアラート機能を使用しません。そのかわり、アラートにはAlertmanagerを使用します。

  • 「ノードエクスポータ」はPrometheus用エクスポータで、インストールしたノードに関するデータを提供します。すべてのノードにノードエクスポータをインストールすることをお勧めします。

Prometheus Manager ModuleはPrometheusエクスポータを提供し、ceph-mgr収集ポイントのCephパフォーマンスカウンタを伝達します。

「スクレイピング」対象(メトリクスを提供するデーモン)などの、Prometheus設定はcephadmが自動的に設定します。cephadmはデフォルトアラートのリストも展開します。たとえば、health error10% OSDs downpgs inactiveなどです。

デフォルトでは、GrafanaへのトラフィックはTLSで暗号化されます。ユーザは手持ちのTLS証明書を支給するか、自己署名証明書を利用できます。Grafanaが展開される前にカスタム証明書を設定していない場合は、自動的に自己署名証明書が作成され、Grafana用に設定されます。

次の手順に従って、Grafanaのカスタム証明書を設定できます。

  1. 証明書ファイルを設定します。

    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pem
    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pem
  2. Ceph Managerサービスを再起動します。

    cephuser@adm > ceph orch restart mgr
  3. 新しい証明書パスを反映するようにGrafanaサービスを再設定し、Cephダッシュボードに適切なURLを設定します。

    cephuser@adm > ceph orch reconfig grafana

AlertmanagerはPrometheusサーバによって送信されるアラートを処理します。重複排除、グループ化、正しいレシーバへのルーティングを行います。アラートはAlertmanagerを用いて停止できますが、Cephダッシュボードからも管理できます。

すべてのノードにNode exporterを展開することをお勧めします。展開にはnode-exporterサービスタイプを記載したmonitoring.yamlファイルを使用できます。サービスの展開の詳細については、8.3.8項 「監視スタックの展開」を参照してください。

16.1 カスタムイメージまたはローカルイメージの設定

ヒント
ヒント

このセクションでは、サービスの展開やアップグレードを行う際に使用するコンテナイメージの設定を変更する方法を説明します。サービスの展開または再展開に必要なコマンドは含まれません。

監視スタックを展開する方法としては、8.3.8項 「監視スタックの展開」に記載されているような、監視スタックの仕様を適用する方法をお勧めします。

カスタムイメージまたはローカルコンテナイメージを展開するには、イメージをcephadmに設定しなければなりません。そのためには、次のコマンドを実行する必要があります。

cephuser@adm > ceph config set mgr mgr/cephadm/OPTION_NAME VALUE

OPTION_NAMEには、次のいずれかの名前が入ります。

  • container_image_prometheus

  • container_image_node_exporter

  • container_image_alertmanager

  • container_image_grafana

オプションが設定されていないか、設定が削除されている場合は、以下のイメージをVALUEとして使用します。

  • registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1

  • registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2

  • registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0

  • registry.suse.com/ses/7.1/ceph/grafana:7.5.12

以下に例を示します。

cephuser@adm > ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
注記
注記

カスタムイメージを設定すると、デフォルトの値は無視されます(ただし、上書きはされません)。デフォルトの値はアップデートが利用可能になった際に変更されます。カスタムイメージを設定すると、カスタムイメージを設定したコンポーネントの自動アップデートができなくなります。アップデートをインストール可能にするには、手動で設定(イメージ名とタグ)をアップデートする必要があります。

推奨設定を使用することを選択する場合、以前に設定したカスタムイメージをリセットすることができます。リセット後は再びデフォルト値が使用されます。設定オプションをリセットするには、ceph config rmを使用してください。

cephuser@adm > ceph config rm mgr mgr/cephadm/OPTION_NAME

以下に例を示します。

cephuser@adm > ceph config rm mgr mgr/cephadm/container_image_prometheus

16.2 監視サービスのアップデート

16.1項 「カスタムイメージまたはローカルイメージの設定」で述べたように、cephadmは推奨されるテスト済みのコンテナイメージのURLが設定された状態で提供されます。これらのイメージはデフォルト値として使用されています。

Cephパッケージをアップデートすると、これらのURLの新しいバージョンが提供される場合があります。この場合、コンテナイメージの取得元がアップデートされるだけで、サービスはアップデートされません。

16.1項 「カスタムイメージまたはローカルイメージの設定」で述べた手動によるアップデート、またはCephパッケージのアップデートにともなう自動アップデートによって、コンテナイメージのURLが最新版にアップデートされると、監視サービスをアップデートできるようになります。

監視サービスのアップデートにはceph orch reconfigを使用します。以下に例を示します。

cephuser@adm > ceph orch reconfig node-exporter
cephuser@adm > ceph orch reconfig prometheus
cephuser@adm > ceph orch reconfig alertmanager
cephuser@adm > ceph orch reconfig grafana

今のところ、1つのコマンドで存在するすべての監視サービスをアップデートすることはできません。監視サービスをアップデートする順番は重要ではありません。

注記
注記

カスタムコンテナイメージを使用している場合、Cephパッケージがアップデートされても監視サービス用のURLは自動的には変更されません。カスタムコンテナイメージを指定している場合は、手動で新しいコンテナイメージのURLを指定する必要があります。たとえば、ローカルコンテナレジストリを使用する場合に、このようなケースが生じます。

使用をお勧めするコンテナイメージのURLについては、16.1項 「カスタムイメージまたはローカルイメージの設定」セクションを参照してください。

16.3 監視の無効化

監視スタックを無効化するには、次のコマンドを実行します。

cephuser@adm > ceph orch rm grafana
cephuser@adm > ceph orch rm prometheus --force   # this will delete metrics data collected so far
cephuser@adm > ceph orch rm node-exporter
cephuser@adm > ceph orch rm alertmanager
cephuser@adm > ceph mgr module disable prometheus

16.4 Grafanaの設定

CephダッシュボードのバックエンドはGrafana URLを必要とします。これは、フロントエンドがGrafanaダッシュボードの有無を確認してからロードできるようにするためです。CephダッシュボードにGrafanaを実装している方法の性質から、CephダッシュボードでGrafanaのグラフを確認できるようにするには、2つの作業を結びつける必要があります。

  • バックエンド(Ceph MGRモジュール)は要求されたグラフの存在を確認する必要があります。この要求が正常に完了した場合、バックエンドはフロントエンドに対してGrafanaに安全にアクセスできることを通知します。

  • その後、フロントエンドはiframeを使用してユーザのブラウザから直接Grafanaのグラフを要求します。Cephダッシュボードを通じて、迂回することなくGrafanaのインスタンスに直接アクセスします。

お客様の環境によっては、ユーザのブラウザがCephダッシュボードで設定したURLに直接アクセスすることが難しい場合もあります。対策としては、フロントエンド(ユーザのブラウザ)がGrafanaへのアクセスに使うべきURLを伝えるためだけに使用する、別のURLを設定する方法があります。

フロントエンドに返答するためのURLを変更するには、次のコマンドを実行します。

cephuser@adm > ceph dashboard set-grafana-frontend-api-url GRAFANA-SERVER-URL

コマンド中でオプションの値を指定していない場合は、GRAFANA_API_URLオプションの値が利用されます。この値は、cephadmのアップデートにより自動的かつ定期的に設定されます。オプションの値を指定した場合は、ブラウザが指定したURLを使ってGrafanaにアクセスするように設定されます。

16.5 Prometheus Manager Moduleの設定

Prometheus Manager ModuleはCephの内部モジュールの1つで、Cephの機能を拡張します。このモジュールはCephから(メタ)データを読み込み、Cpehの状態やヘルスに関する情報を取得します。そして、Prometheusが利用できるフォーマットで(スクレイピングされた)データを提供します。

注記
注記

設定変更を適用するには、Prometheus Manager Moduleを再起動する必要があります。

16.5.1 ネットワークインタフェースの設定

デフォルトでは、Prometheus Manager ModuleはIPv4およびIPv6の全アドレスからのHTTPリクエストをホストのポート9283番で受け付けます。ポートとリッスンアドレスはceph config-key setmgr/prometheus/server_addrキーとmgr/prometheus/server_portキーを使用して設定可能です。このポートはPrometheusのレジストリに登録されます。

server_addrをアップデートするには、次のコマンドを実行します。

cephuser@adm > ceph config set mgr mgr/prometheus/server_addr 0.0.0.0

server_portをアップデートするには、次のコマンドを実行します。

cephuser@adm > ceph config set mgr mgr/prometheus/server_port 9283

16.5.2 scrape_intervalの設定

デフォルトでは、Prometheus Manager Moduleのスクレイピング間隔は15秒に設定されています。スクレイピング間隔を10秒未満にすることはお勧めしません。Prometheusモジュールに別のスクレイピング間隔を設定するには、scrape_intervalを希望する値に設定してください。

重要
重要

正常な動作と不具合の防止のため、このモジュールのscrape_intervalとPrometheusのスクレイピング間隔は常に一致するように設定する必要があります。

cephuser@adm > ceph config set mgr mgr/prometheus/scrape_interval 15

16.5.3 キャッシュの設定

大規模なクラスタ(OSDが1000を超えるクラスタ)では、メトリクスの取得にかかる時間が重要になる場合があります。キャッシュを使用しないと、Prometheus Manager Moduleがマネージャを過負荷状態に陥らせ、Ceph Managerインスタンスが応答しなくなったり、クラッシュするおそれがあります。そのため、キャッシュ機能はデフォルトで有効設定してあり、無効にできません。しかしその結果、キャッシュが古くなる可能性があります。Cephからのメトリクスの取得にかかる時間がscrape_intervalの設定を超えると、キャッシュは古くなったと見なされます。

この場合、警告が記録されるとともに、モジュールが次のいずれかの動作をします。

  • HTTPステータスコード503(service unavailable)を返します。

  • キャッシュが古くなっている可能性を承知の上で、キャッシュのコンテンツを返します。

この動作は、ceph config setコマンドにより設定できます。

古くなっている可能性のあるデータを返すことをモジュールに指示するには、returnに設定してください。

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy return

service unavailableを返すことをモジュールに指示するには、failに設定してください。

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy fail

16.5.4 RBDイメージ監視の有効化

必要に応じて、Prometheus Manager ModuleはRBDイメージごとのIO統計状態を収集できます。そのためには、動的OSDパフォーマンスカウンタを有効化します。mgr/prometheus/rbd_stats_pools設定パラメータで指定したプールのすべてのイメージについて、統計情報が収集されます。

パラメータはpool[/namespace]エントリのカンマかスペースで区切ったリストです。namespaceを指定しない場合は、プールのすべてのネームスペースについて統計情報が収集されます。

以下に例を示します。

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"

モジュールは指定されたプールとネームスペースをスキャンして、利用可能なイメージのリストを作成します。さらに、モジュールはリストを定期的に更新します。更新間隔はmgr/prometheus/rbd_stats_pools_refresh_intervalパラメータにより設定可能です(秒単位)。デフォルト値は300秒(5分)です。

たとえば、同期間隔を10分に変更するには次のコマンドを実行します。

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600

16.6 Prometheusのセキュリティモデル

Prometheusのセキュリティモデルは、信頼されていないユーザがPrometheus HTTPのエンドポイントとログにアクセスできる場合を仮定しています。この条件では、信頼されていないユーザが、データベースに格納されているPrometheusが収集したすべての(メタ)データや、さまざまな運用情報とデバッグ情報にアクセスできます。

しかし、PrometheusのHTTP APIは読み込み専用の動作しかできないように制限されています。APIにより設定を変更することはできないため、機密情報は持ち出せません。さらに、PrometheusにはDoS攻撃(Denial-of-Service Attack)の被害を軽減するための対策が組み込まれています。

16.7 Prometheus Alertmanager SNMPゲートウェイ

SNMPトラップを介してPrometheusアラートに関する通知を受け取りたい場合は、cephadmまたはCephダッシュボードを介してPrometheus Alertmanager SNMPゲートウェイをインストールできます。たとえば、SNMPv2cでこれを行うには、以下の内容を含むサービス仕様と配置仕様を記載するファイルを作成する必要があります。

注記
注記

サービス仕様と配置仕様を記載するファイルの詳細については、8.2項 「サービス仕様と配置仕様」を参照してください。

service_type: snmp-gateway
service_name: snmp-gateway
placement:
    ADD_PLACEMENT_HERE
spec:
  credentials:
    snmp_community: ADD_COMMUNITY_STRING_HERE
  snmp_destination: ADD_FQDN_HERE:ADD_PORT_HERE
  snmp_version: V2c

または、Cephダッシュボードを使用して、SNMPv2cおよびSNMPv3のSNMPゲートウェイサービスを展開することもできます。詳細については、4.4項 「サービスの表示」を参照してください。