PrometheusとDockerを使用したメトリクスのエクスポートと視覚化

DataStaxが提供する事前構成済みのDockerイメージを使用して、DSEクラスターのメトリクスのエクスポートと視覚化をすばやく開始します。

DSE Metrics Collectorの使用をすばやく開始するには、Dockerをダウンロードしてインストールします。これにより、DataStaxの事前構成済みダッシュボードを使用できるようになります。既に監視と視覚化のソリューションがある場合は、「Prometheusを使用したメトリクスの手動のエクスポートと視覚化」を参照してください。

警告: メトリクス・データの損失を防ぐには、このリポジトリで提供されているDockerの例を使用する前に、Prometheusのデフォルトのデータ保持期間とその調整方法を理解していることを確認してください。デフォルトでは、Prometheusは15日分のみのデータを保持するように構成されます。メトリクス・データの履歴をより長く保持する場合は、docker-compose.ymlを変更してPrometheusのランタイム・コマンド・ラインに--storage.tsdb.retentionフラグを追加します。環境に適した値を指定します。

始める前に

  1. 必要に応じて、DataStax Enterprise(DSE)6.7以降をダウンロードしてインストールします。
  2. Dockerをダウンロードしてインストールします。
  3. Docker Composeをダウンロードしてインストールします。
  4. GitHubからDSE Metrics Collectorダッシュボード・リポジトリを複製します。
注: DSEがインストールされていないノードには、Docker、Docker Compose、およびDSE Metrics Collectorダッシュボード・リポジトリをインストールする必要があります。

手順

  1. DSEクラスターでDSE Metrics Collectorの構成を確認します。
    dsetool insights_config --show_config
    {
      "mode" : "DISABLED",
      "config_refresh_interval_in_seconds" : 30,
      "metric_sampling_interval_in_seconds" : 30,
      "data_dir_max_size_in_mb" : 1024,
      "node_system_info_report_period" : "PT1H"
    }
  2. Prometheusサーバーを有効にするには、DSE Metrics Collectorが読み取るDataStax Enterprise(DSE)クラスターで構成ファイルを作成します。

    Lifecycle Manager(LCM)によって管理されるクラスターの場合、LCMを使用してPrometheusおよびその他のサポートされている管理ツールへメトリクス収集をエクスポートします。

    1. 以下のディレクトリーのいずれかでprometheus.confファイルを作成します。
      • tarボール:installation_location/resources/dse/collectd/etc/collectd
      • パッケージ:/etc/dse/collectd
      sudo touch prometheus.conf
      ヒント: /collectdディレクトリーが存在しない場合は、このディレクトリーを作成してからprometheus.confファイルを作成します。
    2. 以下のコードをprometheus.conf構成ファイルに追加して、保存します。
      vi prometheus.conf
      LoadPlugin write_prometheus
      
      <Plugin write_prometheus>
       Port “9103”
      </Plugin>
    3. クラスターの任意のノードで、DSE Metrics Collectorを無効にしてから再び有効にし、変更内容を伝播します。
      dsetool insights_config --mode DISABLED
      注: DSE Metrics Collectorを無効にする場合、クラスター全体に伝播するまでに最長で30秒かかる可能性があります。DSE Metrics Collectorを再び有効にするまで、短くとも30秒間待ってください。
      dsetool insights_config --mode ENABLED_WITH_LOCAL_STORAGE
  3. ノードが通常のポートだけでなくポート9103でリッスンしていることを確認します。
    netstat -lnt
    Active Internet connections (only servers)
    Proto Recv-Q Send-Q Local Address           Foreign Address     State
    tcp        0      0 10.200.176.166:9042     0.0.0.0:*           LISTEN
    tcp        0      0 0.0.0.0:22              0.0.0.0:*           LISTEN
    tcp        0      0 10.200.176.166:7000     0.0.0.0:*           LISTEN
    tcp        0      0 127.0.0.1:7199          0.0.0.0:*           LISTEN
    tcp        0      0 10.200.176.166:8609     0.0.0.0:*           LISTEN
    tcp        0      0 127.0.0.1:39940         0.0.0.0:*           LISTEN
    tcp6       0      0 :::9103                 :::*                LISTEN
    tcp6       0      0 10.200.176.166:61621    :::*                LISTEN
    tcp6       0      0 :::22                   :::*                LISTEN
    注: Prometheusを構成したが、ポート9103はリッスンしていない場合は、「libaioがインストールされていない場合のエラー・メッセージ(DSE 6.0および6.7)」を読み、libaioがインストールされていてEpollが機能していることを確認します。Epollが機能していない場合は、collectdデーモンは起動されません。
  4. DSE Metrics Collectorダッシュボード・リポジトリを複製したノードで/prometheusディレクトリーに移動し、tg_dse.jsonファイルを変更して、クラスター内の各ノードの IP アドレスを“targets”の下に含めます。IPアドレスのリストは、コンマ区切りであり、各IPアドレスは二重引用符で囲む必要があります。
    vi tg_dse.json
    [
      {
        "targets": [
          "10.100.110.96:9103",
          "10.100.100.95:9103",
          "10.100.100.97:9103"
        ]
      }
    ]
  5. DSE Metrics Collectorを含む複製ディレクトリーから、Dockerコンテナーを起動し、関連付けます。さらにこのコマンドは、含まれているPrometheusサーバーとGrafanaサーバーも起動します。
    docker-compose up
  6. DSE Metrics CollectorがメトリクスをレポートするPrometheusダッシュボードとGrafanaダッシュボードを表示します。
    1. ターゲットとして各DSEノードを表示するPrometheusダッシュボードを表示するには、ブラウザーを開き、http://localhost:9090/targetsに移動します。
    2. ローカルPrometheusデータ・ソースにリンクされている Grafanaダッシュボードを表示するには、ブラウザーを開き、http://localhost:3000/dashboardsに移動します。
  7. PrometheusとGrafanaのイメージのコンテナーIDを取得するために、すべてのDockerコンテナーの名前をリストします。
    docker ps -a
    CONTAINER ID        IMAGE                 COMMAND
    78d3324982ba        grafana/grafana       "/run.sh"
    aadc3d4ad1d1        prom/prometheus       "/bin/prometheus --c…"

タスクの結果

Grafanaダッシュボードには、定義されたクラスターのメトリクスが表示されます。