Supported OS Linux Windows Mac OS

インテグレーションバージョン2.6.1

Consul ダッシュ

概要

Datadog Agent は、以下のような多くのメトリクスを Consul ノードから収集します。

  • Consul ピアの合計数
  • サービス健全性 - 特定のサービスに対して、UP、PASSING、WARNING、CRITICAL なノードの数
  • ノード健全性 - 特定のノードに対して、UP、PASSING、WARNING、CRITICAL なサービスの数
  • ネットワーク座標系 - データセンター間およびデータセンター内のレイテンシー

Consul Agent は DogStatsD を使ってさらに多くのメトリクスを提供できます。これらは、Consul に依存するサービスではなく、Consul 自体の内部健全性に関連するメトリクスです。以下のメトリクスがあります。

  • Serf のイベントとメンバーフラップ
  • Raft プロトコル
  • DNS パフォーマンス

その他にも多数あります。

メトリクスに加えて、Datadog Agent は Consul の健全性チェックごとにサービスチェックを送信し、新しいリーダー選出ごとにイベントを送信します。

セットアップ

インストール

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

構成

ホスト

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

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

    init_config:
    
    instances:
      ## @param url - string - required
      ## Where your Consul HTTP server lives,
      ## point the URL at the leader to get metrics about your Consul cluster.
      ## Use HTTPS instead of HTTP if your Consul setup is configured to do so.
      #
      - url: http://localhost:8500
    
  2. Agent を再起動します

OpenMetrics

オプションで、use_prometheus_endpoint コンフィギュレーションオプションを有効にして、Consul Prometheus エンドポイントから追加のメトリクスセットを取得できます。

: DogStatsD または Prometheus メソッドを使用し、同じインスタンスに両方を有効化しないようご注意ください。

  1. Consul を構成し、Prometheus のエンドポイントにメトリクスを公開します。prometheus_retention_time を、メインの Consul コンフィギュレーションファイルの最上位レベルの telemetry キーにネストするよう設定します。

    {
      ...
      "telemetry": {
        "prometheus_retention_time": "360h"
      },
      ...
    }
    
  2. Prometheus エンドポイントの使用を開始するには、Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーで consul.d/conf.yaml ファイルを編集します。

    instances:
        - url: <EXAMPLE>
          use_prometheus_endpoint: true
    
  3. Agent を再起動します

DogStatsD

Prometheus エンドポイントを使用する代わりに、DogStatsD を介して同じ追加メトリクスのセットを Agent に送信するように Consul を構成できます。

  1. Consul のメインのコンフィギュレーションファイルで、最上位レベルの telemetry キーの下にネストした dogstatsd_addr を追加することで、DogStatsD メトリクスを送信するよう Consul を構成します。

    {
      ...
      "telemetry": {
        "dogstatsd_addr": "127.0.0.1:8125"
      },
      ...
    }
    
  2. メトリクスが正しくタグ付けされるよう下記のコンフィギュレーションを追加し、Datadog Agent のメインコンフィギュレーションファイルである datadog.yaml を更新します。

    # dogstatsd_mapper_cache_size: 1000  # default to 1000
    dogstatsd_mapper_profiles:
      - name: consul
        prefix: "consul."
        mappings:
          - match: 'consul\.http\.([a-zA-Z]+)\.(.*)'
            match_type: "regex"
            name: "consul.http.request"
            tags:
              method: "$1"
              path: "$2"
          - match: 'consul\.raft\.replication\.appendEntries\.logs\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.appendEntries.logs"
            tags:
              peer_id: "$1"
          - match: 'consul\.raft\.replication\.appendEntries\.rpc\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.appendEntries.rpc"
            tags:
              peer_id: "$1"
          - match: 'consul\.raft\.replication\.heartbeat\.([0-9a-f-]+)'
            match_type: "regex"
            name: "consul.raft.replication.heartbeat"
            tags:
              peer_id: "$1"
    
  3. Agent を再起動します

ログ収集

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

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

    logs_enabled: true
    
  2. consul.yaml ファイルでこのコンフィギュレーションブロックを編集して、Consul ログを収集します。

    logs:
      - type: file
        path: /var/log/consul_server.log
        source: consul
        service: myservice
    

    path パラメーターと service パラメーターの値を変更し、環境に合わせて構成してください。 使用可能なすべてのコンフィギュレーションオプションについては、サンプル consul.d/conf.yaml を参照してください。

  3. Agent を再起動します

コンテナ化

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

メトリクスの収集
パラメーター
<INTEGRATION_NAME>consul
<INIT_CONFIG>空白または {}
<INSTANCE_CONFIG>{"url": "https://%%host%%:8500"}
ログ収集

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

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集を参照してください。

パラメーター
<LOG_CONFIG>{"source": "consul", "service": "<サービス名>"}

検証

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

: Consul ノードでデバッグログが有効になっている場合は、Datadog Agent の通常のポーリングが Consul ログに以下を表示します。

2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/leader (59.344us) from=127.0.0.1:53768
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/status/peers (62.678us) from=127.0.0.1:53770
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/state/any (106.725us) from=127.0.0.1:53772
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/catalog/services (79.657us) from=127.0.0.1:53774
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/health/service/consul (153.917us) from=127.0.0.1:53776
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/datacenters (71.778us) from=127.0.0.1:53778
2017/03/27 21:38:12 [DEBUG] http: Request GET /v1/coordinate/nodes (84.95us) from=127.0.0.1:53780

Consul Agent から DogStatsD へ

netstat を使用して、Consul のメトリクスも送信されていることを確認します。

$ sudo netstat -nup | grep "127.0.0.1:8125.*ESTABLISHED"
udp        0      0 127.0.0.1:53874         127.0.0.1:8125          ESTABLISHED 23176/consul

収集データ

メトリクス

Consul Agent が DogStatsD に送信するメトリクスの詳細については、Consul の Telemetry に関するドキュメントを参照してください。

ネットワークレイテンシーメトリクスの計算方法については、Consul のネットワーク座標系に関するドキュメントを参照してください。

イベント

consul.new_leader:
Datadog Agent は、Consul クラスターが新しいリーダーを選出すると、prev_consul_leadercurr_consul_leader、および consul_datacenter のタグを付けてイベントを送信します。

サービスチェック

トラブルシューティング

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

その他の参考資料

お役に立つドキュメント、リンクや記事:

PREVIEWING: may/embedded-workflows