Oktatóanyag: Adatgyűjtési szabály (DCR) szerkesztése
Ez az oktatóanyag bemutatja, hogyan szerkesztheti a parancssori eszközökkel már kiépített adatgyűjtési szabály (DCR) definícióját.
Ebben az oktatóanyagban az alábbiakkal fog megismerkedni:
- Meglévő portálfunkciók használata a DCR-ek előzetes létrehozásához
- Adatgyűjtési szabály tartalmának lekérése ARM API-hívással
- Módosítások alkalmazása adatgyűjtési szabályra ARM API-hívással
- A DCR frissítési folyamatának automatizálása PowerShell-szkriptekkel
Megjegyzés:
Ez az oktatóanyag egy meglévő DCR szerkesztési módszerét mutatja be. További módszerekért lásd : Adatgyűjtési szabályok (DCR-ek) létrehozása és szerkesztése az Azure Monitorban .
Előfeltételek
Az oktatóanyag elvégzéséhez a következőkre van 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 PowerShell naprakész verziója. Az Azure Cloud Shell használata ajánlott.
Az oktatóanyag áttekintése
Az egyéni adatok Log Analyticsbe való betöltésének legegyszerűbb módja a portál varázslójának használata, bizonyos esetekben érdemes lehet később frissítenie az adatgyűjtési szabályt a következőre:
- Adatgyűjtési beállítások módosítása (például adatgyűjtési végpont, a DCR-hez társítva)
- Adatelemzési vagy szűrési logika frissítése az adatfolyamhoz
- Adat célhelyének módosítása (például adatok küldése Egy Azure-táblába, mivel ez a lehetőség nem érhető el közvetlenül a DCR-alapú egyéni naplóvarázsló részeként)
Ebben az oktatóanyagban először beállítja az egyéni naplók betöltését. Ezután módosítsa az egyéni napló KQL-átalakítását úgy, hogy további szűrést is tartalmazzon, és alkalmazza a módosításokat a DCR-ben. Végül az összes szerkesztési műveletet egyetlen PowerShell-szkriptbe fogjuk egyesíteni, amely bármely DCR szerkesztésére használható a fent említett okok bármelyike miatt.
Új egyéni napló beállítása
Először állítson be egy új egyéni naplót. Kövesse az oktatóanyagot: Egyéni naplók küldése az Azure Monitor-naplókba az Azure Portal (előzetes verzió) használatával. Jegyezze fel a létrehozott DCR erőforrás-azonosítóját.
DCR-tartalom lekérése
A DCR frissítéséhez lekérjük a tartalmát, és fájlként mentjük, amelyet tovább szerkeszthetünk.
Kattintson a Cloud Shell gombra az Azure Portalon, és győződjön meg arról, hogy a környezet PowerShellre van állítva.
Hajtsa végre a következő parancsokat a DCR-tartalom lekéréséhez és fájlba való mentéséhez. Cserélje le
<ResourceId>
a DCR ResourceID azonosítójára és<FilePath>
a DCR tárolására használt fájl nevére.$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit $FilePath = "<FilePath>" # Store DCR content in this file $DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2022-06-01") -Method GET $DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath
DCR szerkesztése
Most, ha A DCR-tartalmak JSON-fájlként vannak tárolva, a választott szerkesztővel módosíthatja a DCR-t. Előfordulhat, hogy inkább a Cloud Shell-környezetből tölti le a fájlt, ha használ egyet.
Másik lehetőségként használhatja a környezethez mellékelt kódszerkesztőket is. Ha például a DCR-t egy, a Cloud Drive-on elnevezett temp.dcr
fájlba mentette, a következő paranccsal megnyithatja a DCR-t szerkesztésre közvetlenül a Cloud Shell ablakában:
code "temp.dcr"
Módosítsuk a KQL-átalakítást a DCR-ben úgy, hogy olyan sorokat ejtsünk, ahol a RequestType bármi, csak a "GET".
- Nyissa meg az előző részben létrehozott fájlt szerkesztésre egy tetszőleges szerkesztővel.
- Keresse meg az attribútumot tartalmazó
”transformKql”
sort, amely ha követte az egyéni naplólétrehozási oktatóanyagot, az alábbihoz hasonlóan kell kinéznie:"transformKql": " source\n | extend TimeGenerated = todatetime(Time)\n | parse RawData with \n ClientIP:string\n ' ' *\n ' ' *\n ' [' * '] \"' RequestType:string\n \" \" Resource:string\n \" \" *\n '\" ' ResponseCode:int\n \" \" *\n | where ResponseCode != 200\n | project-away Time, RawData\n"
- KQL-átalakítás módosítása további szűrő hozzáadásához RequestType szerint
"transformKql": " source\n | where RawData contains \"GET\"\n | extend TimeGenerated = todatetime(Time)\n | parse RawData with \n ClientIP:string\n ' ' *\n ' ' *\n ' [' * '] \"' RequestType:string\n \" \" Resource:string\n \" \" *\n '\" ' ResponseCode:int\n \" \" *\n | where ResponseCode != 200\n | project-away Time, RawData\n"
- Mentse a fájlt módosított DCR-tartalommal.
Módosítások alkalmazása
Az utolsó lépés a DCR visszaállítása a rendszerben. Ezt az ARM API-nak küldött "PUT" HTTP-hívás hajtja végre a HTTP-kérelem törzsében elküldött frissített DCR-tartalommal.
- Ha Az Azure Cloud Shellt használja, mentse a fájlt, és zárja be a beágyazott szerkesztőt, vagy töltse fel a módosított DCR-fájlt a Cloud Shell-környezetbe.
- Hajtsa végre a következő parancsokat a DCR-tartalom fájlból való betöltéséhez és HTTP-hívás indításához a DCR frissítéséhez a rendszerben. Cserélje le
<ResourceId>
a DCR ResourceID-et és<FilePath>
az oktatóanyag előző részében módosított fájl nevét. Az első két sort kihagyhatja, ha ugyanabban a PowerShell-munkamenetben olvas és ír a DCR-be.$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit $FilePath = "<FilePath>" # Store DCR content in this file $DCRContent = Get-Content $FilePath -Raw Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2022-06-01") -Method PUT -Payload $DCRContent
- Sikeres hívás esetén a válasz "200" állapotkóddal jelenik meg, jelezve, hogy a DCR frissült.
- Most már navigálhat a DCR-hez, és megvizsgálhatja annak tartalmát a portálon a "JSON View" függvényen keresztül, vagy megismételheti az oktatóanyag első részét a DCR-tartalom fájlba való beolvasásához.
Mindent összehozni
Ha már tudjuk, hogyan olvashatjuk és frissíthetjük a DCR tartalmát, tegyünk össze mindent egy segédprogramszkriptbe, amely mindkét művelet együttes végrehajtására használható.
param ([Parameter(Mandatory=$true)] $ResourceId)
# get DCR content and put into a file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2022-06-01") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath
# Open DCR in code editor
code $FilePath | Wait-Process
#Wait for confirmation to apply changes
$Output = Read-Host "Apply changes to DCR (Y/N)? "
if ("Y" -eq $Output.toupper())
{
#write DCR content back from the file
$DCRContent = Get-Content $FilePath -Raw
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2022-06-01") -Method PUT -Payload $DCRContent
}
#Delete temporary file
Remove-Item $FilePath
A segédprogram használata
Feltéve, hogy a szkriptet fájlként mentette, elnevezve DCREditor.ps1
, és módosítania kell egy olyan adatgyűjtési /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/foo/providers/Microsoft.Insights/dataCollectionRules/bar
szabályt, amelynek erőforrás-azonosítója van, ezt a következő parancs futtatásával teheti meg:
.\DCREditor.ps1 "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/foo/providers/Microsoft.Insights/dataCollectionRules/bar"
A DCR-tartalom megnyílik a beágyazott kódszerkesztőben. Ha a szerkesztés befejeződött, az "Y" beírása a szkript parancssorában újra alkalmazza a módosításokat a DCR-ben.
Következő lépések
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: