Azure Monitor를 사용하여 Apache Cassandra용 Azure Managed Instance 모니터링

Apache Cassandra용 Azure Managed Instance는 Azure Monitor를 통해 메트릭 및 진단 로깅을 제공합니다.

Apache Cassandra용 Azure Managed Instance 메트릭

클러스터 리소스로 이동하고 메트릭을 선택하여 Azure Portal에서 Apache Cassandra용 Azure Managed Instance에 대한 메트릭을 시각화할 수 있습니다. 그런 다음 사용 가능한 메트릭 및 집계 중에서 선택할 수 있습니다.

Screenshot that shows the Metrics pane in the Azure portal.

Azure의 진단 설정

Azure Monitor는 진단 설정을 사용하여 데이터 평면 로그라고 도 하는 리소스 로그를 수집합니다. Azure 리소스는 리소스 로그를 내보내 작업에 대한 풍부하고 빈번한 데이터를 제공합니다. Azure Monitor는 요청당 이러한 로그를 캡처합니다. 데이터 평면 작업의 예로는 삭제, 삽입 및 readFeed가 있습니다. 이러한 로그의 내용은 리소스 종류에 따라 달라집니다.

플랫폼 메트릭 및 활동 로그는 자동으로 수집되는 반면 리소스 로그를 수집하거나 Azure Monitor 외부로 전달하려면 진단 설정을 만들어야 합니다. Apache Cassandra 클러스터 리소스용 Azure Managed Instance에 대한 진단 설정을 켜고 리소스 로그를 다음 원본으로 보낼 수 있습니다.

  • Log Analytics 작업 영역. Log Analytics 작업 영역으로 전송되는 데이터는 Azure Diagnostics(레거시) 또는 리소스별(미리 보기) 테이블에 기록됩니다.
  • 이벤트 허브.
  • 스토리지 계정.

참고 항목

리소스별 모드에서 진단 설정을 만드는 것이 좋습니다.

Azure Portal을 통해 진단 설정 만들기

  1. Azure Portal에 로그인합니다.

  2. Apache Cassandra용 Azure Managed Instance 클러스터 리소스로 이동합니다.

    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 범주는 감사 및 CQL(Cassandra 쿼리 언어) 작업을 기록합니다.

    대상 세부 정보에서 로그에 대한 기본 대상을 선택합니다. Log Analytics 작업 영역으로 로그를 보내는 경우 대상 테이블로 특정 리소스를 선택해야 합니다.

    Screenshot that shows selections for a diagnostic setting.

    참고 항목

    Log Analytics 작업 영역으로 로그를 보내는 경우 로그를 표시하는 데 최대 20분이 걸릴 수 있습니다. 그때까지 리소스별 테이블(Apache Cassandra용 Azure Managed Instance 아래에 표시됨)은 표시되지 않습니다.

  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를 사용합니다.

참고 항목

리소스별 테이블을 사용하도록 속성을 Dedicated 설정하는 logAnalyticsDestinationType 것이 좋습니다.

요청

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에서 기본적으로 사용하도록 설정됩니다. 허용 목록을 구성하는 방법을 알아보려면 역할 기반 허용 목록 관리를 참조하세요.

예:

  • 감사 로그에서 사용자 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' };
    
  • 감사 로그에서 사용자 jim 에 대한 decisions 키스페이 design 스의 테이블에 대한 모든 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>

사용 가능한 범주는 다음과 DDLPREPAREDMLERRORDCLAUTHOTHER같습니다. QUERY

구성의 예는 다음과 같습니다.

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의 진단 설정을 참조하세요.