كوِّن مساحة عمل Log Analytics في Azure Monitor باستخدام PowerShell

يقوم نموذج البرنامج النصي التالي بتكوين مساحة العمل لجمع أنواع متعددة من السجلات من الأجهزة الظاهرية باستخدام عامل Log Analytics.

ينفذ البرنامج النصي الوظائف التالية:

  1. إنشاء مساحة عمل.
  2. تمكين مجموعة سجلات IIS من أجهزة الكمبيوتر مع تثبيت عامل Windows.
  3. جمع عدادات الأداء للقرص المنطقي من أجهزة كمبيوتر Linux (٪ Inodes المستخدمة؛ ميغابايت مجانية؛ النسبة المئوية للمسافة المستخدمة؛ عمليات نقل القرص/ثانية؛ قراءات القرص/ثانية؛ عمليات كتابة القرص/ثانية).
  4. جمع أحداث Syslog من أجهزة كمبيوتر Linux.
  5. جمع أحداث الخطأ والتحذير من سجل أحداث التطبيق من أجهزة كمبيوتر Windows.
  6. جمع عداد أداء Mbytes المتوفر للذاكرة من أجهزة كمبيوتر Windows.
  7. جمع سجل مخصص.
$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"

إشعار

يمكن أن يكون تنسيق المعلمة CustomLogRawJson التي تحدد التكوين لسجل مخصص معقدا. استخدم Get-AzOperationalInsightsDataSource لاسترداد التكوين لسجل مخصص موجود. الخاصية Properties هي التكوين المطلوب للمعلمة CustomLogRawJson .

في المثال السابق، regexDelimiter تم تعريف ك \\n للسطر الجديد. قد يكون محدد السجل أيضا طابعا زمنيا. يسرد الجدول التالي التنسيقات المعتمدة.

Format يستخدم تنسيق JSON RegEx اثنين \\ لكل \ في RegEx قياسي، لذلك إذا كان الاختبار في تطبيق RegEx، فتقلل \\ إلى \
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
(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
where + is + or -
إزاحة وقت zzzz لأين
(([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
((\\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]

استكشاف الأخطاء وإصلاحها

عند إنشاء مساحة عمل تم حذفها في آخر 14 يوما وكانت في حالة حذف مبدئي، قد يكون للعملية نتيجة مختلفة اعتمادا على تكوين مساحة العمل. على سبيل المثال:

  • إذا قمت بتوفير نفس اسم مساحة العمل ومجموعة الموارد والاشتراك والمنطقة كما هو الحال في مساحة العمل المحذوفة، فسيتم استرداد مساحة العمل الخاصة بك. تتضمن مساحة العمل المستردة البيانات والتكوين والوكلاء المتصلين.

  • يجب أن يكون اسم مساحة العمل فريدا لكل مجموعة موارد. إذا كنت تستخدم اسم مساحة عمل موجود بالفعل وهو أيضا في الحذف المبدئي في مجموعة الموارد الخاصة بك، فستتلقى خطأ. سيذكر الخطأ "اسم مساحة العمل "اسم مساحة العمل" ليس فريدا" أو "تعارض". لتجاوز الحذف المبدئي، احذف مساحة العمل بشكل دائم، وأنشئ مساحة عمل جديدة بنفس الاسم، اتبع هذه الخطوات لاسترداد مساحة العمل أولا ثم قم بإجراء حذف دائم:

    • استرداد مساحة العمل الخاصة بك.
    • احذف مساحة العمل بشكل دائم.
    • إنشاء مساحة عمل جديدة باستخدام نفس اسم مساحة العمل.

الخطوات التالية

راجع Log Analytics PowerShell cmdlets لمزيد من المعلومات حول استخدام PowerShell لتكوين Log Analytics.