すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:Alibaba Cloud Elasticsearch と Rsbeat を使用した Redis スローログのリアルタイム分析

最終更新日:Aug 20, 2026

Redis で過剰な、または実行時間の長い (20 秒など) スロークエリが発生すると、シングルスレッドの操作キューがブロックされ、サービスが利用できなくなる可能性があります。Alibaba Cloud Elasticsearch と Rsbeat を使用して Redis のスローログをリアルタイムで収集・分析することで、パフォーマンスの問題を迅速に検出し、解決できます。

背景情報

Rsbeat は Redis のスローログを収集し、Elasticsearch に送信して Kibana コンソールで可視化・分析します。このトピックでは、以下の用語が使用されます。

  • Elasticsearch:Lucene ベースの分散型リアルタイム検索・分析エンジンで、Apache License の下でリリースされています。これにより、大規模なデータセットをほぼリアルタイムで保存、クエリ、分析できます。

    Alibaba Cloud Elasticsearch は、Security、Machine Learning、Graph、Application Performance Monitoring (APM) などのオープンソース Elasticsearch の機能と互換性があります。バージョン 5.5.3、6.3.2、6.7.0、6.8.0、7.4.0 などがリリースされています。商用プラグイン X-Pack をサポートし、エンタープライズレベルの権限管理、セキュリティのモニタリングとアラート、自動レポート機能を提供します。この例では、Alibaba Cloud Elasticsearch を使用します。詳細については、「Alibaba Cloud Elasticsearch とは」をご参照ください。

  • Rsbeat:Redis のスローログを収集・分析するために使用されるデータシッパーです。詳細については、「Rsbeat 公式ドキュメント」をご参照ください。

  • Redis:オープンソースのインメモリデータ構造ストアです。データベース、キャッシュ、メッセージングミドルウェアとして使用できます。詳細については、「Redis 公式ドキュメント」をご参照ください。

    ApsaraDB for Redis は、ネイティブ Redis プロトコルと互換性があり、高可用性ホットスタンバイアーキテクチャを備えたハイブリッドメモリディスクストレージをサポートし、高パフォーマンスの読み書き操作の要件を満たすように拡張できます。この例では、ApsaraDB for Redis を使用します。詳細については、「ApsaraDB for Redis とは」をご参照ください。

操作手順

  1. 事前準備

    同一の VPC (Virtual Private Cloud) 内に Alibaba Cloud Elasticsearch クラスター、ApsaraDB for Redis インスタンス、および Elastic Compute Service (ECS) インスタンスを作成します。

  2. ステップ 1:ApsaraDB for Redis インスタンスのスロークエリパラメーターの設定

    要件に応じて、Redis スローログを生成する条件を設定し、記録できるスローログの最大数を指定します。

  3. ステップ 2:Rsbeat のインストールと設定

    ECS インスタンスに Rsbeat をインストールし、Rsbeat 設定ファイルで ApsaraDB for Redis インスタンスと Alibaba Cloud Elasticsearch クラスターを指定します。

  4. ステップ 3:Kibana コンソールでのグラフを使用した Redis スローログの分析

    Alibaba Cloud Elasticsearch クラスターの Kibana コンソールで Redis スローログの詳細を表示し、ビジネス要件に基づいてログを分析します。

事前準備

  1. Alibaba Cloud Elasticsearch クラスターを作成し、クラスターの自動インデックス作成機能を有効にします。

    詳細については、「Alibaba Cloud Elasticsearch クラスターの作成」および「YML ファイルの設定」をご参照ください。この例では、Standard Edition の Elasticsearch V6.7 クラスターを使用します。

  2. ApsaraDB for Redis インスタンスを作成します。

    詳細については、「ステップ 1:ApsaraDB for Redis インスタンスの作成」をご参照ください。この例では、Community Edition の ApsaraDB for Redis V5.0 インスタンスを使用します。このインスタンスは Alibaba Cloud Elasticsearch クラスターと同じ VPC 内に存在します。これにより、内部ネットワーク経由で Elasticsearch クラスターにアクセスできます。

  3. ECS インスタンスを作成します。

    詳細については、「ウィザードを使用したインスタンスの作成」をご参照ください。この例では、64 ビット CentOS 7.6 のイメージを実行する ECS インスタンスを使用します。このインスタンスは、ApsaraDB for Redis インスタンスおよび Alibaba Cloud Elasticsearch クラスターと同じ VPC 内に存在します。

  4. ApsaraDB for Redis インスタンスへのアクセスのための IP アドレスホワイトリストを設定します。

    ECS インスタンスのプライベート IP アドレスを ApsaraDB for Redis インスタンスの IP アドレスホワイトリストに追加します。詳細については、「ホワイトリストの設定」をご参照ください。

ステップ 1:ApsaraDB for Redis インスタンスのスロークエリパラメーターの設定

  1. ApsaraDB for Redis コンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. クラスター ページで、ターゲットインスタンスの ID をクリックします。

  4. 左側のナビゲーションウィンドウで、パラメーターの設定 をクリックします。

  5. [システムパラメーター] タブで、slowlog-log-slower-than と slowlog-max-len パラメーターを見つけます。次に、要件に応じてこれらのパラメーターを変更します。

    パラメーター

    説明

    例

    slowlog-log-slower-than

    コマンドのランタイムがこのパラメーターの値を超えると、そのコマンドはスロークエリとして定義され、スローログとして記録されます。ランタイムにはキューイングに費やされた時間は含まれません。単位:マイクロ秒。デフォルト値:10000 (10 ミリ秒)。

    重要

    このパラメーターに負の数を設定すると、ApsaraDB for Redis はスロークエリをスローログとして記録しません。このパラメーターを 0 に設定すると、ApsaraDB for Redis はすべてのコマンドを記録します。

    この例では、このパラメーターは 20000 に設定されています。この値は、ランタイムが 20 ミリ秒を超えるコマンドがスローログとして記録されることを示します。

    slowlog-max-len

    スローログとして記録できるスロークエリコマンドの最大数。記録されたコマンドの数がこのパラメーターの値を超えると、ApsaraDB for Redis は最も古いスローログを削除します。

    この例では、このパラメーターは 100 に設定されています。この値は、ApsaraDB for Redis が最新の 100 件のスロークエリコマンドをスローログとして記録することを示します。

ステップ 2:Rsbeat のインストールと設定

  1. ECS インスタンスに接続します。

    詳細については、「ECS インスタンスへの接続」をご参照ください。

  2. Rsbeat のパッケージをダウンロードして解凍します。

    この例では、Rsbeat 5.3.2 を使用します。

    wget https://github.com/Yourdream/rsbeat/archive/master.zip
    unzip master.zip
  3. Rsbeat の設定を変更します。

    1. 次のコマンドを実行して rsbeat.yml ファイルを開きます。

      cd rsbeat-master
      vim rsbeat.yml
    2. 以下の指示に基づいて rsbeat および output.elasticsearch セクションの設定を変更し、変更を保存します。

      以下は rsbeat.yml 設定の例です。

      ################################ Rsbeat ######################################
      
      rsbeat:
        # Defines how often an event is sent to the output
        period: 1s
        redis: ["r-xxx.redis.rds.aliyuncs.com:6379"]
        slowerThan: 100
      
      #================================ General =====================================
      
      # The name of the shipper that publishes the network data. It can be used to group
      # all the transactions sent by a single shipper in the web interface.
      #name:
      
      # The tags of the shipper are included in their own field with each
      # transaction published.
      #tags: ["service-X", "web-tier"]
      
      # Optional fields that you can specify to add additional information to the
      # output.
      #fields:
      #  env: staging
      
      #============================== Outputs =======================================
      
      # Configure what outputs to use when sending the data collected by the beat.
      # Multiple outputs may be used.
      
      #-------------------------- Elasticsearch output ------------------------------
      output.elasticsearch:
        # Array of hosts to connect to.
        hosts: ["es-cn-xxx.elasticsearch.aliyuncs.com:9200"]
      
        # Optional protocol and basic auth credentials.
        #protocol: "https"
        username: "elastic"
        password: "xxx"
      
        # Overwrite existing template
        template.overwrite: true
      表 1. rsbeat セクションの設定

      パラメーター

      説明

      period

      Rsbeat が Redis スローログを Elasticsearch クラスターに送信する間隔。

      redis

      ApsaraDB for Redis インスタンスへの接続に使用されるエンドポイント。詳細については、「エンドポイントの表示」をご参照ください。

      重要

      ApsaraDB for Redis インスタンスへのアクセスに使用されるパスワードは、Rsbeat の設定ファイルには指定されていません。Rsbeat が ApsaraDB for Redis インスタンスにアクセスできるようにするには、エンドポイントを取得した後にパスワードなしのアクセスを有効にする必要があります。詳細については、「パスワードなしのアクセスを有効にする」をご参照ください。

      slowerThan

      config set slowlog-log-slower-than コマンドを Redis サーバーに送信するために必要な時間。単位:マイクロ秒。

      表 2. output.elasticsearch セクションの設定

      パラメーター

      説明

      hosts

      Elasticsearch クラスターへのアクセスに使用されるエンドポイント。エンドポイントは、Elasticsearch クラスターの [基本情報] ページで取得できます。詳細については、「クラスターの基本情報の表示」をご参照ください。

      username

      Elasticsearch クラスターへのアクセスに使用されるユーザー名。デフォルトのユーザー名は elastic です。

      password

      Elasticsearch クラスターへのアクセスに使用されるパスワード。パスワードは Elasticsearch クラスターの作成時に指定します。パスワードを忘れた場合は、リセットできます。パスワードのリセットに関する注意事項と手順の詳細については、「Elasticsearch クラスターのアクセスパスワードのリセット」をご参照ください。

      template.overwrite

      Rsbeat が作成したインデックステンプレートが、Elasticsearch クラスターのインデックステンプレートと同じ名前を持つ場合に、Elasticsearch クラスターのインデックステンプレートを上書きするかどうかを指定します。デフォルト値:true。

  4. Rsbeat サービスを開始します。

    ./rsbeat.linux.amd64 -c rsbeat.yml -e -d "*"

ステップ 3:Kibana コンソールでのグラフを使用した Redis スローログの分析

  1. Elasticsearch クラスターの Kibana コンソールにログインします。

    詳細については、「Kibana コンソールへのログイン」をご参照ください。

  2. インデックスパターンを作成します。

    1. 左側のナビゲーションウィンドウで、[Management] をクリックします。
    2. [Kibana] セクションで、[Index Patterns] をクリックします。
    3. [Create index pattern] をクリックします。
    4. 表示されたセクションで、[Index pattern] フィールドにインデックスパターン名を入力し、[Next step] をクリックします。

    5. [Time Filter field name] を指定します。このトピックでは、このパラメーターを [@timestamp] に設定します。
    6. [Create index pattern] をクリックします。
  3. Redis スローログの詳細を表示します。

    1. 左側のナビゲーションウィンドウで、[Discover] をクリックします。

    2. [Discover] ページの左側で、[Add a filter] の下のドロップダウンリストから rsbeat-* を選択します。

    3. ページの右上隅で時間範囲を選択し、その時間範囲内の Redis スローログの詳細を表示します。

      [Discover] ページで、インデックスパターンとして rsbeat-* を選択し、時間範囲を [Last 24 hours] に設定して、その期間のスローログレコードを表示します。ページには、一致した結果の数、時間分布を示すヒストグラム、および cmd、ipPort、slowId、key、duration などのフィールドを含むログエントリのリストが表示されます。

  4. Redis スローログの数が最も多い上位 10 件のキーを記録し、降順に並べ替えます。

    1. 左側のナビゲーションウィンドウで、[Visualize] をクリックします。

    2. [Visualize] ページで、添加图标 アイコンをクリックします。

    3. [New Visualization] ダイアログボックスで、[Pie] をクリックします。

    4. [From a New Search, Select Index] セクションで、rsbeat-* をクリックします。

    5. [Metrics] および [Buckets] セクションでパラメーターを設定します。

      メトリクス設定:

      • [Slice Size]:[Aggregation] を [Count] に設定し、[Custom Label] を slowlog count に設定します。

      バケット設定:

      • [Split Slices]:[Aggregation] を [Terms] に設定し、[Field] を key に設定し、[Order By] を [metric: slowlog count] に設定し、[Order] を [Descend] に設定し、[Size] を 10 に設定します。

    6. 运行图标 アイコンをクリックして結果を表示します。

      统计结果

      説明

      Kibana コンソールの使用上の注意については、「Kibana ユーザーガイド」をご参照ください。