Az Azure Cosmos DB vezérlősík-műveleteinek naplózása
A KÖVETKEZŐKRE VONATKOZIK: NoSQL
MongoDB
Cassandra
Gremlin
Asztal
A Control Plane az Azure Cosmos DB-ben 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 az erőforrásmodellen végzett műveletek végrehajtásához. A vezérlősík műveletei tartalmazzák az Azure Cosmos DB-fiók vagy -tároló módosításait. 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. a vezérlősík műveleteinek némelyike. Ez a cikk bemutatja, hogyan naplózhatja a vezérlősík-műveleteket az Azure Cosmos DB-ben. A vezérlősík-műveleteket az Azure Cosmos DB-fiókokon az Azure CLI, a PowerShell vagy az Azure Portal használatával futtathatja, míg tárolók esetében az Azure CLI-t vagy a PowerShellt.
Az alábbiakban néhány példaforgatókönyvet láthat, ahol a naplózási vezérlősík műveletei hasznosak:
Riasztást szeretne kapni az Azure Cosmos DB-fiók tűzfalszabályainak módosításakor. A riasztás szükséges ahhoz, hogy jogosulatlan módosításokat találjon az Azure Cosmos DB-fiók hálózati biztonságát szabályozó szabályokon, és gyors lépéseket tegyen.
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ási és adatelkonvertitási 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. Például egy virtuális hálózatot módosítottak.
Kulcsalapú metaadatok írási hozzáférésének letiltása
Mielőtt az Azure Cosmos DB-ben naplózta a vezérlősík műveleteit, 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. A tulajdonság igaz értékre állításával letilthatja az disableKeyBasedMetadataWriteAccess
írási hozzáférést. A tulajdonság beállítása után bármely erőforrás módosítása a megfelelő Azure-szerepkörrel és hitelesítő adatokkal rendelkező felhasználótól történhet.
disableKeyBasedMetadataWriteAccess
A bekapcsolás után, ha az SDK-alapú ügyfelek létrehozási vagy frissítési műveleteket futtatnak, a "ContainerNameorDatabaseName" erőforrás "POST" művelete nem engedélyezett 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 végre kell hajtania a létrehozási/frissítési műveleteket az Azure Resource Manager, az Azure CLI vagy az Azure PowerShell használatával. A visszaváltáshoz állítsa a disableKeyBasedMetadataWriteAccess beállítást hamisra az Azure CLI használatával. Ügyeljen arra, hogy a hamis értéket 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 módosítják a fenti erőforrásokat (például gyűjtést, á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 az Azure Portal, az Azure CLI, az Azure PowerShell vagy az Azure Resource Manager-sablon üzembe helyezését is használhatja a műveletek végrehajtásához.
Diagnosztikai naplók engedélyezése vezérlősík-műveletekhez
Az Azure Portalon engedélyezheti a diagnosztikai naplókat a vezérlősík-műveletekhez. Az engedélyezés után a diagnosztikai naplók indítási párként rögzítik a műveletet, és a releváns részletekkel kiegészítik az eseményeket. 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 az Azure Portalra , és lépjen az Azure Cosmos DB-fiókjához.
Nyissa meg a Diagnosztikai beállítások panelt, és adjon meg egy nevet a létrehozandó naplóknak.
A naplótípushoz válassza a ControlPlaneRequests lehetőséget, majd a Küldés a Log Analyticsbe lehetőséget.
Ha szükséges, küldje el a diagnosztikai naplókat az Azure Storage-nak, az Azure Event Hubsnak, 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. A pont után végrehajtott vezérlősík-műveletek nyomon követhetők. Az alábbi képernyőkép bemutatja, hogyan engedélyezheti a vezérlősík-naplókat:
A vezérlősík műveleteinek megtekintése
A naplózás bekapcsolása után az alábbi lépésekkel nyomon követheti egy adott fiók műveleteit:
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. Megnyitja a felhasználói felületet, 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 a művelet tevékenységazonosítójától:Az alábbi képernyőképek naplókat rögzítenek, amikor létrejön a kulcstér vagy egy Cassandra-fiók táblája, és mikor frissül az átviteli sebesség. Az adatbázison és a tárolón végzett létrehozási és frissítési műveletek vezérlősík-naplói külön vannak naplózva, ahogyan az alábbi képernyőképen látható:
Egy adott művelethez társított identitás azonosítása
Ha további hibakeresést szeretne végezni, a tevékenységnaplóban activityId_g
egy adott műveletet a művelet időbélyegével vagy időbélyegével azonosíthat. Az időbélyeg olyan Resource Manager-ügyfeleknél használatos, ahol a tevékenységazonosító nem explicit módon lett á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 activityId_g
tevékenységnaplóban a hozzá társított műveleteket:
Az Azure Cosmos DB-fiók síkműveleteinek vezérlése
A fiók szintjén elérhető vezérlősík-műveletek a következők. A legtöbb művelet fiókszinten van nyomon követve. Ezek a műveletek metrikákként érhetők el az Azure Monitorban:
- Régió hozzáadva
- Régió el lett távolítva
- Fiók törölve
- A régió feladatátvétele
- Létrehozott fiók
- Virtuális hálózat törölve
- A fiók hálózati beállításai frissülnek
- Fiókreplikációs beállítások frissítve
- Fiókkulcsok frissítve
- A fiók biztonsági mentési beállításai frissülnek
- 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
- Az SQL Database átviteli sebessége 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 Keyspace létrehozva
- Cassandra Keyspace frissítve
- A Cassandra keyspace átviteli sebessége frissítve
- Cassandra Keyspace 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 Database 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
- Az AzureTable table átviteli sebessége frissítve
- AzureTable-tábla törölve
Diagnosztikai naplóműveletek
A különböző műveletek diagnosztikai naplóinak műveletnevei a következők:
- RegionAddStart, RegionAddComplete
- RegionRemoveStart, RegionRemoveComplete
- AccountDeleteStart, AccountDeleteComplete
- RegionFailoverStart, RegionFailoverComplete
- AccountCreateStart, AccountCreateComplete
- AccountUpdateStart, AccountUpdateComplete
- VirtualNetworkDeleteStart, VirtualNetworkDeleteComplete
- DiagnosticLogUpdateStart, DiagnosticLogUpdateComplete
AZ API-specifikus műveletek esetében a művelet neve a következő formátumban történik:
- ApiKind + ApiKindResourceType + OperationType
- ApiKind + ApiKindResourceType + "Átviteli sebesség" + operationType
Példa
- CassandraKeyspacesCreate
- CassandraKeyspacesUpdate
- CassandraKeyspacesThroughputUpdate
- SqlContainersUpdate
A ResourceDetails tulajdonság a teljes erőforrástörzset hasznos adatként tartalmazza, és tartalmazza a frissítéshez szükséges összes tulajdonságot
Diagnosztikai napló lekérdezései vezérlősík-műveletekhez
Az alábbiakban néhány példát láthat a vezérlősík-műveletek 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 az index vagy a ttl változásának megtekintéséhez.
AzureDiagnostics
| where Category =="ControlPlaneRequests"
| where OperationName == "SqlContainersUpdate"
| project resourceDetails_s
output:
{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:}