次の方法で共有


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 portal の [メトリック] ウィンドウを示すスクリーンショット。

Azure での診断設定

Azure Monitor では、診断設定を使用 て、データ プレーン ログとも呼ばれるリソース ログを収集します。 Azure リソースはリソース ログを出力し、そのリソースの操作で頻繁に見られるデータを豊富に提供します。 Azure Monitor では、要求ごとにこれらのログをキャプチャします。 データ プレーン操作の例としては、 削除挿入readFeed などがあります。 これらのログの内容は、リソースの種類によって異なります。

プラットフォーム メトリックとアクティビティ ログは自動的に収集されます。 リソース ログを収集したり、Azure Monitor の外部に転送したりするための診断設定を作成する必要があります。 Azure Managed Instance for Apache Cassandra クラスター リソースの診断設定を有効にして、リソース ログを次のソースに送信できます。

  • Log Analytics ワークスペース。 Log Analytics ワークスペースに送信されたデータは、Azure Diagnostics (レガシ) テーブルまたはリソース固有(プレビュー) テーブルに書き込まれます。
  • イベント ハブ。
  • [ストレージ アカウント] 。

リソース固有モードで診断設定を作成することをお勧めします。

Azure portal を使用して診断設定を作成する

  1. Azure portal にサインインします。

  2. Azure Managed Instance for Apache Cassandra クラスター リソースに移動します。

    リソースの一覧からクラスターを選択する方法を示すスクリーンショット。

  3. [監視] セクションで [診断設定] を選択し、[診断設定の追加] を選択します。

    診断設定のウィンドウと診断設定を追加するためのボタンを示すスクリーンショット。

  4. [診断設定] ペインで、設定の名前を選択します。

  5. [ カテゴリの詳細] で、カテゴリを選択します。 [CassandraLogs] カテゴリには、Cassandra サーバーの操作が記録されます。 [CassandraAudit] カテゴリには、監査と Cassandra Query Language (CQL) の操作が記録されます。

  6. [宛先の詳細]で、優先されるログの宛先を選択します。 Log Analytics ワークスペースにログを送信するには、必ずターゲット テーブルとして [リソース固有 ] を選択してください。

    診断設定の選択を示すスクリーンショット。

    Log Analytics ワークスペースにログを送信する場合は、ログが表示されるまで最大 20 分かかる場合があります。 それまでは、 Azure Managed Instance for Apache Cassandra の下に表示されるリソース固有のテーブルは表示されません。

  7. 診断ログを設定した後、データが流れていれば、[ログ] を選択し、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 を使用します。 詳細については、「 診断設定」を参照してください。

リソース固有のテーブルを有効にするには、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
}

ホワイトリストの監査

この記事には、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' };
    
  • ユーザー jimdesign キースペース内のdecisions テーブルに対するすべての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>

選択できるカテゴリには、QUERYDMLDDLDCLOTHERAUTHERRORPREPARE があります。

構成の例には、 などがあります。

audit_logging_options:
    included_keyspaces: keyspace1,keyspace2
    included_categories: AUTH,ERROR,DCL,DDL

既定では、構成により、included_categoriesAUTH,ERROR,DCL,DDL に設定されます。

次のステップ

  • Azure portal、Azure CLI、または PowerShell を使用して診断設定を作成する方法の詳細については、「Azure Monitor の診断設定」を参照してください。