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:
Jelentkezzen be a Azure Portal, és navigáljon az Azure Cosmos DB-fiókjához.
Nyissa meg a Diagnosztikai beállítások panelt, és adja meg a létrehozandó naplók nevét .
A naplótípushoz válassza a ControlPlaneRequests lehetőséget, majd a Küldés a Log Analyticsbe lehetőséget.
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ó:
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:
Jelentkezzen be az Azure Portalra.
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: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:
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
:
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:}