Supported OS Linux Windows Mac OS

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

概要

Redis をデータベース、キャッシュ、メッセージキューとして使用しているかどうかにかかわらず、このインテグレーションは、Redis サーバー、クラウドサービス、およびそれらが提供するインフラストラクチャーの一部の問題を追跡します。Datadog Agent の Redis チェックを使用して、以下に関連するメトリクスを収集します。

  • パフォーマンス
  • メモリ使用量
  • ブロックされたクライアント
  • 二次接続
  • ディスクの永続性
  • キーの期限切れとエビクション
  • その他多数

セットアップ

インストール

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

構成

ホスト

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

メトリクスの収集
  1. Agent のコンフィギュレーションディレクトリのルートにある conf.d/ フォルダーの redisdb.d/conf.yaml ファイルを編集します。以下のパラメーターは、更新が必要な場合があります。使用可能なすべてのコンフィギュレーションオプションの詳細については、redisdb.d/conf.yaml のサンプルを参照してください。

    init_config:
    instances:
      ## @param host - string - required
      ## Enter the host to connect to.
      - host: localhost
        ## @param port - integer - required
        ## Enter the port of the host to connect to.
        port: 6379
    
        ## @param username - string - optional
        ## The username to use for the connection. Redis 6+ only.
        #
        # username: <USERNAME>
    
        ## @param password - string - optional
        ## The password to use for the connection.
        #
        # password: <PASSWORD>
    
  2. Redis 6+ と ACL を使用する場合、少なくともデータベースレベルの DB Viewer 権限、クラスター環境で運用する場合は Cluster Viewer 権限、および +config|get +info +slowlog|get ACL ルールが必要であることを確認してください。詳しくは、データベースアクセス制御を参照してください。

  3. Agent を再起動します

ログ収集

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

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

    logs_enabled: true
    
  2. redisdb.d/conf.yaml の下部にある、次の構成ブロックのコメントを解除して編集します。

    logs:
      - type: file
        path: /var/log/redis_6379.log
        source: redis
        service: myapplication
    

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

  3. Agent を再起動します

トレースの収集

Datadog APM は、Redis と統合して分散システム全体のトレースを確認します。Datadog Agent v6 以降では、トレースの収集はデフォルトで有効化されています。トレースの収集を開始するには、以下の手順に従います。

  1. Datadog でトレースの収集を有効にします
  2. Redis へのリクエストを作成するアプリケーションをインスツルメントします

Docker

コンテナで実行中の Agent に対してこのチェックを構成するには:

メトリクスの収集

アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。

LABEL "com.datadoghq.ad.check_names"='["redisdb"]'
LABEL "com.datadoghq.ad.init_configs"='[{}]'
LABEL "com.datadoghq.ad.instances"='[{"host":"%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}]'

: パスワードがプレーンテキストで保存されることを避けるため、"%%env_<ENV_VAR>%%" テンプレート変数ロジックが使用されています。そのため、REDIS_PASSWORD 環境変数は Agent コンテナに設定される必要があります。詳細は、オートディスカバリーのテンプレート変数ドキュメントをご参照ください。または、Agent で secrets パッケージを利用してシークレット管理バックエンド(HashiCorp Vault または AWS Secrets Manager)と動作することも可能です。

ログ収集

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

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

次に、ログインテグレーションを Docker ラベルとして設定します。

LABEL "com.datadoghq.ad.logs"='[{"source":"redis","service":"<YOUR_APP_NAME>"}]'
トレースの収集

コンテナ化されたアプリケーションの APM は、Agent v6 以降でサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。

Agent コンテナで必要な環境変数

パラメーター
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

利用可能な環境変数およびコンフィギュレーションの全リストについては、Docker アプリケーションのトレース を参照してください。

次に、Redis にリクエストを送信するアプリケーションのコンテナをインスツルメントし、Agent のコンテナ名に DD_AGENT_HOST を設定します。

Kubernetes

このチェックを、Kubernetes で実行している Agent に構成します。

メトリクスの収集

メトリクスを収集するには、オートディスカバリーテンプレートに以下のパラメーターと値を設定します。これは、Redis ポッドの Kubernetes アノテーション (下記参照) またはローカルファイル、ConfigMap、キーバリューストア、Datadog Operator マニフェスト、または Helm チャートを使用して行うことができます。

パラメーター
<INTEGRATION_NAME>["redisdb"]
<INIT_CONFIG>[{}]
<INSTANCE_CONFIG>[{"host": "%%host%%","port":"6379","password":"%%env_REDIS_PASSWORD%%"}]

Annotations v1 (Datadog Agent < v7.36 向け)

apiVersion: v1
kind: Pod
metadata:
  name: redis
  annotations:
    ad.datadoghq.com/redis.check_names: '["redisdb"]'
    ad.datadoghq.com/redis.init_configs: '[{}]'
    ad.datadoghq.com/redis.instances: |
      [
        {
          "host": "%%host%%",
          "port":"6379",
          "password":"%%env_REDIS_PASSWORD%%"
        }
      ]      
  labels:
    name: redis
spec:
  containers:
    - name: redis
      image: redis:latest
      ports:
        - containerPort: 6379

Annotations v2 (Datadog Agent v7.36+ 向け)

apiVersion: v1
kind: Pod
metadata:
  name: redis
  annotations:
    ad.datadoghq.com/redis.checks: |
      {
        "redisdb": {
          "init_config": {},
          "instances": [
            {
              "host": "%%host%%",
              "port":"6379",
              "password":"%%env_REDIS_PASSWORD%%"
            }
          ]
        }
      }      
  labels:
    name: redis
spec:
  containers:
    - name: redis
      image: redis:latest
      ports:
        - containerPort: 6379

: パスワードがプレーンテキストで保存されることを避けるため、"%%env_<ENV_VAR>%%" テンプレート変数ロジックが使用されています。そのため、REDIS_PASSWORD 環境変数は Agent コンテナに設定される必要があります。詳細は、オートディスカバリーのテンプレート変数ドキュメントをご参照ください。または、Agent で secrets パッケージを利用してシークレット管理バックエンド(HashiCorp Vault または AWS Secrets Manager)と動作することも可能です。

ログ収集

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

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

次に、オートディスカバリーテンプレートに以下のパラメーターを設定します。これは、Redis ポッドの Kubernetes アノテーション (下記参照) またはローカルファイル、ConfigMap、キーバリューストア、Datadog Operator マニファスト、または Helm チャートを使用して行うことができます。

パラメーター
<LOG_CONFIG>[{"source":"redis","service":"<YOUR_APP_NAME>"}]

Annotations v1/v2

apiVersion: v1
kind: Pod
metadata:
  name: redis
  annotations:
    ad.datadoghq.com/redis.logs: '[{"source":"redis","service":"<YOUR_APP_NAME>"}]'
  labels:
    name: redis
spec:
  containers:
    - name: redis
      image: redis:latest
      ports:
        - containerPort: 6379
トレースの収集

コンテナ化されたアプリケーションの APM は、Agent v6 以降を実行するホストでサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。

Agent コンテナで必要な環境変数

パラメーター
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

利用可能な環境変数とコンフィギュレーションの完全なリストについては、Kubernetes アプリケーションのトレースおよび Kubernetes Daemon のセットアップを参照してください。

そして、Redis へのリクエストを作成するアプリケーションコンテナをインスツルメントします

ECS

このチェックを、ECS で実行している Agent に構成するには:

メトリクスの収集

アプリケーションのコンテナで、オートディスカバリーのインテグレーションテンプレートを Docker ラベルとして設定します。

{
  "containerDefinitions": [{
    "name": "redis",
    "image": "redis:latest",
    "dockerLabels": {
      "com.datadoghq.ad.check_names": "[\"redisdb\"]",
      "com.datadoghq.ad.init_configs": "[{}]",
      "com.datadoghq.ad.instances": "[{\"host\":\"%%host%%\",\"port\":\"6379\",\"password\":\"%%env_REDIS_PASSWORD%%\"}]"
    }
  }]
}

: パスワードがプレーンテキストで保存されることを避けるため、"%%env_<ENV_VAR>%%" テンプレート変数ロジックが使用されています。そのため、REDIS_PASSWORD 環境変数は Agent コンテナに設定される必要があります。詳細は、オートディスカバリーのテンプレート変数ドキュメントをご参照ください。または、Agent で secrets パッケージを利用してシークレット管理バックエンド(HashiCorp Vault または AWS Secrets Manager)と動作することも可能です。

ログ収集

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

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

次に、ログインテグレーションを Docker ラベルとして設定します。

{
  "containerDefinitions": [{
    "name": "redis",
    "image": "redis:latest",
    "dockerLabels": {
      "com.datadoghq.ad.logs": "[{\"source\":\"redis\",\"service\":\"<YOUR_APP_NAME>\"}]"
    }
  }]
}
トレースの収集

コンテナ化されたアプリケーションの APM は、Agent v6 以降でサポートされていますが、トレースの収集を開始するには、追加のコンフィギュレーションが必要です。

Agent コンテナで必要な環境変数

パラメーター
<DD_API_KEY>api_key
<DD_APM_ENABLED>true
<DD_APM_NON_LOCAL_TRAFFIC>true

利用可能な環境変数およびコンフィギュレーションの全リストについては、Docker アプリケーションのトレース を参照してください。

次に、Redis にリクエストを送信するアプリケーションのコンテナをインスツルメントし、 EC2 プライベート IP アドレスDD_AGENT_HOST を設定します。

検証

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

収集データ

メトリクス

イベント

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

サービスチェック

トラブルシューティング

Agent が接続できない

    redisdb
    -------
      - instance #0 [ERROR]: 'Error 111 connecting to localhost:6379. Connection refused.'
      - Collected 0 metrics, 0 events & 1 service check

redisdb.yaml 内の接続情報が正しいかどうかをチェックしてください。

Agent を認証できない

    redisdb
    -------
      - instance #0 [ERROR]: 'NOAUTH Authentication required.'
      - Collected 0 metrics, 0 events & 1 service check

redisdb.yamlpassword を設定してください。

その他の参考資料

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

PREVIEWING: may/embedded-workflows