Vytváření pravidel shromažďování dat (DCR) ve službě Azure Monitor
Existuje několik metod pro vytvoření pravidla shromažďování dat (DCR) ve službě Azure Monitor. V některých případech Azure Monitor vytvoří a spravuje řadič domény podle nastavení, která nakonfigurujete na webu Azure Portal. Možná si ani neuvědomíte, že v některých případech pracujete s DCR. V případě jiných scénářů ale možná budete muset vytvořit vlastní řadiče domény nebo upravit existující scénáře přímo pomocí jejich definice ve formátu JSON. Tento článek popisuje různé metody vytváření DCR a doporučení k jejich úpravám a řešení potíží.
Poznámka:
Tento článek popisuje, jak vytvořit a upravit samotný řadič domény. Pokud chcete vytvořit a upravit přidružení pravidel shromažďování dat, přečtěte si téma Vytvoření a správa přidružení pravidel shromažďování dat.
Oprávnění
K vytvoření přidružení DCR a DCR potřebujete následující oprávnění:
Předdefinovaná role | Rozsahy | Důvod |
---|---|---|
Přispěvatel monitorování |
|
Vytvořte nebo upravte řadiče domény, přiřaďte k počítači pravidla, nasaďte přidružení. |
Přispěvatel virtuálních počítačů Správce prostředků připojeného počítače Azure |
|
Nasaďte rozšíření agenta na virtuálním počítači (virtuální počítač). |
Libovolná role, která zahrnuje akci Microsoft.Resources/deployments/* |
|
Nasaďte šablony Azure Resource Manageru. |
Důležité
Vytvořte řadič domény ve stejné oblasti jako cílový pracovní prostor služby Log Analytics nebo pracovní prostor služby Azure Monitor. Řadič domény můžete přidružit k počítačům nebo kontejnerům z libovolného předplatného nebo skupiny prostředků v tenantovi. Pokud chcete odesílat data mezi tenanty, musíte nejprve povolit Azure Lighthouse.
Vytvoření nebo úprava DCR pomocí webu Azure Portal
Azure Portal poskytuje zjednodušené prostředí pro vytváření DCR pro konkrétní scénáře. Pomocí této metody nemusíte rozumět struktuře DCR, i když můžete být omezeni v konfiguraci, kterou můžete provést, a možná budete muset později upravit definici DCR pro implementaci pokročilé funkce, jako je transformace. Prostředí se pro jednotlivé scénáře bude lišit, proto si projděte dokumentaci ke konkrétnímu scénáři, se kterým pracujete, jak je popsáno v následující tabulce.
Scénář | Popis |
---|---|
Povolení přehledů virtuálních počítačů | Když na virtuálním počítači povolíte přehledy virtuálních počítačů, nainstaluje se agent Azure Monitoru a vytvoří se DCR a přidružuje se k virtuálnímu počítači. Tento řadič domény shromažďuje předdefinovanou sadu čítačů výkonu a neměl by se upravovat. Viz Povolení přehledů virtuálních počítačů. |
Shromažďování klientských dat z virtuálního počítače | Vytvořte na webu Azure Portal DCR pomocí rozhraní s asistencí pro výběr různých zdrojů dat z klientského operačního systému virtuálního počítače. Mezi příklady patří události Systému Windows, události Syslogu a textové protokoly. Agent Azure Monitoru se v případě potřeby automaticky nainstaluje a vytvoří se přidružení mezi dcR a každým vybraným virtuálním počítačem. Viz Shromažďování dat pomocí agenta služby Azure Monitor. |
Export metrik | Vytvoření DCR na webu Azure Portal pomocí rozhraní s asistencí k výběru metrik různých typů prostředků, které se mají shromáždit. Mezi dcR a každým vybraným prostředkem se vytvoří přidružení. Viz Vytvoření pravidla shromažďování dat (DCR) pro export metrik. |
Vytvoření tabulky | Když vytvoříte novou tabulku v pracovním prostoru služby Log Analytics pomocí webu Azure Portal, nahrajete ukázková data, která Azure Monitor používá k vytvoření DCR, včetně transformace, která se dá použít s rozhraním API pro příjem protokolů. Tento řadič domény nemůžete změnit na webu Azure Portal, ale můžete ho upravit pomocí některé z metod popsaných v tomto článku. Viz Vytvoření vlastní tabulky. |
Monitorování Kubernetes | Pokud chcete monitorovat cluster Kubernetes, povolíte Container Insights pro protokoly a Prometheus metriky. Pro každý se vytvoří DCR a přidružuje ke kontejnerizované verzi agenta Služby Azure Monitor v clusteru. Možná budete muset upravit DCR Container Insights, aby se přidala transformace. Viz Povolení monitorování pro clustery Kubernetes a transformace dat v Přehledech kontejnerů. |
DcR transformace pracovního prostoru | Transformační žádosti o pracovní prostor poskytují transformace pro scénáře shromažďování dat, které ještě nepoužívají řadiče domény. Tento řadič domény můžete vytvořit pomocí webu Azure Portal a vytvořit transformaci pro určitou tabulku. Viz Vytvoření transformace pracovního prostoru DCR. |
Definice DCR
Bez ohledu na to, jak se vytváří, má každá DCR definici, která se řídí standardním schématem JSON. Pokud chcete vytvořit nebo upravit DCR pomocí jiné metody než webu Azure Portal, musíte pracovat přímo s její definicí JSON. V některých scénářích musíte pracovat s definicí JSON, protože Azure Portal nenabízí způsob konfigurace DCR podle potřeby.
Json pro DCR můžete zobrazit na webu Azure Portal kliknutím na zobrazení JSON v nabídce Přehled .
Ověřte, že je v rozevíracím seznamu verze rozhraní API vybraná nejnovější verze rozhraní API. Pokud ne, nemusí se některé json zobrazit.
Json pro DCR můžete také načíst voláním rozhraní REST API DCR. Následující skript PowerShellu například načte JSON pro DCR a uloží ho do souboru.
$ResourceId = "<ResourceId>" # Resource ID of the DCR to edit
$FilePath = "<FilePath>" # File to store DCR content
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File -FilePath $FilePath
Poznámka:
Podrobnosti pro DCR můžete získat pomocí Get-AzDataCollectionRule
rutiny v PowerShellu nebo az monitor data-collection rule show
příkazu v Azure CLI, ale neobsahují JSON ve formátu, který potřebujete k úpravám. Místo toho pomocí PowerShellu nebo rozhraní příkazového řádku volejte rozhraní REST API, jak je znázorněno v příkladu.
Vytvoření nebo úprava DCR pomocí JSON
Kromě úprav existujícího řadiče domény můžete vytvořit nový pomocí jednoho z ukázkových řadičů domény, které poskytují JSON pro několik běžných scénářů. Pomocí informací ve struktuře pravidla shromažďování dat ve službě Azure Monitor můžete upravit soubor JSON pro konkrétní prostředí a požadavky.
Jakmile budete mít definici DCR, můžete ji nasadit do Služby Azure Monitor pomocí webu Azure Portal, rozhraní příkazového řádku, PowerShellu, rozhraní API nebo šablon ARM.
Vytvoření nebo úprava DCR pomocí rozhraní příkazového řádku
Pomocí příkazu az monitor data-collection rule create vytvořte DCR ze souboru JSON. Stejný příkaz můžete použít k aktualizaci existujícího řadiče domény.
az monitor data-collection rule create --location 'eastus' --resource-group 'my-resource-group' --name 'my-dcr' --rule-file 'C:\MyNewDCR.json' --description 'This is my new DCR'
Poznámka:
I když se můžete rozhodnout použít příkazy PowerShellu nebo rozhraní příkazového řádku k vytvoření a úpravě DCR, rozhraní API a metody ARM poskytují podrobnější chybové zprávy, pokud dojde k chybám kompilace.
V následujícím příkladu dcR určuje název tabulky, který v cílovém pracovním prostoru služby Log Analytics neexistuje. Příkaz PowerShellu vrátí obecnou chybovou zprávu, ale volání rozhraní API vrátí podrobnou chybovou zprávu, která určuje přesnou chybu.
Strategie úprav a testování DCR
Když vytváříte nebo upravujete DCR pomocí jeho definice JSON, budete často muset provést několik aktualizací, abyste dosáhli požadované funkčnosti. K aktualizaci dcR potřebujete efektivní metodu, vyřešte ji, pokud nezískáte očekávané výsledky, a proveďte další aktualizace. To platí zejména v případě, že do dcR přidáváte transformaci , protože budete muset ověřit, že dotaz funguje podle očekávání. Vzhledem k tomu, že json nemůžete upravit přímo na webu Azure Portal, jsou některé strategie, které můžete použít.
Použití místního souboru jako zdroje DCR
Pokud jako zdroj souborů DCR, které vytváříte a upravujete, použijete místní soubor JSON, budete mít vždy přístup k nejnovější verzi definice DCR. To je ideální, pokud ke správě změn chcete použít nástroje pro správu verzí, jako je GitHub nebo Azure DevOps. Pomocí editoru, jako je VS Code, můžete také provést změny dcR a pak pomocí nástrojů příkazového řádku aktualizovat dcR ve službě Azure Monitor, jak je popsáno výše.
Následuje ukázkový skript PowerShellu, který můžete použít k nasdílení změn do DCR ze zdrojového souboru. Tím se ověří, že zdrojový soubor je platný json před odesláním do služby Azure Monitor.
param (
[Parameter(Mandatory = $true)][string]$ResourceId, # Resource ID of the DCR
[Parameter(Mandatory = $true)][string]$FilePath # Path to the DCR JSON file to upload
)
# Read the DCR content from the file
Write-Host "Reading new DCR content from: $FilePath" -ForegroundColor Green
$DCRContent = Get-Content $FilePath -Raw
# Ensure the DCR content is valid JSON
try {
$ParsedDCRContent = $DCRContent | ConvertFrom-Json
} catch {
Write-Host "Invalid JSON content in file: $FilePath" -ForegroundColor Red
exit 1
}
# Create or update the DCR in the specified resource group
Write-Host "Deploying DCR $ResourceId ..." -ForegroundColor Green
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent
Uložení obsahu DCR do dočasného souboru
Pokud v místním souboru nemáte definici DCR, můžete ji načíst ze služby Azure Monitor a uložit ji do dočasného souboru. Potom můžete soubor upravit pomocí editoru, jako je VS Code, a teprve potom nasdílejte aktualizace do služby Azure Monitor.
Následuje ukázkový skript PowerShellu, který můžete použít k úpravě existujícího řadiče domény ve službě Azure Monitor. Skript načte definici DCR a před spuštěním nástroje VS Code ji uloží do dočasného souboru. Jakmile označíte skript, který jste uložili změny, řadič domény se aktualizuje novým obsahem a dočasný soubor se odstraní.
param ([Parameter(Mandatory=$true)] $ResourceId)
# Get DCR content and save it to a local file
$FilePath = "temp.dcr"
$DCR = Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method GET
$DCR.Content | ConvertFrom-Json | ConvertTo-Json -Depth 20 | Out-File $FilePath
# Open DCR in code editor
code $FilePath | Wait-Process
{
#write DCR content back from the file
$DCRContent = Get-Content $FilePath -Raw
Invoke-AzRestMethod -Path ("$ResourceId"+"?api-version=2023-03-11") -Method PUT -Payload $DCRContent
}
#Delete temporary file
Remove-Item $FilePath
Použití šablony ARM k úpravě řadiče domény na místě
Pokud chcete provádět úpravy úplně na webu Azure Portal, můžete k načtení šablony ARM pro DCR použít funkci exportu šablony . Pak můžete upravit definici ve formátu JSON a znovu ji nasadit na webu Azure Portal.
Na webu Azure Portal vyberte řadič domény, který chcete upravit, a vyberte Exportovat šablonu. Potom klikněte na Nasadit a znovu nasaďte stejnou šablonu.
Kliknutím na Upravit šablonu otevřete upravitelnou verzi JSON pro DCR. Neměňte hodnoty parametrů.
Proveďte požadované změny řadiče domény a potom klikněte na uložit.
Pokud chcete vytvořit nový řadič domény, změňte parametr name. V opačném případě ponechte parametry beze změny. Kliknutím na Zkontrolovat a vytvořit nasadíte upravenou šablonu a vytvoříte novou dcR.
Pokud je řadič domény platný bez chyb, nasazení proběhne úspěšně a řadič domény se aktualizuje o novou konfiguraci. Kliknutím na Přejít k prostředku otevřete upravený řadič domény.
Pokud řadič domény obsahuje chyby kompilace, zobrazí se zpráva, že nasazení selhalo. Kliknutím na Podrobnosti o chybě a Podrobnosti operace zobrazíte podrobnosti o chybě. Klikněte na Znovu nasadit a potom znovu upravit šablonu , aby se udělaly potřebné změny dcR a pak ho znovu uložte a nasaďte.
Ověření a řešení potíží se shromažďováním dat
Po instalaci řadiče domény může trvat několik minut, než se změny projeví a data se budou shromažďovat s aktualizovaným řadičem domény. Pokud se nezobrazují žádná shromážděná data, může být obtížné určit původní příčinu problému. K řešení potíží použijte funkce monitorování DCR, které zahrnují metriky a protokoly.
Metriky DCR se shromažďují automaticky pro všechny řadiče domény a můžete je analyzovat pomocí Průzkumníka metrik, jako jsou metriky platformy pro další prostředky Azure. Pokud zpracování dat není úspěšné, povolte protokoly chyb DCR, abyste získali podrobné informace o chybách.
Pokud se data neshromažďují, při řešení tohoto problému postupujte podle těchto základních kroků.
- Zkontrolujte metriky, jako
Logs Ingestion Bytes per Min
Logs Rows Received per Min
je a ujistěte se, že data dosáhnou služby Azure Monitor. Pokud ne, zkontrolujte zdroj dat a ujistěte se, že odesílají data podle očekávání. - Zkontrolujte
Logs Rows Dropped per Min
, jestli se některé řádky zahazují. To nemusí znamenat chybu, protože řádky můžou být vyřazeny transformací. Pokud jsou řádky zahozené stejnýmLogs Rows Dropped per Min
způsobem, nebudou se v pracovním prostoru ingestovat žádná data. Zkontrolujte, jestli nedošloLogs Transformation Errors per Min
k nějakým chybám transformace. - Zkontrolujte
Logs Transformation Errors per Min
, jestli se u příchozích dat použijí nějaké chyby z transformací. Příčinou můžou být změny ve struktuře dat nebo samotné transformaci. DCRLogErrors
Zkontrolujte v tabulce všechny chyby příjmu dat, které mohly být zaprotokolovány. To může poskytnout další podrobnosti při identifikaci původní příčiny problému.