Oktatóanyag: Átalakítás hozzáadása a munkaterület adatgyűjtési szabályában az Azure Monitorhoz Resource Manager-sablonok használatával
Ez az oktatóanyag végigvezeti egy mintaátalakítás konfigurálását egy munkaterületi adatgyűjtési szabályban Resource Manager-sablonok használatával. Az Azure Monitor átalakításaival szűrheti vagy módosíthatja a bejövő adatokat, mielőtt elküldené őket a célhelyre. A munkaterület-átalakítások támogatják az Azure Monitor adatbetöltési folyamatát még nem használó munkafolyamatok betöltési idejének átalakítását.
A munkaterület-átalakítások a munkaterület egyetlen adatgyűjtési szabályában (DCR) vannak tárolva, amelyet a munkaterület DCR-jének neveznek. Minden átalakítás egy adott táblához van társítva. Az átalakítás minden olyan munkafolyamatból, amely nem DCR-t használ, alkalmazza az átalakítást a táblába küldött összes adatra.
Feljegyzés
Ez az oktatóanyag Resource Manager-sablonokat és REST API-t használ a munkaterület-átalakítás konfigurálásához. Lásd az oktatóanyagot: Átalakítás hozzáadása a munkaterület adatgyűjtési szabályában az Azure Monitorhoz az Azure Portallal ugyanazért az oktatóanyagért az Azure Portalon.
Eben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Munkaterület-átalakítás konfigurálása egy Log Analytics-munkaterület tábláihoz.
- Napló lekérdezés írása betöltési idő átalakításhoz.
Feljegyzés
Ez az oktatóanyag az Azure Cloud Shell PowerShell-lel indít REST API-hívásokat az Azure Monitor Tables API és az Azure Portal használatával a Resource Manager-sablonok telepítéséhez. Ezeket a hívásokat bármely más módszerrel kezdeményezheti.
Előfeltételek
Az oktatóanyag teljesítéséhez a következőkre lesz szüksége:
- Log Analytics-munkaterület, ahol legalább közreműködői jogosultságokkal rendelkezik.
- Engedélyek adatgyűjtési szabályobjektumok létrehozásához a munkaterületen.
- A táblának már rendelkeznie kell adatokkal.
- A tábla még nem csatolható a munkaterület-átalakítási DCR-hez.
Az oktatóanyag áttekintése
Ebben az oktatóanyagban bizonyos rekordok szűrésével csökkentheti a LAQueryLogs
tábla tárolási követelményeit. Az oszlop tartalmát is eltávolítja, miközben elemzi az oszlopadatokat, hogy egy adatrészletet egy egyéni oszlopban tároljon. A LAQueryLogs tábla akkor jön létre, amikor engedélyezi a napló lekérdezésének naplózását egy munkaterületen, de ez csak mintaként használatos az oktatóanyaghoz. Ugyanezzel az alapfolyamattal hozhat létre átalakítást a Log Analytics-munkaterületek bármely támogatott táblája számára.
Lekérdezési naplózási naplók engedélyezése
Engedélyeznie kell a lekérdezések naplózását a munkaterületen ahhoz, hogy létrehozhassa azt a LAQueryLogs
táblát, amellyel dolgozni fog. Ez nem szükséges minden betöltési idő átalakításhoz. Csak azokat a mintaadatokat kell létrehoznia, amelyeket ez a mintaátalakítás használni fog.
Az Azure Portal Log Analytics-munkaterületek menüjében válassza a Diagnosztikai beállítások, majd a Diagnosztikai beállítás hozzáadása lehetőséget.
Adjon nevet a diagnosztikai beállításnak, és válassza ki a munkaterületet, hogy a naplózási adatokat ugyanabban a munkaterületen tárolja a rendszer. Válassza ki a Naplózás kategóriát, majd a Mentés gombra kattintva mentse a diagnosztikai beállítást, és zárja be a diagnosztikai beállítás lapot.
Válassza a Naplók lehetőséget, majd futtasson néhány lekérdezést, hogy feltöltsön
LAQueryLogs
néhány adatot. Ezeknek a lekérdezéseknek nem kell adatokat visszaadniuk.
Táblaséma frissítése
Az átalakítás létrehozása előtt a következő két módosítást kell végrehajtani a táblában:
- A táblát engedélyezni kell a munkaterület átalakításához. Ez minden olyan táblához szükséges, amely átalakítással rendelkezik, még akkor is, ha az átalakítás nem módosítja a tábla sémáját.
- Az átalakítás által kitöltött további oszlopokat hozzá kell adni a táblához.
A Táblák – Update API használatával konfigurálhatja a táblázatot az alábbi PowerShell-kóddal. Az API meghívása lehetővé teszi a tábla számára a munkaterület-átalakításokat, függetlenül attól, hogy egyéni oszlopok vannak-e definiálva. Ebben a példában egy Resources_CF nevű egyéni oszlopot tartalmaz, amely az átalakítási lekérdezéssel lesz feltöltve.
Fontos
A beépített táblához hozzáadott egyéni oszlopoknak _CF kell végződniük. Az egyéni táblához hozzáadott oszlopoknak (_CL végződésű tábláknak) nem kell ezt az utótagot használniuk.
Kattintson a Cloud Shell gombra az Azure Portalon, és győződjön meg arról, hogy a környezet PowerShellre van állítva.
Másolja ki a következő PowerShell-kódot, és cserélje le az Elérési út paramétert a munkaterület adataira.
$tableParams = @' { "properties": { "schema": { "name": "LAQueryLogs", "columns": [ { "name": "Resources_CF", "description": "The list of resources, this query ran against", "type": "string", "isDefaultDisplay": true, "isHidden": false } ] } } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/LAQueryLogs?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Illessze be a kódot a Cloud Shell parancssorába a futtatáshoz.
Az oszlop hozzáadását az Azure Portal Log Analytics-munkaterület menüjében ellenőrizheti. Válassza a Naplók lehetőséget a Log Analytics megnyitásához, majd bontsa ki a táblázatot az
LAQueryLogs
oszlopok megtekintéséhez.
Átalakítási lekérdezés definiálása
A Log Analytics használatával tesztelheti az átalakítási lekérdezést, mielőtt hozzáadja egy adatgyűjtési szabályhoz.
Nyissa meg a munkaterületet az Azure Portal Log Analytics-munkaterületek menüjében, és válassza a Naplók lehetőséget a Log Analytics megnyitásához.
Futtassa a következő lekérdezést a
LAQueryLogs
tábla tartalmának megtekintéséhez. Figyelje meg az oszlop tartalmátRequestContext
. Az átalakítás lekéri a munkaterület nevét ebből az oszlopból, és eltávolítja a benne lévő többi adatot.LAQueryLogs | take 10
Módosítsa a lekérdezést a következőre:
LAQueryLogs | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Workspace_CF = tostring(Context['workspaces'][0]) | project-away RequestContext, Context
Ez a következő módosításokat hajtja végre:
- A táblázat lekérdezéséhez
LAQueryLogs
kapcsolódó sorokat helyezze el, hogy helyet takarítson meg, mivel ezek a naplóbejegyzések nem hasznosak. - Adjon hozzá egy oszlopot a lekérdezett munkaterület nevéhez.
- Adatok eltávolítása az oszlopból a
RequestContext
helytakarékosság érdekében.
- A táblázat lekérdezéséhez
Végezze el az alábbi módosításokat a lekérdezésen az átalakítás során való használathoz:
- Ahelyett, hogy táblanevet (
LAQueryLogs
ebben az esetben) ad meg a lekérdezés adatforrásaként, használja a kulcsszótsource
. Ez egy virtuális tábla, amely mindig a bejövő adatokat jelöli egy átalakítási lekérdezésben. - Távolítsa el az átalakító lekérdezések által nem támogatott operátorokat. A támogatott operátorok részletes listáját a támogatott KQL-funkciók című témakörben találja.
- A lekérdezést egyetlen sorba kell egyesíteni, hogy elférjen a DCR JSON-ban.
Az alábbi lekérdezést fogja használni az átalakítás során a módosítások után:
source | where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''
- Ahelyett, hogy táblanevet (
Adatgyűjtési szabály (DCR) létrehozása
Mivel ez az első átalakítás a munkaterületen, létre kell hoznia egy munkaterület-átalakítási DCR-t. Ha munkaterület-átalakításokat hoz létre ugyanabban a munkaterületen lévő többi táblához, azokat ugyanabban a DCR-ben kell tárolni.
Az Azure Portal keresőmezőjében írja be a sablont, majd válassza az Egyéni sablon üzembe helyezése lehetőséget.
Kattintson a Saját sablon létrehozása elemre a szerkesztőben.
Illessze be az alábbi Resource Manager-sablont a szerkesztőbe, majd kattintson a Mentés gombra. Ez a sablon határozza meg a DCR-t, és tartalmazza az átalakítási lekérdezést. Nem kell módosítania ezt a sablont, mivel a paraméterek értékeit gyűjti össze.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "dataCollectionRuleName": { "type": "string", "metadata": { "description": "Specifies the name of the Data Collection Rule to create." } }, "location": { "type": "string", "defaultValue": "westus2", "allowedValues": [ "westus2", "eastus2", "eastus2euap" ], "metadata": { "description": "Specifies the location in which to create the Data Collection Rule." } }, "workspaceResourceId": { "type": "string", "metadata": { "description": "Specifies the Azure resource ID of the Log Analytics workspace to use." } } }, "resources": [ { "type": "Microsoft.Insights/dataCollectionRules", "name": "[parameters('dataCollectionRuleName')]", "location": "[parameters('location')]", "apiVersion": "2021-09-01-preview", "kind": "WorkspaceTransforms", "properties": { "destinations": { "logAnalytics": [ { "workspaceResourceId": "[parameters('workspaceResourceId')]", "name": "clv2ws1" } ] }, "dataFlows": [ { "streams": [ "Microsoft-Table-LAQueryLogs" ], "destinations": [ "clv2ws1" ], "transformKql": "source |where QueryText !contains 'LAQueryLogs' | extend Context = parse_json(RequestContext) | extend Resources_CF = tostring(Context['workspaces']) |extend RequestContext = ''" } ] } } ], "outputs": { "dataCollectionRuleId": { "type": "string", "value": "[resourceId('Microsoft.Insights/dataCollectionRules', parameters('dataCollectionRuleName'))]" } } }
Az Egyéni üzembe helyezés képernyőn adjon meg egy előfizetést és erőforráscsoportot az adatgyűjtési szabály tárolásához, majd adja meg a sablonban definiált értékeket. Ez magában foglalja az adatgyűjtési szabály nevét és az előző lépésben összegyűjtött munkaterület-erőforrás-azonosítót . A helynek meg kell egyeznie a munkaterület helyével. A régió már ki lesz töltve, és az adatgyűjtési szabály helyéhez lesz használva.
A részletek áttekintésekor kattintson a Véleményezés+ létrehozás , majd a Létrehozás gombra.
Ha az üzembe helyezés befejeződött, bontsa ki az Üzembe helyezés részletei mezőt, és kattintson az adatgyűjtési szabályra a részleteinek megtekintéséhez. Kattintson a JSON nézetre.
Másolja ki az adatgyűjtési szabály erőforrás-azonosítóját . Ezt a következő lépésben fogja használni.
Munkaterület csatolása a DCR-hez
Az átalakítás engedélyezésének utolsó lépése a DCR és a munkaterület összekapcsolása.
Fontos
A munkaterületek csak egyetlen DCR-hez csatlakoztathatók, és a csatolt DCR-nek célként tartalmaznia kell ezt a munkaterületet.
A Munkaterületek – Update API használatával konfigurálja a táblát az alábbi PowerShell-kóddal.
Kattintson a Cloud Shell gombra a Cloud Shell újbóli megnyitásához. Másolja ki a következő PowerShell-kódot, és cserélje le a paramétereket a munkaterület és a DCR értékeire.
$defaultDcrParams = @' { "properties": { "defaultDataCollectionRuleResourceId": "/subscriptions/{subscription}/resourceGroups/{resourcegroup}/providers/Microsoft.Insights/dataCollectionRules/{DCR}" } } '@ Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}?api-version=2021-12-01-preview" -Method PATCH -payload $defaultDcrParams
Illessze be a kódot a Cloud Shell parancssorába a futtatáshoz.
Átalakítás tesztelése
Az átalakítás érvénybe lépése körülbelül 30 percet vesz igénybe, majd tesztelheti egy lekérdezés futtatásával a táblán. Csak az átalakítás alkalmazása után a táblába küldött adatok lesznek hatással.
Ebben az oktatóanyagban futtasson néhány minta lekérdezést, hogy adatokat küldjön a LAQueryLogs
táblába. Adjon hozzá néhány lekérdezést LAQueryLogs
, így ellenőrizheti, hogy az átalakítás szűri-e ezeket a rekordokat. Figyelje meg, hogy a kimenet az új Workspace_CF
oszlopot tartalmazza, és nincsenek rekordok a következőhöz LAQueryLogs
: .
Hibaelhárítás
Ez a szakasz a kapott különböző hibafeltételeket és azok kijavítási módját ismerteti.
Az IntelliSense a Log Analyticsben nem ismeri fel a tábla új oszlopait
Az IntelliSense-t meghajtó gyorsítótár frissítése akár 24 órát is igénybe vehet.
Nem működik az átalakítás dinamikus oszlopon
Jelenleg ismert probléma van a dinamikus oszlopokat érintően. Az ideiglenes áthidaló megoldás a dinamikus oszlopadatok parse_json()
explicit elemzése, mielőtt bármilyen műveletet végrehajtanak rajtuk.