Ceph
Datadog の調査レポート: サーバーレスの状態 レポート: サーバーレスの状態

Ceph

Supported OS: Linux Mac OS

Ceph ダッシュボード

概要

Datadog-Ceph インテグレーションを有効にすると、以下のことができます。

  • ストレージプール全体のディスク使用状況を追跡できます。
  • 問題が発生した場合にサービスチェックを受信できます。
  • I/O パフォーマンスメトリクスを監視できます。

セットアップ

インストール

Ceph チェックは Datadog Agent パッケージに含まれています。Ceph サーバーに追加でインストールする必要はありません。

コンフィグレーション

Agent の構成ディレクトリのルートにある conf.d/ フォルダーの ceph.d/conf.yaml ファイルを編集します。 使用可能なすべての構成オプションの詳細については、サンプル ceph.d/conf.yaml を参照してください。

init_config:

instances:
  - ceph_cmd: /path/to/your/ceph # default is /usr/bin/ceph
    use_sudo: true # ご利用のノードで ceph バイナリが sudo を必要とする場合のみ

use_sudo を有効にした場合は、sudoers ファイルに以下のような行を追加します。

dd-agent ALL=(ALL) NOPASSWD:/path/to/your/ceph

ログの収集

Agent バージョン 6.0 以降で利用可能

  1. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
  2. 次に、下部にある logs 行のコメントを解除して、ceph.d/conf.yaml を編集します。ログの path を Ceph ログファイルの正しいパスで更新してください。

    logs:
     - type: file
       path: /var/log/ceph/*.log
       source: ceph
       service: "<APPLICATION_NAME>"
  3. Agent を再起動します

検証

Agent の status サブコマンドを実行し、Checks セクションで ceph を探します。

収集データ

メトリクス

ceph.commit_latency_ms
(gauge)
Time taken to commit an operation to the journal
Shown as millisecond
ceph.apply_latency_ms
(gauge)
Time taken to flush an update to disks
Shown as millisecond
ceph.op_per_sec
(gauge)
IO operations per second for given pool
Shown as operation
ceph.read_bytes_sec
(gauge)
Bytes/second being read
Shown as byte
ceph.write_bytes_sec
(gauge)
Bytes/second being written
Shown as byte
ceph.num_osds
(gauge)
Number of known storage daemons
Shown as item
ceph.num_in_osds
(gauge)
Number of participating storage daemons
Shown as item
ceph.num_up_osds
(gauge)
Number of online storage daemons
Shown as item
ceph.num_pgs
(gauge)
Number of placement groups available
Shown as item
ceph.num_mons
(gauge)
Number of monitor daemons
Shown as item
ceph.aggregate_pct_used
(gauge)
Overall capacity usage metric
Shown as percent
ceph.total_objects
(gauge)
Object count from the underlying object store
Shown as item
ceph.num_objects
(gauge)
Object count for a given pool
Shown as item
ceph.read_bytes
(gauge)
Per-pool read bytes
Shown as byte
ceph.write_bytes
(gauge)
Per-pool write bytes
Shown as byte
ceph.num_pools
(gauge)
Number of pools
Shown as item
ceph.pgstate.active_clean
(gauge)
Number of active+clean placement groups
Shown as item
ceph.read_op_per_sec
(gauge)
Per-pool read operations/second
Shown as operation
ceph.write_op_per_sec
(gauge)
Per-pool write operations/second
Shown as operation
ceph.num_near_full_osds
(gauge)
Number of nearly full osds
Shown as item
ceph.num_full_osds
(gauge)
Number of full osds
Shown as item
ceph.osd.pct_used
(gauge)
Percentage used of full/near full osds
Shown as percent

: Ceph Luminous 以降を実行している場合、ceph.osd.pct_used メトリクスは表示されません。

イベント

Ceph チェックには、イベントは含まれません。

サービスのチェック

ceph.overall_status:
Datadog Agent は、Ceph のホスト健全性チェックごとにサービスチェックを送信します。

Ceph Luminous 以降では、このサービスチェックのほかに、Ceph チェックはいくつかの健全性チェックも収集します。収集するチェックは構成可能で、デフォルトでは以下のとおりです。

ceph.osd_down:
OSD がすべて動作中の場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.osd_orphan:
孤立 OSD がない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.osd_full:
OSD がフルでない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.osd_nearfull:
OSD がまったくフルでない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pool_full:
プールがクオータに達していない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pool_near_full:
クオータにまったく到達していない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_availability:
データ可用性が十分な場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_degraded:
データ冗長性が十分な場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_degraded_full:
クラスターにデータ冗長性の余裕が十分にある場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_damaged:
データスクラビング後に矛盾がない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_not_scrubbed:
PG が最近スクラビングされた場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.pg_not_deep_scrubbed:
PG が最近ディープスクラビングされた場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.cache_pool_near_full:
キャッシュプールがまったくフルでない場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.too_few_pgs:
PG の数が最小しきい値を上回る場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.too_many_pgs:
PG の数が最大しきい値を下回る場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.object_unfound:
すべてのオブジェクトが見つかる場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.request_slow:
リクエストが通常の時間で処理されている場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

ceph.request_stuck:
リクエストが通常の時間で処理されている場合は、OK を返します。それ以外の場合は、重大度が HEALTH_WARN なら WARNING、それ以外なら CRITICAL を返します。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。

その他の参考資料