راقب بوابات VPN من خلال استكشاف أخطاء Network Watcher وإصلاحها

يعد اكتساب رؤى عميقة حول أداء شبكتك أمراً بالغ الأهمية لتقديم خدمات موثوقة للعملاء. لذلك من الأهمية بمكان اكتشاف حالات انقطاع الشبكة بسرعة واتخاذ الإجراءات التصحيحية للتخفيف من حالة الانقطاع. يمكّنك Azure Automation من تنفيذ مهمة وتشغيلها بطريقة برمجية من خلال دفاتر التشغيل. يؤدي استخدام Azure Automation إلى إنشاء وصفة مثالية لإجراء مراقبة وتنبيه مستمرة واستباقية للشبكة.

السيناريو

السيناريو في الصورة التالية هو تطبيق متعدد المستويات، مع اتصال محلي تم إنشاؤه باستخدام بوابة VPN والنفق. يعد ضمان تشغيل بوابة VPN وتشغيلها أمراً بالغ الأهمية لأداء التطبيقات.

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

Scenario example

هذا السيناريو سوف:

  • أنشئ دفتر تشغيل يستدعي Start-AzureRmNetworkWatcherResourceTroubleshooting cmdlet لاستكشاف حالة الاتصال وإصلاحها
  • ربط جدول إلى runbook

قبل البدء

قبل أن تبدأ هذا السيناريو، يجب أن تتوفر لديك المتطلبات المسبقة التالية:

  • حساب Azure Automation في Azure. تأكد من أن حساب الأتمتة يحتوي على أحدث الوحدات النمطية ويحتوي أيضاً على الوحدة النمطية AzureRM.Network. تتوفر الوحدة النمطية AzureRM.Network في معرض الوحدات النمطية إذا كنت بحاجة إلى إضافتها إلى حساب التشغيل الآلي الخاص بك.
  • يجب أن تكون لديك مجموعة من بيانات الاعتماد التي تم تكوينها في Azure Automation. تعرف على المزيد في Azure Automation security
  • خادم SMTP صالح (Microsoft 365 أو بريدك الإلكتروني المحلي أو آخر) وبيانات الاعتماد المحددة في Azure Automation
  • عبارة شبكة ظاهرية مكونة في Azure.
  • حساب تخزين موجود مع حاوية موجودة لتخزين السجلات فيه.

إشعار

البنية التحتية الموضحة في الصورة السابقة هي لأغراض التوضيح ولم يتم إنشاؤها باستخدام الخطوات الواردة في هذه المقالة.

قم بإنشاء دفتر التشغيل

الخطوة الأولى لتكوين المثال هي إنشاء كتاب التشغيل.

الخطوة 1

انتقل إلى Azure Automation في مدخل Microsoft Azure وانقر على Runbooks

automation account overview

الخطوة 2

انقر فوق Add a runbook لبدء عملية إنشاء runbook.

runbooks blade

الخطوة 3

ضمن Quick Create، انقر فوق Create a new runbook لإنشاء runbook.

add a runbook blade

الخطوة 4

في هذه الخطوة، نطلق اسماً على كتاب التشغيل، ويسمى في المثال Get-VPNGatewayStatus. من المهم إعطاء runbook اسماً وصفياً، ويوصى بإعطائه اسماً يتبع معايير تسمية PowerShell القياسية. نوع runbook لهذا المثال هو PowerShell، والخيارات الأخرى هي الرسوم البيانية، وسير عمل PowerShell، وسير عمل PowerShell الرسومية.

runbook blade

الخطوة 5

في هذه الخطوة، يتم إنشاء كتاب التشغيل، يوفر مثال التعليمة البرمجية التالي كل التعليمات البرمجية المطلوبة للمثال. يجب استبدال العناصر الموجودة في التعليمة البرمجية التي تحتوي على <قيمة> بقيم أخرى من اشتراكك.

استخدم التعليمة البرمجية التالية عند النقر فوق Save

# Set these variables to the proper values for your environment
$automationCredential = "<work or school account>"
$fromEmail = "<from email address>"
$toEmail = "<to email address>"
$smtpServer = "<smtp.office365.com>"
$smtpPort = 587
$runAsConnectionName = "<AzureRunAsConnection>"
$subscriptionId = "<subscription id>"
$region = "<Azure region>"
$vpnConnectionName = "<vpn connection name>"
$vpnConnectionResourceGroup = "<resource group name>"
$storageAccountName = "<storage account name>"
$storageAccountResourceGroup = "<resource group name>"
$storageAccountContainer = "<container name>"

# Get credentials for work or school account
$cred = Get-AutomationPSCredential -Name $automationCredential

# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $runAsConnectionName

"Logging in to Azure..."
Connect-AzureRmAccount `
    -ServicePrincipal `
    -TenantId $servicePrincipalConnection.TenantId `
    -ApplicationId $servicePrincipalConnection.ApplicationId `
    -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
"Setting context to a specific subscription"
Set-AzureRmContext -SubscriptionId $subscriptionId

$nw = Get-AzurermResource | Where {$_.ResourceType -eq "Microsoft.Network/networkWatchers" -and $_.Location -eq $region }
$networkWatcher = Get-AzureRmNetworkWatcher -Name $nw.Name -ResourceGroupName $nw.ResourceGroupName
$connection = Get-AzureRmVirtualNetworkGatewayConnection -Name $vpnConnectionName -ResourceGroupName $vpnConnectionResourceGroup
$sa = Get-AzureRmStorageAccount -Name $storageAccountName -ResourceGroupName $storageAccountResourceGroup 
$storagePath = "$($sa.PrimaryEndpoints.Blob)$($storageAccountContainer)"
$result = Start-AzureRmNetworkWatcherResourceTroubleshooting -NetworkWatcher $networkWatcher -TargetResourceId $connection.Id -StorageId $sa.Id -StoragePath $storagePath

if($result.code -ne "Healthy")
    {
        $body = "Connection for $($connection.name) is: $($result.code) `n$($result.results[0].summary) `nView the logs at $($storagePath) to learn more."
        Write-Output $body
        $subject = "$($connection.name) Status"
        Send-MailMessage `
        -To $toEmail `
        -Subject $subject `
        -Body $body `
        -UseSsl `
        -Port $smtpPort `
        -SmtpServer $smtpServer `
        -From $fromEmail `
        -BodyAsHtml `
        -Credential $cred
    }
else
    {
    Write-Output ("Connection Status is: $($result.code)")
    }

الخطوة 6

بمجرد حفظ runbook، يجب ربط جدول به لأتمتة بدء تشغيل runbook. لبدء العملية، انقر فوق Schedule.

Step 6

يجب إنشاء جدول جديد. انقر فوق Link a schedule to your runbook.

Step 7

الخطوة 1

في التعليمة البرمجية Schedule، انقر فوق Create a new schedule

Step 8

الخطوة 2

في التعليمة البرمجية New Schedule املأ معلومات الجدول. القيم التي يمكن تعيينها موجودة في القائمة التالية:

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

إشعار

إذا كنت بحاجة إلى تشغيل دفتر تشغيل أكثر من كل ساعة، فيجب إنشاء جداول متعددة على فترات زمنية مختلفة (أي 15، 30، 45 دقيقة بعد الساعة)

Step 9

الخطوة 3

انقر فوق حفظ لحفظ الجدول في كتاب التشغيل.

Step 10

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

الآن بعد أن أصبح لديك فهم حول كيفية دمج استكشاف الأخطاء وإصلاحها لـ Network Watcher مع Azure Automation، تعرف على كيفية تشغيل التقاط الحزمة على تنبيهات VM من خلال زيارة إنشاء تنبيه تم تشغيله لالتقاط الحزمة باستخدام Azure Network Watcher.