PowerShell kullanarak Azure İzleyici'de Log Analytics çalışma alanını yapılandırma

Aşağıdaki örnek betik, Log Analytics aracısını kullanarak sanal makinelerden birden çok günlük türünü toplamak için çalışma alanını yapılandırıyor.

Bu betik aşağıdaki işlevleri gerçekleştirir:

  1. Çalışma alanı oluşturma.
  2. Windows aracısının yüklü olduğu bilgisayarlardan IIS günlüklerinin toplanmasını etkinleştirin.
  3. Linux bilgisayarlardan Mantıksal Disk performans sayaçlarını toplama (% Kullanılan Inodes; Ücretsiz Megabayt; Kullanılan Alan Yüzdesi; Disk Aktarımları/sn; Disk Okuma/sn; Disk Yazma/sn).
  4. Linux bilgisayarlardan Syslog olaylarını toplayın.
  5. Windows bilgisayarlardan Uygulama Olay Günlüğü'nden Hata ve Uyarı olaylarını toplayın.
  6. Windows bilgisayarlardan Kullanılabilir Bellek Mb'ları performans sayacını toplayın.
  7. Özel bir günlük toplayın.
$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"

Not

Özel günlük yapılandırmasını tanımlayan parametrenin biçimi CustomLogRawJson karmaşık olabilir. Var olan bir özel günlüğün yapılandırmasını almak için Get-AzOperationalInsightsDataSource kullanın. Properties özelliği parametresi için CustomLogRawJson gereken yapılandırmadır.

Önceki örnekte, regexDelimiter yeni satır için olarak \\n tanımlanmıştır. Günlük sınırlayıcısı bir zaman damgası da olabilir. Aşağıdaki tabloda desteklenen biçimler listelenmektedir.

Biçimlendir JSON RegEx biçimi standart Bir RegEx'teki her \ biri için iki \\ tane kullanır, bu nedenle bir RegEx uygulamasında \\ test ediyorsanız\
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
MMM'nin ardından iki boşluk
(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
burada + + veya a -
burada 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
T, T harfinin değişmez harfidir
((\\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]

Sorun giderme

Son 14 gün içinde silinmiş ve geçici silme durumunda olan bir çalışma alanı oluşturduğunuzda, çalışma alanı yapılandırmanıza bağlı olarak işlemin farklı bir sonucu olabilir. Örnek:

  • Silinen çalışma alanıyla aynı çalışma alanı adını, kaynak grubunu, aboneliği ve bölgeyi sağlarsanız, çalışma alanınız kurtarılır. Kurtarılan çalışma alanı verileri, yapılandırmayı ve bağlı aracıları içerir.

  • Çalışma alanı adı kaynak grubu başına benzersiz olmalıdır. Zaten var olan ve kaynak grubunuzda geçici silmede olan bir çalışma alanı adı kullanırsanız bir hata alırsınız. Hatada "Çalışma alanı adı 'workspace-name' benzersiz değil" veya "çakışma" ifadesi görüntülenir. Geçici silmeyi geçersiz kılmak, çalışma alanınızı kalıcı olarak silmek ve aynı ada sahip yeni bir çalışma alanı oluşturmak için, önce çalışma alanını kurtarmak ve sonra kalıcı silme gerçekleştirmek için şu adımları izleyin:

    • Çalışma alanınızı kurtarma.
    • Çalışma alanınızı kalıcı olarak silme.
    • Aynı çalışma alanının adını kullanarak yeni bir çalışma alanı oluşturma.

Sonraki adımlar

Log Analytics yapılandırması için PowerShell kullanma hakkında daha fazla bilgi için Log Analytics PowerShell cmdlet'lerini gözden geçirin.