Megosztás a következőn keresztül:


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:

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.

  1. Kattintson a Cloud Shell gombra az Azure Portalon, és győződjön meg arról, hogy a környezet PowerShellre van állítva.

    Screenshot of opening cloud shell

  2. 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".

  1. Nyissa meg az előző részben létrehozott fájlt szerkesztésre egy tetszőleges szerkesztővel.
  2. 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"
    
  3. 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"
    
  4. 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.

  1. 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.
  2. 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 
    
  3. Sikeres hívás esetén a válasz "200" állapotkóddal jelenik meg, jelezve, hogy a DCR frissült.
  4. 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/barszabá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