Azure Monitor を使用した Azure Managed Instance for Apache Cassandra の監視
Azure Managed Instance for Apache Cassandra には、Azure Monitor を使用したメトリックと診断ログが用意されています。
Azure Managed Instance for Apache Cassandra のメトリック
クラスター リソースに移動し、[メトリック] を選択することで、Azure portal で Azure Managed Instance for Apache Cassandra のメトリックを視覚化できます。 その後、使用可能なメトリックと集計から選択できます。
Azure での診断設定
Azure Monitor では、診断設定を使用 て、データ プレーン ログとも呼ばれるリソース ログを収集します。 Azure リソースはリソース ログを出力し、そのリソースの操作で頻繁に見られるデータを豊富に提供します。 Azure Monitor では、要求ごとにこれらのログをキャプチャします。 データ プレーン操作の例としては、delete、insert、readFeed などがあります。 これらのログの内容は、リソースの種類によって異なります。
プラットフォーム メトリックとアクティビティ ログは自動的に収集されますが、リソース ログを収集したり、Azure Monitor の外部に転送したりするには、診断設定を作成する必要があります。 Azure Managed Instance for Apache Cassandra クラスター リソースの診断設定を有効にして、リソース ログを次のソースに送信できます。
- Log Analytics ワークスペース。 Log Analytics ワークスペースに送信されたデータは、Azure Diagnostics (レガシ) テーブルまたはリソース固有(プレビュー) テーブルに書き込まれます。
- イベント ハブ。
- [ストレージ アカウント] 。
Note
リソース固有モードで診断設定を作成することをお勧めします。
Azure portal を使用して診断設定を作成する
Azure portal にサインインします。
Azure Managed Instance for Apache Cassandra クラスター リソースに移動します。
[監視] セクションで [診断設定] を選択し、[診断設定の追加] を選択します。
[診断設定] ペインで、設定の名前を選択します。
次に、[カテゴリの詳細] で、カテゴリを選択します。 [CassandraLogs] カテゴリには、Cassandra サーバーの操作が記録されます。 [CassandraAudit] カテゴリには、監査と Cassandra Query Language (CQL) の操作が記録されます。
[宛先の詳細]で、優先されるログの宛先を選択します。 Log Analytics ワークスペースにログを送信する場合は、宛先テーブルとして [リソース固有] を選択してください。
Note
Log Analytics ワークスペースにログを送信する場合は、ログが表示されるまで最大 20 分かかる場合があります。 それまでは、リソース固有のテーブル (Azure Managed Instance for Apache Cassandra の下に表示される) は表示されません。
診断ログを設定した後、データが流れていれば、[ログ] を選択し、Azure Data Explorer を使用して使用可能な診断ログのクエリを実行できます。 Azure Monitor と Kusto クエリ言語の詳細については、「Azure Monitor でのクエリのログ記録」を参照してください。
Azure CLI を使用して診断設定を作成する
Azure CLI を使用して診断設定を作成するには、az monitor diagnostic-settings create コマンドを使用します。
logs='[{"category":"CassandraAudit","enabled":true,"retentionPolicy":{"enabled":true,"days":3}},{"category":"CassandraLogs","enabled":true,"retentionPolicy":{"enabled":true,"days":3}}]'
resourceId='/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.DocumentDB/cassandraClusters/{CLUSTER_NAME}'
workspace='/subscriptions/{SUBSCRIPTION_ID}/resourcegroups/{RESOURCE_GROUP}/providers/microsoft.operationalinsights/workspaces/{WORKSPACE_NAME}'
az monitor diagnostic-settings create --name tvk-diagnostic-logs-cassandra --resource $resourceId --logs $logs --workspace $workspace --export-to-resource-specific true
REST API を使用して診断設定を作成する
Azure Monitor REST API を、対話型コンソールを介して診断設定を作成するために使用します。
Note
リソース固有のテーブルを有効にするには、logAnalyticsDestinationType
プロパティを Dedicated
に設定することをお勧めします。
要求
PUT
https://management.azure.com/{resource-id}/providers/microsoft.insights/diagnosticSettings/service?api-version={api-version}
ヘッダー
パラメーター/ヘッダー | 値/説明 |
---|---|
name |
診断設定の名前 |
resourceUri |
subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.DocumentDb/databaseAccounts/{ACCOUNT_NAME}/providers/microsoft.insights/diagnosticSettings/{DIAGNOSTIC_SETTING_NAME} |
api-version |
2017-05-01-preview |
Content-Type |
application/json |
本文
{
"id": "/subscriptions/{SUBSCRIPTION_ID}/resourceGroups/{RESOURCE_GROUP}/providers/Microsoft.DocumentDb/databaseAccounts/{ACCOUNT_NAME}/providers/microsoft.insights/diagnosticSettings/{DIAGNOSTIC_SETTING_NAME}",
"type": "Microsoft.Insights/diagnosticSettings",
"name": "name",
"location": null,
"kind": null,
"tags": null,
"properties": {
"storageAccountId": null,
"serviceBusRuleId": null,
"workspaceId": "/subscriptions/{SUBSCRIPTION_ID}/resourcegroups/{RESOURCE_GROUP}/providers/microsoft.operationalinsights/workspaces/{WORKSPACE_NAME}",
"eventHubAuthorizationRuleId": null,
"eventHubName": null,
"logs": [
{
"category": "CassandraAudit",
"categoryGroup": null,
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
},
{
"category": "CassandraLogs",
"categoryGroup": null,
"enabled": true,
"retentionPolicy": {
"enabled": false,
"days": 0
}
}
],
"logAnalyticsDestinationType": "Dedicated"
},
"identity": null
}
ホワイトリストの監査
Note
この記事には、Microsoft では現在使用されていないホワイトリストという用語への言及が含まれています。 ソフトウェアからこの用語が削除された時点で、この記事から削除します。
既定では、監査ログにより、ログイン試行および CQL クエリごとにレコードが作成されます。 結果が膨大になり、オーバーヘッドが増加する可能性があります。 この状況を管理するには、ホワイトリストを使用して、特定の監査レコードを選択的に含めたり除外したりすることができます。
Cassandra 3.11
Cassandra 3.11 では、監査ホワイトリスト機能を使用して、監査レコードを作成しない操作を設定することができます。 Cassandra 3.11 では、監査ホワイトリスト機能が既定で有効になっています。 ホワイトリストを構成する方法については、「Role Based Whitelist Management」 (ロール ベースのホワイトリスト管理) を参照してください。
例 :
ユーザー
bob
のすべてのSELECT
操作とMODIFY
操作を監査ログからフィルターで除外するには、次のステートメントを実行します。cassandra@cqlsh> ALTER ROLE bob WITH OPTIONS = { 'GRANT AUDIT WHITELIST FOR SELECT' : 'data' }; cassandra@cqlsh> ALTER ROLE bob WITH OPTIONS = { 'GRANT AUDIT WHITELIST FOR MODIFY' : 'data' };
design
キースペース内のdecisions
テーブルに対するユーザーjim
のすべてのSELECT
操作を監査ログからフィルターで除外するには、次のステートメントを実行します。cassandra@cqlsh> ALTER ROLE jim WITH OPTIONS = { 'GRANT AUDIT WHITELIST FOR SELECT' : 'data/design/decisions' };
すべてのユーザーの
SELECT
操作に対して、ユーザーbob
のホワイトリストを取り消すには、次のステートメントを実行します。cassandra@cqlsh> ALTER ROLE bob WITH OPTIONS = { 'REVOKE AUDIT WHITELIST FOR SELECT' : 'data' };
現在のホワイトリストを表示するには、次のステートメントを実行します。
cassandra@cqlsh> LIST ROLES;
Cassandra 4 以降
Cassandra 4 以降では、Cassandra 構成でホワイトリストを構成できます。 詳細なガイダンスについては、「Cassandra 構成の更新」を参照してください。 使用可能なオプションは次のとおりです (リファレンス: Cassandra 監査ログのドキュメント)。
audit_logging_options:
included_keyspaces: <Comma separated list of keyspaces to be included in audit log, default - includes all keyspaces>
excluded_keyspaces: <Comma separated list of keyspaces to be excluded from audit log, default - excludes no keyspace except system, system_schema and system_virtual_schema>
included_categories: <Comma separated list of Audit Log Categories to be included in audit log, default - includes all categories>
excluded_categories: <Comma separated list of Audit Log Categories to be excluded from audit log, default - excludes no category>
included_users: <Comma separated list of users to be included in audit log, default - includes all users>
excluded_users: <Comma separated list of users to be excluded from audit log, default - excludes no user>
選択できるカテゴリには、QUERY
、DML
、DDL
、DCL
、OTHER
、AUTH
、ERROR
、PREPARE
があります。
構成の例には、 などがあります。
audit_logging_options:
included_keyspaces: keyspace1,keyspace2
included_categories: AUTH,ERROR,DCL,DDL
既定では、構成により、included_categories
は AUTH,ERROR,DCL,DDL
に設定されます。
次のステップ
- Azure portal、Azure CLI、または PowerShell を使用して診断設定を作成する方法の詳細については、「Azure Monitor の診断設定」を参照してください。