Membuat serta mengonfigurasikan ruang kerja Log Analytics di Azure Monitor menggunakan PowerShell

Contoh skrip berikut mengonfigurasi ruang kerja untuk mengumpulkan beberapa jenis log dari komputer virtual dengan menggunakan agen Analitik Log.

Skrip ini menjalankan fungsi berikut:

  1. Membuat ruang kerja.
  2. Aktifkan pengumpulan log IIS dari komputer dengan agen Windows terinstal.
  3. Kumpulkan penghitung perf Disk Logis dari komputer Linux (% Inode Yang Digunakan; Megabyte gratis; % Ruang Terpakai; Transfer Disk/dtk; Pembacaan Disk/dtk; Tulis Disk/dtk).
  4. Kumpulkan peristiwa Syslog dari komputer Linux.
  5. Kumpulkan peristiwa Kesalahan dan Peringatan dari Log Peristiwa Aplikasi dari komputer Windows.
  6. Kumpulkan penghitung kinerja Mbyte Memori yang Tersedia dari komputer Windows.
  7. Mengumpulkan log kustom.
$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"

Catatan

Format untuk CustomLogRawJson parameter yang menentukan konfigurasi untuk log kustom bisa rumit. Gunakan Get-AzOperationalInsightsDataSource untuk mengambil konfigurasi untuk log kustom yang ada. Properti Properties adalah konfigurasi yang diperlukan untuk CustomLogRawJson parameter .

Dalam contoh sebelumnya, regexDelimiter didefinisikan sebagai \\n untuk baris baru. Pemisah log mungkin juga merupakan tanda waktu. Tabel berikut ini mencantumkan format yang didukung.

Format Format JSON RegEx menggunakan dua \\ untuk setiap \ dalam RegEx standar, jadi jika pengujian di aplikasi RegEx, kurangi \\ ke \
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
dua spasi setelah 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
di mana + adalah + atau a -
di mana zzzz waktu 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 adalah huruf literal 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]

Pemecahan Masalah

Saat Anda membuat ruang kerja yang dihapus dalam 14 hari terakhir dan berada dalam status penghapusan sementara, operasi dapat memiliki hasil yang berbeda tergantung pada konfigurasi ruang kerja Anda. Contohnya:

  • Jika Anda memberikan nama ruang kerja, grup sumber daya, langganan, dan wilayah yang sama seperti di ruang kerja yang dihapus, ruang kerja Anda akan dipulihkan. Ruang kerja yang dipulihkan mencakup data, konfigurasi, dan agen yang terhubung.

  • Nama ruang kerja harus unik per grup sumber daya. Jika Anda menggunakan nama ruang kerja yang sudah ada dan juga dalam penghapusan sementara di grup sumber daya, Anda akan mendapatkan kesalahan. Kesalahan akan menyatakan "Nama ruang kerja 'workspace-name' tidak unik" atau "konflik." Untuk mengganti penghapusan sementara, hapus ruang kerja Anda secara permanen, dan buat ruang kerja baru dengan nama yang sama, ikuti langkah-langkah ini untuk memulihkan ruang kerja terlebih dahulu lalu lakukan penghapusan permanen:

Langkah berikutnya

Tinjau cmdlet Log Analytics PowerShell untuk informasi selengkapnya tentang menggunakan PowerShell untuk konfigurasi Log Analytics.