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 のメトリックを視覚化できます。 その後、使用可能なメトリックと集計から選択できます。

Screenshot that shows the Metrics pane in the Azure portal.

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 を使用して診断設定を作成する

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

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

    Screenshot that shows selecting a cluster from a list of resources.

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

    Screenshot that shows the pane for diagnostic settings and the button for adding a diagnostic setting.

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

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

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

    Screenshot that shows selections for a diagnostic setting.

    Note

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

  5. 診断ログを設定した後、データが流れていれば、[ログ] を選択し、Azure Data Explorer を使用して使用可能な診断ログのクエリを実行できます。 Azure Monitor と Kusto クエリ言語の詳細については、「Azure Monitor でのクエリのログ記録」を参照してください。

    Screenshot that shows query logs.

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>

選択できるカテゴリには、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 の診断設定」を参照してください。