Az Azure Cosmos DB vezérlősík-műveleteinek naplózása

A KÖVETKEZŐKRE VONATKOZIK: Nosql MongoDB Cassandra Gremlin Táblázat

Az Azure Cosmos DB vezérlősíkja egy RESTful szolgáltatás, amely lehetővé teszi különböző műveletek végrehajtását az Azure Cosmos DB-fiókon. Nyilvános erőforrásmodellt (például adatbázist, fiókot) és különböző műveleteket tesz elérhetővé a végfelhasználók számára, hogy műveleteket hajtsanak végre az erőforrásmodellen. A vezérlősík műveletei tartalmazzák az Azure Cosmos DB-fiók vagy -tároló módosításait. A vezérlősík műveletei közé tartoznak például az olyan műveletek, mint például egy Azure Cosmos DB-fiók létrehozása, régió hozzáadása, átviteli sebesség frissítése, régió feladatátvétele, virtuális hálózat hozzáadása stb. Ez a cikk bemutatja, hogyan naplózhatja a vezérlősík műveleteit az Azure Cosmos DB-ben. A vezérlősík-műveleteket Azure Cosmos DB-fiókokon futtathatja az Azure CLI, a PowerShell vagy a Azure Portal használatával, a tárolók esetében pedig az Azure CLI-t vagy a PowerShellt.

Az alábbiakban néhány példaforgatókönyvet láthat, amelyekben a vezérlősík műveleteinek naplózása hasznos:

  • Riasztást szeretne kapni az Azure Cosmos DB-fiók tűzfalszabályainak módosításakor. A riasztás szükséges az Azure Cosmos DB-fiók hálózati biztonságát szabályozó szabályok jogosulatlan módosításának megkereséséhez és a gyors művelet végrehajtásához.

  • Riasztást szeretne kapni, ha új régiót adnak hozzá vagy távolítanak el az Azure Cosmos DB-fiókból. A régiók hozzáadása vagy eltávolítása hatással van a számlázásra és az adatok szuverenitására vonatkozó követelményekre. Ez a riasztás segít észlelni a régió véletlen hozzáadását vagy eltávolítását a fiókjában.

  • További részleteket szeretne kapni a diagnosztikai naplókból arról, hogy mi változott. Egy virtuális hálózat például megváltozott.

Kulcsalapú metaadatok írási hozzáférésének letiltása

Mielőtt naplózné a vezérlősík műveleteit az Azure Cosmos DB-ben, tiltsa le a kulcsalapú metaadatok írási hozzáférését a fiókjában. Ha a kulcsalapú metaadatok írási hozzáférése le van tiltva, a fiókkulcsokon keresztül az Azure Cosmos DB-fiókhoz csatlakozó ügyfelek nem férhetnek hozzá a fiókhoz. Az írási hozzáférést letilthatja a disableKeyBasedMetadataWriteAccess tulajdonság true (igaz) értékre állításával. Miután beállította ezt a tulajdonságot, a megfelelő Azure-szerepkörrel és hitelesítő adatokkal rendelkező felhasználók bármilyen erőforráson módosításokat végezhetnek. A tulajdonság beállításáról további információt az SDK-k módosításainak megakadályozása című cikkben talál.

Ha a disableKeyBasedMetadataWriteAccess bekapcsolás után az SDK-alapú ügyfelek létrehozási vagy frissítési műveleteket futtatnak, a rendszer nem engedélyezi a "ContainerNameorDatabaseName" erőforrás "POST" műveletét az Azure Cosmos DB-végponton keresztül . Be kell kapcsolnia az ilyen műveletekhez való hozzáférést a fiókjához, vagy el kell végeznie a létrehozási/frissítési műveleteket az Azure Resource Manager, az Azure CLI vagy Azure PowerShell keresztül. A visszaváltáshoz állítsa a disableKeyBasedMetadataWriteAccess beállítást false (hamis ) értékre az Azure CLI használatával, az Azure Cosmos DB SDK módosításainak megakadályozása című cikkben leírtak szerint. Ügyeljen arra, hogy a értékét disableKeyBasedMetadataWriteAccess igaz helyett hamis értékre módosítsa.

A metaadatok írási hozzáférésének kikapcsolásakor vegye figyelembe a következő szempontokat:

  • Értékelje ki és győződjön meg arról, hogy az alkalmazások nem kezdeményeznek olyan metaadat-hívásokat, amelyek megváltoztatják a fenti erőforrásokat (például gyűjteményt hoz létre, frissíti az átviteli sebességet, ...) az SDK vagy a fiókkulcsok használatával.

  • Ha disableKeyBasedMetadataWriteAccess igaz értékre van állítva, az SDK által kiadott metaadat-műveletek le lesznek tiltva. Másik lehetőségként használhatja a Azure Portal, az Azure CLI, a Azure PowerShell vagy az Azure Resource Manager-sablon üzembe helyezését is ezekhez a műveletekhez.

Diagnosztikai naplók engedélyezése vezérlősík-műveletekhez

A Azure Portal használatával engedélyezheti a diagnosztikai naplókat a vezérlősík műveleteihez. Az engedélyezés után a diagnosztikai naplók indítási és befejezési eseménypárként rögzítik a műveletet a releváns részletekkel. A RegionFailoverStart és a RegionFailoverComplete például befejezi a régió feladatátvételi eseményét.

A következő lépésekkel engedélyezheti a naplózást a vezérlősíkon:

  1. Jelentkezzen be a Azure Portal, és navigáljon az Azure Cosmos DB-fiókjához.

  2. Nyissa meg a Diagnosztikai beállítások panelt, és adja meg a létrehozandó naplók nevét .

  3. A naplótípushoz válassza a ControlPlaneRequests lehetőséget, majd a Küldés a Log Analyticsbe lehetőséget.

  4. Ha szeretné, küldje el a diagnosztikai naplókat az Azure Storage- Azure Event Hubs, az Azure Monitornak vagy egy harmadik félnek.

A naplókat egy tárfiókban is tárolhatja, vagy streamelhet egy eseményközpontba. Ez a cikk bemutatja, hogyan küldhet naplókat a log analyticsbe, majd kérdezheti le őket. Az engedélyezés után néhány percig tart, amíg a diagnosztikai naplók érvénybe lépnek. Az ezt követően végrehajtott vezérlősík-műveletek nyomon követhetők. Az alábbi képernyőképen a vezérlősík naplóinak engedélyezése látható:

Vezérlősík-kérelmek naplózásának engedélyezése

A vezérlősík műveleteinek megtekintése

A naplózás bekapcsolása után kövesse az alábbi lépéseket egy adott fiók műveleteinek nyomon követéséhez:

  1. Jelentkezzen be az Azure Portalra.

  2. Nyissa meg a Figyelés lapot a bal oldali navigációs sávon, majd válassza a Naplók panelt. Megnyílik egy felhasználói felület, ahol egyszerűen futtathat lekérdezéseket az adott fiókkal a hatókörben. Futtassa a következő lekérdezést a vezérlősík naplóinak megtekintéséhez:

    AzureDiagnostics
    | where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="ControlPlaneRequests"
    | where TimeGenerated >= ago(1h)
    

    Az alábbi képernyőképek naplókat rögzítenek, amikor egy Azure Cosmos DB-fiók konzisztenciaszintje módosul. Az activityId_g eredmények értéke eltér egy művelet tevékenységazonosítójától:

    Vezérlősík naplói virtuális hálózat hozzáadásakor

    Az alábbi képernyőképek naplókat rögzítenek a Cassandra-fiók kulcsterének vagy táblájának létrehozásakor és az átviteli sebesség frissítésekor. Az adatbázison és a tárolón végzett létrehozási és frissítési műveletek vezérlősík-naplóit külön naplózza a rendszer az alábbi képernyőképen látható módon:

    Vezérlősík naplói az átviteli sebesség frissítésekor

Egy adott művelethez társított identitás azonosítása

Ha további hibakeresést szeretne végezni, a művelet időbélyegével vagy használatával activityId_g azonosíthat egy adott műveletet a Tevékenységnaplóban. Az időbélyeg olyan Resource Manager ügyfeleknél használatos, ahol a tevékenységazonosító nincs explicit módon átadva. A tevékenységnapló részletesen ismerteti azt az identitást, amellyel a műveletet kezdeményezték. Az alábbi képernyőkép bemutatja, hogyan keresheti meg a tevékenységnaplóban a hozzá társított műveleteket az paranccsal activityId_g :

Használja a tevékenységazonosítót, és keresse meg a műveleteket

Vezérlősíkműveletek az Azure Cosmos DB-fiókhoz

A következő vezérlősík-műveletek érhetők el a fiók szintjén. A legtöbb művelet a fiók szintjén van nyomon követve. Ezek a műveletek metrikákként érhetők el az Azure Monitorban:

  • Régió hozzáadva
  • Régió eltávolítva
  • Fiók törölve
  • A régió feladatátvétele
  • Fiók létrehozva
  • Virtuális hálózat törölve
  • Fiókhálózati beállítások frissítve
  • Fiókreplikációs beállítások frissítve
  • Fiókkulcsok frissítve
  • Fiók biztonsági mentési beállításai frissítve
  • Fiókdiagnosztikai beállítások frissítve

Vezérlősík-műveletek adatbázishoz vagy tárolókhoz

Az alábbi vezérlősík-műveletek érhetők el az adatbázis és a tároló szintjén. Ezek a műveletek metrikákként érhetők el az Azure Monitorban:

  • SQL Database létrehozva
  • SQL Database frissítve
  • SQL Database átviteli sebesség frissítve
  • SQL Database törölve
  • SQL-tároló létrehozva
  • SQL-tároló frissítve
  • Sql-tároló átviteli sebessége frissítve
  • SQL-tároló törölve
  • Cassandra-kulcstér létrehozva
  • Cassandra Keyspace frissítve
  • A Cassandra-kulcstér átviteli sebessége frissítve
  • Cassandra-kulcstér törölve
  • Cassandra-tábla létrehozva
  • Cassandra tábla frissítve
  • Cassandra-tábla átviteli sebessége frissítve
  • Cassandra-tábla törölve
  • Gremlin-adatbázis létrehozva
  • Gremlin-adatbázis frissítve
  • Gremlin-adatbázis átviteli sebessége frissítve
  • Gremlin-adatbázis törölve
  • Gremlin Graph létrehozva
  • Gremlin Graph frissítve
  • Gremlin Graph-átviteli sebesség frissítve
  • Gremlin Graph törölve
  • Mongo-adatbázis létrehozva
  • Mongo-adatbázis frissítve
  • Mongo-adatbázis átviteli sebessége frissítve
  • Mongo-adatbázis törölve
  • Mongo-gyűjtemény létrehozva
  • Mongo-gyűjtemény frissítve
  • Mongo-gyűjtemény átviteli sebessége frissítve
  • Mongo-gyűjtemény törölve
  • AzureTable-tábla létrehozva
  • AzureTable-tábla frissítve
  • AzureTable Table Átviteli sebesség frissítve
  • AzureTable-tábla törölve

Diagnosztikai naplóműveletek

A diagnosztikai naplókban a következő műveletnevek szerepelnek a különböző műveletekhez:

  • RegionAddStart, RegionAddComplete
  • RegionRemoveStart, RegionRemoveComplete
  • AccountDeleteStart, AccountDeleteComplete
  • RegionFailoverStart, RegionFailoverComplete
  • AccountCreateStart, AccountCreateComplete
  • AccountUpdateStart, AccountUpdateComplete
  • VirtualNetworkDeleteStart, VirtualNetworkDeleteComplete
  • DiagnosticLogUpdateStart, DiagnosticLogUpdateComplete

API-specifikus műveletek esetén a művelet neve a következő formátumban történik:

  • ApiKind + ApiKindResourceType + OperationType
  • ApiKind + ApiKindResourceType + "Átviteli sebesség" + operationType

Példa

  • CassandraKeyspacesLétrehozás
  • CassandraKeyspacesUpdate
  • CassandraKeyspacesThroughputUpdate
  • SqlContainersUpdate

A ResourceDetails tulajdonság kérelem hasznos adatként tartalmazza a teljes erőforrástörzset, és tartalmazza a frissítéshez kért összes tulajdonságot

Diagnosztikai napló lekérdezések vezérlősík-műveletekhez

Az alábbiakban néhány példát láthat a vezérlősík műveleteinek diagnosztikai naplóinak lekérésére:

AzureDiagnostics 
| where Category startswith "ControlPlane"
| where OperationName contains "Update"
| project httpstatusCode_s, statusCode_s, OperationName, resourceDetails_s, activityId_g
AzureDiagnostics 
| where Category =="ControlPlaneRequests"
| where TimeGenerated >= todatetime('2020-05-14T17:37:09.563Z')
| project TimeGenerated, OperationName, apiKind_s, apiKindResourceType_s, operationType_s, resourceDetails_s
AzureDiagnostics
| where Category == "ControlPlaneRequests"
| where OperationName startswith "SqlContainersUpdate"
AzureDiagnostics
| where Category == "ControlPlaneRequests"
| where OperationName startswith "SqlContainersThroughputUpdate"

Lekérdezés az activityId és a tárolótörlési műveletet kezdeményező hívó lekéréséhez:

(AzureDiagnostics
| where Category == "ControlPlaneRequests"
| where OperationName == "SqlContainersDelete"
| where TimeGenerated >= todatetime('9/3/2020, 5:30:29.300 PM')
| summarize by activityId_g )
| join (
AzureActivity
| parse HTTPRequest with * "clientRequestId\": \"" activityId_g "\"" * 
| summarize by Caller, HTTPRequest, activityId_g)
on activityId_g
| project Caller, activityId_g

Lekérdezés index- vagy ttl-frissítések lekéréséhez. Ezután összehasonlíthatja a lekérdezés kimenetét egy korábbi frissítéssel, és megtekintheti az index vagy a ttl változásait.

AzureDiagnostics
| where Category =="ControlPlaneRequests"
| where  OperationName == "SqlContainersUpdate"
| project resourceDetails_s

Kimeneti:

{id:skewed,indexingPolicy:{automatic:true,indexingMode:consistent,includedPaths:[{path:/*,indexes:[]}],excludedPaths:[{path:/_etag/?}],compositeIndexes:[],spatialIndexes:[]},partitionKey:{paths:[/pk],kind:Hash},defaultTtl:1000000,uniqueKeyPolicy:{uniqueKeys:[]},conflictResolutionPolicy:{mode:LastWriterWins,conflictResolutionPath:/_ts,conflictResolutionProcedure:}

Következő lépések