HDFS DataNode インテグレーション

HDFS ダッシュボード

概要

HDFS DataNode ごとにディスク使用率や失敗したボリュームを追跡できます。この Agent チェックは、これらのメトリクスのほかに、ブロック関連やキャッシュ関連のメトリクスも収集します。

このチェック (hdfs_datanode) と、これと対応するチェック (hdfs_namenode) の 2 つを使用してください。以前の兼用型のチェック (hdfs) は非推奨になりました。

セットアップ

ホストで実行されている Agent 用にこのチェックをインストールおよび構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照してこの手順を行ってください。

インストール

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

コンフィグレーション

ノードを準備する

  1. Agent は、DataNode の JMX リモートインターフェイスからメトリクスを収集します。このインターフェイスはデフォルトでは無効になっています。hadoop-env.sh (通常は $HADOOP_HOME/conf にあります) で以下のオプションを設定して、これを有効にしてください。

    export HADOOP_DATANODE_OPTS="-Dcom.sun.management.jmxremote
      -Dcom.sun.management.jmxremote.authenticate=false
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.port=50075 $HADOOP_DATANODE_OPTS"
    
  2. DataNode プロセスを再起動すると、JMX インターフェイスが有効になります。

Agent の接続

ホスト

ホストで実行中の Agent に対してこのチェックを構成するには:

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

    init_config:
    
    instances:
      ## @param hdfs_datanode_jmx_uri - string - required
      ## The HDFS DataNode check retrieves metrics from the HDFS DataNode's JMX
      ## interface via HTTP(S) (not a JMX remote connection). This check must be installed on a HDFS DataNode. The HDFS
      ## DataNode JMX URI is composed of the DataNode's hostname and port.
      ##
      ## The hostname and port can be found in the hdfs-site.xml conf file under
      ## the property dfs.datanode.http.address
      ## https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
      #
      - hdfs_datanode_jmx_uri: http://localhost:50075
    
  2. Agent を再起動します

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

パラメーター
<インテグレーション名>hdfs_datanode
<初期コンフィギュレーション>空白または {}
<インスタンスコンフィギュレーション>{"hdfs_datanode_jmx_uri": "http://%%host%%:50075"}

ログの収集

Agent 6.0 以上で使用可能

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

      logs_enabled: true
    
  2. DataNode のログの収集を開始するには、次の構成ブロックを hdfs_datanode.d/conf.yaml ファイルに追加します。

      logs:
        - type: file
          path: /var/log/hadoop-hdfs/*.log
          source: hdfs_datanode
          service: <SERVICE_NAME>
    

    path パラメーターと service パラメーターの値を変更し、環境に合わせて構成します。

  3. Agent を再起動します

検証

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

収集データ

メトリクス

hdfs.datanode.dfs_remaining
(gauge)
The remaining disk space left in bytes
Shown as byte
hdfs.datanode.dfs_capacity
(gauge)
Disk capacity in bytes
Shown as byte
hdfs.datanode.dfs_used
(gauge)
Disk usage in bytes
Shown as byte
hdfs.datanode.cache_capacity
(gauge)
Cache capacity in bytes
Shown as byte
hdfs.datanode.cache_used
(gauge)
Cache used in bytes
Shown as byte
hdfs.datanode.num_failed_volumes
(gauge)
Number of failed volumes
hdfs.datanode.last_volume_failure_date
(gauge)
The date/time of the last volume failure in milliseconds since epoch
Shown as millisecond
hdfs.datanode.estimated_capacity_lost_total
(gauge)
The estimated capacity lost in bytes
Shown as byte
hdfs.datanode.num_blocks_cached
(gauge)
The number of blocks cached
Shown as block
hdfs.datanode.num_blocks_failed_to_cache
(gauge)
The number of blocks that failed to cache
Shown as block
hdfs.datanode.num_blocks_failed_to_uncache
(gauge)
The number of failed blocks to remove from cache
Shown as block

イベント

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

サービスのチェック

hdfs.datanode.jmx.can_connect
Returns CRITICAL if the Agent cannot connect to the DataNode’s JMX interface for any reason. Returns OK otherwise.
Statuses: ok, critical

トラブルシューティング

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

その他の参考資料

HDFS NameNode インテグレーション

HDFS ダッシュボード

概要

プライマリおよびスタンバイ HDFS NameNode を監視することで、クラスターが不安定な状態に陥っている場合、NameNode が 1 つしか残っていない場合、クラスターに容量を追加する必要がある場合などに気付くことができます。この Agent チェックは、残存容量、破損/欠落したブロック、停止した DataNode、ファイルシステムの負荷、レプリケーションが不十分なブロック、合計ボリューム障害数 (全 DataNode の合計) などに関するメトリクスを収集します。

このチェック (hdfs_namenode) と、これと対応するチェック (hdfs_datanode) の 2 つを使用してください。以前の兼用型のチェック (hdfs) は非推奨になりました。

セットアップ

ホストで実行されている Agent 用にこのチェックをインストールおよび構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照してこの手順を行ってください。

インストール

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

コンフィギュレーション

ノードを準備する

  1. Agent は、NameNode の JMX リモートインターフェイスからメトリクスを収集します。このインターフェイスはデフォルトでは無効になっています。hadoop-env.sh (通常は $HADOOP_HOME/conf にあります) で以下のオプションを設定して、これを有効にしてください。

    export HADOOP_NAMENODE_OPTS="-Dcom.sun.management.jmxremote
      -Dcom.sun.management.jmxremote.authenticate=false
      -Dcom.sun.management.jmxremote.ssl=false
      -Dcom.sun.management.jmxremote.port=50070 $HADOOP_NAMENODE_OPTS"
    
  2. NameNode プロセスを再起動すると、JMX インターフェイスが有効になります。

Agent の接続

ホスト

ホストで実行中の Agent に対してこのチェックを構成するには:

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

    init_config:
    
    instances:
      ## @param hdfs_namenode_jmx_uri - string - required
      ## The HDFS NameNode check retrieves metrics from the HDFS NameNode's JMX
      ## interface via HTTP(S) (not a JMX remote connection). This check must be installed on
      ## a HDFS NameNode. The HDFS NameNode JMX URI is composed of the NameNode's hostname and port.
      ##
      ## The hostname and port can be found in the hdfs-site.xml conf file under
      ## the property dfs.namenode.http-address
      ## https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
      #
      - hdfs_namenode_jmx_uri: http://localhost:50070
    
  2. Agent を再起動します

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

パラメーター
<インテグレーション名>hdfs_namenode
<初期コンフィギュレーション>空白または {}
<インスタンスコンフィギュレーション>{"hdfs_namenode_jmx_uri": "https://%%host%%:50070"}

ログの収集

Agent 6.0 以上で使用可能

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

      logs_enabled: true
    
  2. NameNode のログの収集を開始するには、次の構成ブロックを hdfs_namenode.d/conf.yaml ファイルに追加します。

      logs:
        - type: file
          path: /var/log/hadoop-hdfs/*.log
          source: hdfs_namenode
          service: <SERVICE_NAME>
    

    path パラメーターと service パラメーターの値を変更し、環境に合わせて構成します。

  3. Agent を再起動します

検証

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

収集データ

メトリクス

hdfs.namenode.capacity_total
(gauge)
Total disk capacity in bytes
Shown as byte
hdfs.namenode.capacity_used
(gauge)
Disk usage in bytes
Shown as byte
hdfs.namenode.capacity_remaining
(gauge)
Remaining disk space left in bytes
Shown as byte
hdfs.namenode.total_load
(gauge)
Total load on the file system
hdfs.namenode.fs_lock_queue_length
(gauge)
Lock queue length
hdfs.namenode.blocks_total
(gauge)
Total number of blocks
Shown as block
hdfs.namenode.max_objects
(gauge)
Maximum number of files HDFS supports
Shown as object
hdfs.namenode.files_total
(gauge)
Total number of files
Shown as file
hdfs.namenode.pending_replication_blocks
(gauge)
Number of blocks pending replication
Shown as block
hdfs.namenode.under_replicated_blocks
(gauge)
Number of under replicated blocks
Shown as block
hdfs.namenode.scheduled_replication_blocks
(gauge)
Number of blocks scheduled for replication
Shown as block
hdfs.namenode.pending_deletion_blocks
(gauge)
Number of pending deletion blocks
Shown as block
hdfs.namenode.num_live_data_nodes
(gauge)
Total number of live data nodes
Shown as node
hdfs.namenode.num_dead_data_nodes
(gauge)
Total number of dead data nodes
Shown as node
hdfs.namenode.num_decom_live_data_nodes
(gauge)
Number of decommissioning live data nodes
Shown as node
hdfs.namenode.num_decom_dead_data_nodes
(gauge)
Number of decommissioning dead data nodes
Shown as node
hdfs.namenode.volume_failures_total
(gauge)
Total volume failures
hdfs.namenode.estimated_capacity_lost_total
(gauge)
Estimated capacity lost in bytes
Shown as byte
hdfs.namenode.num_decommissioning_data_nodes
(gauge)
Number of decommissioning data nodes
Shown as node
hdfs.namenode.num_stale_data_nodes
(gauge)
Number of stale data nodes
Shown as node
hdfs.namenode.num_stale_storages
(gauge)
Number of stale storages
hdfs.namenode.missing_blocks
(gauge)
Number of missing blocks
Shown as block
hdfs.namenode.corrupt_blocks
(gauge)
Number of corrupt blocks
Shown as block

イベント

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

サービスのチェック

hdfs.namenode.jmx.can_connect
Returns CRITICAL if the Agent cannot connect to the NameNode’s JMX interface for any reason. Returns OK otherwise.
Statuses: ok, critical

トラブルシューティング

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

その他の参考資料