Redis

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Redis 統合では、パフォーマンスと使用状況に関連する指標を収集します。パフォーマンス指標は、CPU、メモリ、ネットワーク スループットの状況を表し、使用状況の指標はキー、コマンド、レプリケーションの状況を表します。この統合では、Redis ログも収集され、JSON ペイロードが生成されます。このプロセス中に、ロールとレベルのシンボルは、人が読める形式に変換されます。

Redis の詳細については、Redis のドキュメントをご覧ください。

前提条件

Redis テレメトリーを収集するには、Ops エージェントをインストールする必要があります。

  • 指標の場合は、バージョン 2.7.0 以降をインストールします。
  • ログの場合は、バージョン 2.5.0 以降をインストールします。

この統合は Redis バージョン 6.2 に対応しています。

Redis 用の Ops エージェントを構成する

Ops エージェントの構成のガイドに従って、Redis インスタンスからテレメトリーを収集するために必要な要素を追加し、エージェントを再起動します。

構成の例

次のコマンドは、Redis のテレメトリーを収集して取り込み、Ops エージェントを再起動するための構成を作成します。

# Configures Ops Agent to collect telemetry from the app and restart Ops Agent.

set -e

# Create a back up of the existing file so existing configurations are not lost.
sudo cp /etc/google-cloud-ops-agent/config.yaml /etc/google-cloud-ops-agent/config.yaml.bak

# Configure the Ops Agent.
sudo tee /etc/google-cloud-ops-agent/config.yaml > /dev/null << EOF
metrics:
  receivers:
    redis:
      type: redis
  service:
    pipelines:
      redis:
        receivers:
        - redis
logging:
  receivers:
    redis:
      type: redis
  service:
    pipelines:
      redis:
        receivers:
        - redis
EOF

sudo service google-cloud-ops-agent restart
sleep 60

ログの収集を構成する

Redis からログを取り込むには、Redis が生成するログのレシーバを作成し、新しいレシーバのパイプラインを作成する必要があります。

redis ログのレシーバを構成するには、次のフィールドを指定します。

項目 デフォルト 説明
exclude_paths include_paths の照合で除外するファイルシステム パスのパターンのリスト。
include_paths [/var/log/redis/redis-server.log, /var/log/redis_6379.log, /var/log/redis/redis.log, /var/log/redis/default.log, /var/log/redis/redis_6379.log] 各ファイルのテーリングで読み込むファイルシステムのパスのリスト。パスには /var/log/redis/*.log のように、ワイルドカード(*)を使用できます。
record_log_file_path false true に設定すると、ログレコードの取得元のファイルのパスが agent.googleapis.com/log_file_path ラベルの値として出力ログエントリに表示されます。ワイルドカードを使用する場合、レコードを取得したファイルのパスのみが記録されます。
type 値は、redis にする必要があります。
wildcard_refresh_interval 60s include_paths のワイルドカード ファイル パスの更新間隔。time.ParseDuration によって解析可能な時間として指定します(例: 30s または 2m)。このプロパティは、ログファイルのローテーションがデフォルトよりも短い間隔で実施され、ロギングのスループットが高い場合に有用な可能性があります。

ログの内容

logName は、構成で指定されたレシーバ ID から取得されます。LogEntry 内の詳細なフィールドは、次のとおりです。

redis ログの LogEntry には次のフィールドが含まれます。

フィールド タイプ 説明
jsonPayload.level 文字列 ログエントリ レベル
jsonPayload.message 文字列 ログ メッセージ(指定した場合の詳細なスタックトレースを含む)
jsonPayload.pid 数値 ログを発行するプロセス ID
jsonPayload.role 文字列 Redis ロール文字(sentinel、RDB/AOF_writing_child、slave、master)から変換
jsonPayload.roleChar 文字列 Redis ロール文字(X、C、S、M)
severity 文字列(LogSeverity ログエントリ レベル(変換済み)。

指標の収集を構成する

Redis から指標を取り込むには、Redis が生成する指標のレシーバを作成してから、新しいレシーバ用のパイプラインを作成する必要があります。

redis 指標のレシーバを構成するには、次のフィールドを指定します。

フィールド デフォルト 説明
address localhost:6379 Redis によって公開される URL。
ca_file CA 証明書のパス。クライアントとして、これによりサーバー証明書が検証されます。空の場合、レシーバはシステムルート CA を使用します。
cert_file mTLS で必要な接続に使用する TLS 証明書のパス。
collection_interval 60s 期間の値(例: 30s5m)。
insecure true セキュア TLS 接続を使用するかどうかを設定します。false に設定すると、TLS が有効になります。
insecure_skip_verify false 証明書の検証をスキップするかどうかを指定します。insecuretrue に設定されている場合、insecure_skip_verify 値は使用されません。
key_file mTLS で必要な接続に使用する TLS キーのパス。
password サーバーへの接続に使用するパスワード。
type 値は、redis にする必要があります。

モニタリング対象

次の表に、Ops エージェントが Redis インスタンスから収集する指標の一覧を示します。

指標タイプ
種類、タイプ
モニタリング対象リソース
ラベル
workload.googleapis.com/redis.clients.blocked
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.clients.connected
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.clients.max_input_buffer
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.clients.max_output_buffer
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.commands.processed
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.connections.received
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.connections.rejected
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.cpu.time
CUMULATIVEDOUBLE
gce_instance
state
workload.googleapis.com/redis.keys.evicted
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.keys.expired
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.keyspace.hits
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.keyspace.misses
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.latest_fork
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.memory.fragmentation_ratio
GAUGEDOUBLE
gce_instance
 
workload.googleapis.com/redis.memory.lua
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.memory.peak
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.memory.rss
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.memory.used
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.net.input
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.net.output
CUMULATIVEINT64
gce_instance
 
workload.googleapis.com/redis.rdb.changes_since_last_save
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.replication.backlog_first_byte_offset
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.replication.offset
GAUGEINT64
gce_instance
 
workload.googleapis.com/redis.slaves.connected
GAUGEINT64
gce_instance
 

ダッシュボードの例

Redis 指標を表示するには、グラフまたはダッシュボードが構成されている必要があります。Cloud Monitoring には、統合用のサンプル ダッシュボードのライブラリが用意されています。ここには、事前に構成されたグラフが含まれています。これらのダッシュボードのインストールについては、サンプル ダッシュボードのインストールをご覧ください。

構成を確認する

このセクションでは、Redis レシーバが正しく構成されていることを確認する方法について説明します。Ops エージェントがテレメトリーの収集を開始するまでに 1~2 分かかる場合があります。

ログが取り込まれていることを確認するには、ログ エクスプローラに移動し、次のクエリを実行して Redis のログを表示します。

resource.type="gce_instance"
log_id("redis")

指標が取り込まれていることを確認するには、Metrics Explorer に移動し、[MQL] タブで次のクエリを実行します。

fetch gce_instance
| metric 'workload.googleapis.com/redis.clients.max_input_buffer'
| every 1m

次のステップ

Ansible を使用して Ops エージェントをインストールし、サードパーティ アプリケーションを構成してサンプル ダッシュボードをインストールする方法については、Ops エージェントをインストールして、サードパーティ アプリケーションのトラブルシューティングを行うの動画をご覧ください。