/images/avatar.jpeg

Work and live with IT

Report des Log Analytics Workspace für alle Azure VMs

Manchmal möchte man nur wissen, an welchen Log Analytics Workspace (OMS für die älteren Leute da draußen) eine VM ihre Log Daten sendet. Oder sogar alle von euren Azure VMs auf einmal? Mit dem folgenden Skript ist diese Aufgabe kinderleicht. Und dank RamblingCookieMonster und seinem PSExcel Modul kannst du das Ergebnis direkt an alle Excelliebhaber versenden. ReportLogAnalyticsWorkspacePerVM.ps1 #region Report: All VMs including the status, and OMS workplace $Subscriptions = Get-AzureRmSubscription | Where-Object { $_.

Azure Log Analytics - RegEx Groß-Kleinschreibung ignorieren

Bei der Suche in Log Analytics kann matches regex sehr hilfreich sein. Im Standard ist die Regular Expression Case Sensitive. Um dies zu ändern muss der Paramter i übergeben werden. Hier eine Beispielabfrage, mit der die IIS Logs nach Logs von einem bestimmten Computer durchsucht werden. W3CIISLog | where ( Computer matches regex "(?i)MyCoMpUtEr" ) // (?i) = Case insensitive

AzureRM.Network 0.9 macht Probleme mit Azure Automation

Solltet Ihr Azure Automation nutzen und das Modul AzureRM.Network in einer der Versionen von 0.9.0 bis min. 0.10.0 nutzen, kann es zu Problemen bei der Ausführung von Azure Automation Runbooks kommen. Sollten die verwendeten Runbooks insgesamt etwas aufwändiger sein, kann es durch diese Version zu hoher Memory Auslastung kommen. Sollten über 400 MB RAM verwendet werden, endet das Runbook nach drei Versuchen im Status “Suspended”. Fehler The runbook job was attempted 3 times, but it failed each time.

Eine freie IP Adresse in Azure finden

Ob bei automatisiertem Deployment oder beim Erstellen eines Load Balancer in Azure. Eine freie IP Adresse zu finden ist leider mit den vorhandenen cmdlets nicht ohne weiteres möglich. Test-AzureRmPrivateIPAddressAvailability Eine beliebte Variante ist die Nutzung des cmdlets Test-AzureRmPrivateIPAddressAvailability. Es liefert bei der Angabe des Netzwerks und einer IP Adresse den Wert TRUE oder FALSE zurück. Manche Menschen fangen jetzt an jede Netzwerkadresse in einem Subnets zu testen, bis eine freie IP Adresse mittels TRUE bestätigt wird.

AzureSimpleREST Module

Obwohl Microsoft einen tollen Job mit ihrem AzureRM Modul macht, gibt es immer wieder Gründe diese cmdlets nicht zu nutzen. In den meisten Fällen weil Sie langsamer sind als direkte Anfragen gegen die Azure REST API sind. In anderen Fällen weil bestimme Funktionalitäten noch nicht implementiert wurden. In diese Lücke positioniert sich das von mir geschriebene Modul AzureSimpleREST Das Modul beinhaltet z.B. Funktionen wie “Get-AzSRVMProtectionStatus” die zwar einen offiziell dokumentierten REST Call nutzt, mir aber kein AzureRM cmdlet bekannt ist, dass diese Funktion zu Verfügung stellt.

PowerShell Modul Entwicklung: Pester Tests

Mittels Pester Tests lässt sich bei der PowerShell Modul Entwicklung ein Grad an Qualität sicherstellen, die man sonst nur sehr aufwändig manuell erreichen würde. Dabei gilt es zwei wichtige Faktoren zu prüfen. Modul- und Funktions-Integrität. Funktions-Integrität Auf diesen Punkt werde ich in einem späteren Blogeintrag genauer eingehen. Kurz gesagt muss die eigentliche Funktion des Moduls sichergestellt werden. Ein beliebtes Beispiel ist eine Funktion die zwei Zahlen addiert. Pester erlaubt es zu prüfen ob die Funktion bei der Übergabe von 2 + 3 wirklich 5 zurückliefert.