Een Log Analytics-werkruimte configureren in Azure Monitor met behulp van PowerShell

Met het volgende voorbeeldscript wordt de werkruimte geconfigureerd voor het verzamelen van meerdere typen logboeken van virtuele machines met behulp van de Log Analytics-agent.

Met dit script worden de volgende functies uitgevoerd:

  1. Maak een werkruimte.
  2. Het verzamelen van IIS-logboeken van computers waarop de Windows-agent is geïnstalleerd inschakelen.
  3. Prestatiemeteritems voor logische schijven verzamelen van Linux-computers (% gebruikte inodes; Gratis megabytes; % gebruikte ruimte; Schijfoverdrachten per seconde; Schijfleesbewerkingen per seconde; Schrijfbewerkingen per seconde).
  4. Syslog-gebeurtenissen van Linux-computers verzamelen.
  5. Verzamel fout- en waarschuwingsevenementen uit het toepassingslogboek van Windows-computers.
  6. Prestatiemeteritem Geheugen beschikbaar Mbytes verzamelen van Windows-computers.
  7. Een aangepast logboek verzamelen.
$ResourceGroup = "my-resource-group"
$WorkspaceName = "log-analytics-" + (Get-Random -Maximum 99999) # workspace names need to be unique in resource group - Get-Random helps with this for the example code
$Location = "westeurope"

# Create the resource group if needed
try {
    Get-AzResourceGroup -Name $ResourceGroup -ErrorAction Stop
} catch {
    New-AzResourceGroup -Name $ResourceGroup -Location $Location
}

# Create the workspace
New-AzOperationalInsightsWorkspace -Location $Location -Name $WorkspaceName -Sku PerGB2018 -ResourceGroupName $ResourceGroup

# Enable IIS Log Collection using agent
Enable-AzOperationalInsightsIISLogCollection -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName

# Linux Perf
New-AzOperationalInsightsLinuxPerformanceObjectDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -ObjectName "Logical Disk" -InstanceName "*"  -CounterNames @("% Used Inodes", "Free Megabytes", "% Used Space", "Disk Transfers/sec", "Disk Reads/sec", "Disk Writes/sec") -IntervalSeconds 20  -Name "Example Linux Disk Performance Counters"
Enable-AzOperationalInsightsLinuxPerformanceCollection -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName

# Linux Syslog
New-AzOperationalInsightsLinuxSyslogDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -Facility "kern" -CollectEmergency -CollectAlert -CollectCritical -CollectError -CollectWarning -Name "Example kernel syslog collection"
Enable-AzOperationalInsightsLinuxSyslogCollection -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName

# Windows Event
New-AzOperationalInsightsWindowsEventDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -EventLogName "Application" -CollectErrors -CollectWarnings -Name "Example Application Event Log"

# Windows Perf
New-AzOperationalInsightsWindowsPerformanceCounterDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -ObjectName "Memory" -InstanceName "*" -CounterName "Available MBytes" -IntervalSeconds 20 -Name "Example Windows Performance Counter"

# Custom Logs

New-AzOperationalInsightsCustomLogDataSource -ResourceGroupName $ResourceGroup -WorkspaceName $WorkspaceName -CustomLogRawJson "$CustomLog" -Name "Example Custom Log Collection"

Notitie

De indeling voor de CustomLogRawJson parameter waarmee de configuratie voor een aangepast logboek wordt gedefinieerd, kan complex zijn. Gebruik Get-AzOperationalInsightsDataSource om de configuratie voor een bestaand aangepast logboek op te halen. De Properties eigenschap is de configuratie die is vereist voor de CustomLogRawJson parameter.

In het voorgaande voorbeeld regexDelimiter is gedefinieerd als \\n voor newline. Het logboekscheidingsteken kan ook een tijdstempel zijn. De volgende tabel bevat de indelingen die worden ondersteund.

Indeling JSON RegEx-indeling maakt gebruik van twee \\ for every \ in een standaard RegEx, dus als u test in een RegEx-app, vermindert \\ u tot \
YYYY-MM-DD HH:MM:SS ((\\d{2})|(\\d{4}))-([0-1]\\d)-(([0-3]\\d)|(\\d))\\s((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9]
M/D/YYYY HH:MM:SS AM/PM (([0-1]\\d)|[0-9])/(([0-3]\\d)|(\\d))/((\\d{2})|(\\d{4}))\\s((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9]\\s(AM|PM|am|pm)
dd/MMM/yyyy HH:MM:SS (([0-2][1-9]|[3][0-1])\\/(Jan|Feb|Mar|May|Apr|Jul|Jun|Aug|Oct|Sep|Nov|Dec|jan|feb|mar|may|apr|jul|jun|aug|oct|sep|nov|dec)\\/((19|20)[0-9][0-9]))\\s((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9])
MMM dd yyyy HH:MM:SS (((?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|Aug(?:ust)?|Sep(?:tember)?|Sept|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)).*?((?:(?:[0-2]?\\d{1})|(?:[3][01]{1})))(?![\\d]).*?((?:(?:[1]{1}\\d{1}\\d{1}\\d{1})|(?:[2]{1}\\d{3})))(?![\\d]).*?((?:(?:[0-1][0-9])|(?:[2][0-3])|(?:[0-9])):(?:[0-5][0-9])(?::[0-5][0-9])?(?:\\s?(?:am|AM|pm|PM))?))
yyMMdd HH:mm:ss ([0-9]{2}([0][1-9]|[1][0-2])([0-2][0-9]|[3][0-1])\\s\\s?([0-1]?[0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9])
ddMMyy HH:mm:ss (([0-2][0-9]|[3][0-1])([0][1-9]|[1][0-2])[0-9]{2}\\s\\s?([0-1]?[0-9]|[2][0-3]):[0-5][0-9]:[0-5][0-9])
MMM d HH:mm:ss (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s\\s?([0]?[1-9]|[1-2][0-9]|[3][0-1])\\s([0-1]?[0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])
MMM d HH:mm:ss
twee spaties na MMM
(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s\\s([0]?[1-9]|[1-2][0-9]|[3][0-1])\\s([0][0-9]|[1][0-2]):([0-5][0-9]):([0-5][0-9])
MMM d HH:mm:ss (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s([0]?[1-9]|[1-2][0-9]|[3][0-1])\\s([0][0-9]|[1][0-2]):([0-5][0-9]):([0-5][0-9])
dd/MMM/yyyy:HH:mm:ss +zzzz
waarbij + + + of een -
where zzzz time offset
(([0-2][1-9]|[3][0-1])\\/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\/((19|20)[0-9][0-9]):([0][0-9]|[1][0-2]):([0-5][0-9]):([0-5][0-9])\\s[\\+|\\-][0-9]{4})
yyyy-MM-ddTHH:mm:ss
De T is een letterlijke letter T
((\\d{2})|(\\d{4}))-([0-1]\\d)-(([0-3]\\d)|(\\d))T((\\d)|([0-1]\\d)|(2[0-4])):[0-5][0-9]:[0-5][0-9]

Problemen oplossen

Wanneer u een werkruimte maakt die in de afgelopen 14 dagen is verwijderd en de status Voorlopig verwijderen heeft, kan de bewerking een ander resultaat hebben, afhankelijk van uw werkruimteconfiguratie. Bijvoorbeeld:

  • Als u dezelfde werkruimtenaam, resourcegroep, abonnement en regio opgeeft als in de verwijderde werkruimte, wordt uw werkruimte hersteld. De herstelde werkruimte bevat gegevens, configuratie en verbonden agents.

  • De naam van een werkruimte moet uniek zijn per resourcegroep. Als u een werkruimtenaam gebruikt die al bestaat en die ook voorlopig wordt verwijderd in uw resourcegroep, krijgt u een foutmelding. De fout geeft aan dat de werkruimtenaam 'werkruimtenaam' niet uniek is' of 'conflict'. Als u het voorlopig verwijderen wilt overschrijven, uw werkruimte definitief wilt verwijderen en een nieuwe werkruimte met dezelfde naam wilt maken, volgt u deze stappen om de werkruimte eerst te herstellen en vervolgens een permanente verwijdering uit te voeren:

Volgende stappen

Raadpleeg PowerShell-cmdlets voor Log Analytics voor meer informatie over het gebruik van PowerShell voor de configuratie van Log Analytics.