AWS MemoryDB¶
スクリプトマーケットの「Guanceクラウド同期」シリーズのスクリプトパッケージを使用して、クラウド監視・クラウド資産のデータをGuanceに同期します
設定¶
Func をインストール¶
Guance統合 - 拡張 - マネージド版 Func を有効化することを推奨します。前提条件はすべて自動でインストールされるため、そのままスクリプトのインストールに進んでください
Func を自前でデプロイする場合はFunc を自前でデプロイを参照してください
スクリプトをインストール¶
ヒント:要件を満たす Amazon AK を事前に用意してください(簡単のため、グローバル読み取り専用権限
ReadOnlyAccessを直接付与できます)
マネージド版のスクリプトを有効化¶
- Guanceコンソールにログインします
- 【統合】メニューをクリックし、【クラウドアカウント管理】を選択します
- 【クラウドアカウントを追加】をクリックし、【AWS】を選択して画面に必要な情報を入力します。すでにクラウドアカウント情報を設定済みの場合は、この手順は不要です
- 【テスト】をクリックし、成功したら【保存】をクリックします。テストに失敗した場合は、関連する設定が正しいか確認して再度テストしてください
- 【クラウドアカウント管理】の一覧で追加済みのクラウドアカウントを確認できます。該当のクラウドアカウントをクリックして詳細ページに入ります
- クラウドアカウント詳細ページの【統合】ボタンをクリックし、
未インストール一覧からAWS MemoryDBを見つけて【インストール】ボタンをクリックし、表示されるインストール画面でインストールします
手動でスクリプトを有効化¶
-
Func コンソールにログインし、【スクリプトマーケット】をクリックして Guance スクリプトマーケットに入り、
integration_aws_memorydbを検索します -
【インストール】をクリックした後、必要なパラメータを入力します。AWS AK ID、AK Secret、アカウント名です
-
【起動スクリプトをデプロイ】をクリックすると、システムが自動的に
Startupスクリプトセットを作成し、対応する起動スクリプトを自動で設定します -
有効化後は「管理 / 自動トリガー設定」で対応する自動トリガー設定を確認できます。【実行】をクリックすると、定期実行を待たずにすぐ 1 回実行できます。少し待ってから、実行タスクの記録と対応するログを確認できます
検証¶
- 「管理 / 自動トリガー設定」で、対応するタスクに自動トリガー設定が存在するか確認し、あわせてタスク記録とログを確認して異常がないかチェックします
- Guance の「インフラストラクチャ / カスタム」で資産情報が存在するか確認します
- Guance の「メトリクス」で対応する監視データがあるか確認します
メトリクス¶
Amazon CloudWatch を設定すると、デフォルトのメトリクスセットは以下のとおりです。設定により、さらに多くのメトリクスを収集できます。Amazon CloudWatch メトリクスの詳細
| メトリクス | 説明 | 単位 |
|---|---|---|
ActiveDefragHits |
アクティブデフラグ処理が 1 分あたりに実行した再割り当て回数です。これは Redis INFO の active_defrag_hits 統計データから取得されます。 |
数字 |
AuthenticationFailures |
AUTH コマンドで Redis への認証に失敗した総試行回数です。個々の認証失敗の詳細は ACL LOG コマンドで確認できます。未承認アクセス試行を検知するため、この項目にアラートを設定することを推奨します。 | 計数 |
BytesUsedForMemoryDB |
MemoryDB がデータセット、バッファなどを含むすべての用途に割り当てた総バイト数です。 | バイト |
CommandAuthorizationFailures |
権限のないユーザーが実行しようとしたコマンドの失敗試行回数です。個々の認証失敗の詳細は ACL LOG コマンドで確認できます。未承認アクセス試行を検知するため、この項目にアラートを設定することを推奨します。 | 計数 |
CurrConnections |
クライアント接続数です。読み取りレプリカからの接続は含みません。MemoryDB はさまざまな状況でクラスタを監視するために 2〜4 本の接続を使用します。これは Redis INFO の connected_clients 統計データから取得されます。 |
計数 |
CurrItems |
キャッシュ内のアイテム数です。この値は、以下の方法で取得した Redis の keyspace 統計データに基づき、キー空間全体のキー総数を計算して求めます。 |
計数 |
DatabaseMemoryUsagePercentage |
使用中のクラスタの利用可能メモリに対する割合です。これは Redis INFO の used_memory/maxmemory から計算されます。 |
百分率 |
EngineCPUUtilization |
Redis エンジンのスレッド CPU 使用率を示します。Redis はシングルスレッドであるため、このメトリクスを使って Redis プロセス自体の負荷を分析できます。EngineCPUUtilization は Redis プロセスをより正確に表します。CPUUtilization と併用できます。CPUUtilization は、OS や管理プロセスを含むインスタンス全体の CPU 使用率を公開します。4 つ以上の vCPU を持つ大きなノードタイプでは、EngineCPUUtilization を使って監視とスケールのしきい値を設定できます。MemoryDB ホストでは、バックグラウンドプロセスがホストを監視してマネージドデータベース体験を提供します。これらのバックグラウンドプロセスは CPU 負荷のかなりの割合を占める場合があります。これは vCPU が 2 を超える大きなホストでは影響が小さいですが、vCPU が 2 以下の小さなホストでは影響が大きくなります。EngineCPUUtilization だけを監視していると、Redis やバックグラウンド監視プロセスの CPU 使用率上昇によるホスト過負荷を検知できません。そのため、vCPU が 2 以下のホストでは CPUUtilization も監視することを推奨します。 |
百分率 |
Evictions |
maxmemory 制限により追い出されたキー数です。これは Redis INFO の evicted_keys 統計データから取得されます。 |
計数 |
IsPrimary |
ノードが現在のシャードのプライマリかどうかを示します。0(非プライマリ)または 1(プライマリ)を取ります。 | 計数 |
KeyAuthorizationFailures |
権限のないキーへのアクセス失敗回数です。個々の認証失敗の詳細は ACL LOG コマンドで確認できます。未承認アクセス試行を検知するため、この項目にアラートを設定することを推奨します。 | 計数 |
KeyspaceHits |
メイン辞書での読み取り専用キー検索の成功回数です。これは Redis INFO の keyspace_hits 統計データから取得されます。 |
計数 |
KeyspaceMisses |
メイン辞書での読み取り専用キー検索の失敗回数です。これは Redis INFO の keyspace_misses 統計データから取得されます。 |
計数 |
KeysTracked |
Redis キー追跡で追跡しているキー数が tracking-table-max-keys に占める割合です。キー追跡はクライアント側キャッシュを支援し、キーが変更されたときにクライアントへ通知します。 |
計数 |
MaxReplicationThroughput |
直前の測定期間に観測された最大レプリケーションスループットです。 | 毎秒バイト数 |
MemoryFragmentationRatio |
Redis エンジンのメモリ割り当て効率を示します。しきい値によってさまざまな挙動が示されます。推奨値は断片化率が 1.0 を上回ることです。これは Redis INFO の mem_fragmentation_ratio statistic から計算されます。 |
数字 |
NewConnections |
この期間にサーバーが受け付けた接続総数です。これは Redis INFO の total_connections_received 統計データから取得されます。 |
計数 |
PrimaryLinkHealthStatus |
この状態には 0 と 1 の 2 つの値があります。0 は MemoryDB プライマリノードのデータが EC2 上の Redis と同期されていないことを示します。1 はデータが同期されていることを示します。 | ブール値 |
Reclaimed |
キーの有効期限切れイベントの総数です。これは Redis INFO の expired_keys 統計データから取得されます。 |
計数 |
ReplicationBytes |
レプリケーション構成のノードについて、ReplicationBytes はプライマリがすべてのレプリカに送信したバイト数を報告します。このメトリクスはクラスタ上の書き込み負荷を示します。これは Redis INFO の master_repl_offset 統計データから取得されます。 |
バイト |
ReplicationDelayedWriteCommands |
最大レプリケーションスループットを超えたために遅延したコマンド数です。 | 計数 |
ReplicationLag |
このメトリクスは読み取りレプリカとして動作するノードにのみ適用されます。プライマリの変更を適用するまでのレプリカの遅延時間を秒単位で表します。 | 秒 |
CPUUtilization |
ホスト全体の CPU 使用率の割合です。Redis はシングルスレッドであるため、4 つ以上の vCPU を持つノードでは EngineCPUUtilization の監視を推奨します。 |
百分率 |
FreeableMemory |
ホストで利用可能な空きメモリ量です。RAM とバッファから導出され、OS が空きとして報告する領域です。 | バイト |
NetworkBytesIn |
ホストがネットワークから受信したバイト数です。 | バイト |
NetworkBytesOut |
インスタンスがすべてのネットワークインターフェースで送信したバイト数です。 | バイト |
NetworkConntrackAllowanceExceeded |
接続追跡がインスタンスの最大値を超えて新しい接続を確立できなかったために発生したパケット数です。これにより、インスタンスへの入出力トラフィックでパケット損失が発生する可能性があります。 | 計数 |
SwapUsage |
ホスト上のスワップ領域の使用量です。 | バイト |
オブジェクト¶
収集された AWS MemoryDB オブジェクトのデータ構造です。オブジェクトデータは「インフラストラクチャ / カスタム」で確認できます
{
"measurement": "aws_memorydb",
"tags": {
"RegionId" : "cn-north-1",
"Status" : "xxxx",
"ClusterName" : "xxxxxx",
"AvailabilityMode" : "xxxxxx",
"NodeType" : "xxxxxx",
"EngineVersion" : "xxxxxx",
"EnginePatchVersion" : "xxxxxx",
"ParameterGroupName" : "xxxxxx",
"ParameterGroupStatus" : "xxxxxx",
"ARN" : "arn:aws-cn:kms:cn-northwest-1:xxxx",
"SnsTopicStatus" : "xxxxxx",
"SnsTopicArn" : "xxxxxx",
"MaintenanceWindow" : "xxxxxx",
"SnapshotWindow" : "xxxxxx",
"ACLName" : "xxxxxx",
"name" : "xxxxxx"
},
"fields": {
"Description": "xxxxxx",
"SecurityGroups": "xxxxxx",
"NumberOfShards": "xxxxxx",
"TLSEnabled": "xxxxxx",
"SnapshotRetentionLimit": "xxxxxx",
"AutoMinorVersionUpgrade": "xxxxxx",
"NumberOfShards" : "1",
"message" : "{インスタンス JSON データ}"
}
}
注意:
tags、fieldsの中のフィールドは今後の更新により変更される場合があります