FlexLM Lizenzserverüberwachung
Daten über die Nutzung von sogenannten "Floating Lizenzen", zum Beispiel bei ESRI-Software, direkt abzurufen ist leider nicht möglich. Der FlexLM-Lizenzdienst hat keine SNMP-Schnittstelle. Daher muss man die Informationen mit den Tools von FlexNet abrufen und die Nutzdaten aus dem Ergebnis herausfiltern.
Was brauchen Sie?
Erstens: lmutil.exe
Als erstes benötigt man das Programm lmutil.exe. Sie können dieses von der Flexera Website wahlweise in einer 32- oder einer 64-Bit-Variante herunterladen. Kopieren Sie dieses Programm irgendwohin auf Ihren PRTG-Sondenrechner. Es ist keine Installation notwendig. Einfach die ZIP-Datei entpacken und die Datei lmutil.exe kopieren.
Zweitens: Ein PowerShell-Skript
Zusätzlich zu lmutil.exe benötigen Sie ein PowerShell-Skript, welches das Programm aufruft und die Nutzdaten aus dem Ergebnis filtert. Kopieren Sie das Skript einfach in den Pfad
<prtg-installationpath>\custom sensors\exe
Nicht nach
<prtg-installationpath>\custom sensors\powershell scripts
Skript:
#------------------------------------------------------------------------------ # FlexLM-Lizenzüberwachung #------------------------------------------------------------------------------ # Parameter # Args[0] = Lizenzserver # Args[1] = Port # Args[2] = Lizenzbezeichnung # Args[3] = Ergebniswert ("m"...Maximale Anzahl; "a"...Aktuelle Nutzung) #------------------------------------------------------------------------------ Clear-Host if ($args.Count -ne 4) { Exit(2) } $Server = $args[0] $Port = $args[1] $Lizenz = $args[2] $Abrufwert = $args[3] $Lizenzen = &"C:\Program Files\LGV_FlexLM_Tools\lmutil.exe" lmstat -a -c $Port@$Server | Select-String -Pattern ("Users of " + $Lizenz + ":") $Anzahlsuche = [RegEx]"\b [0-9]+ \b" $Werte = $Anzahlsuche.Matches($Lizenzen) switch($Abrufwert) { "m" { Write-Host $Werte[0].Value.Trim(),":OK" } "a" { Write-Host $Werte[1].Value.Trim(),":OK" } } Exit(0)
Nächste Schritte
Informationen zum Lizenzdienst finden
Wenn Sie aus irgendeinem Grund nicht wissen, auf welchem Port der FlexLM-Lizenzdienst lauscht, können Sie auf dem Windows-Server einfach
netstat -f -b
aufrufen. Damit bekommen Sie angezeigt, welches Programm auf welchem TCP/IP-Port lauscht.
Wenn der Server also server01 heißt und der Lizenzdienst auf Port 27004 horcht, dann können Sie - wie im Skript zu sehen - mit dem Kommando
lmutil lmstat -a -c 27004@server01
den Lizenzdienst abrufen.
C:\Program Files\LGV_FlexLM_Tools>lmutil lmstat -a -c 27004@server01 lmutil - Copyright (c) 1989-2009 Flexera Software, Inc. All Rights Reserved. Flexible License Manager status on Tue 3/16/2010 14:07 [Detecting lmgrd processes...] License server status: 27004@server01 License file(s) on server01: C:\Program Files\ESRI\License\arcgis9x\Editor9_30.lic: server01: license server UP (MASTER) v11.6 Vendor daemon status (on server01): ARCGIS: UP v11.4 Feature usage info: Users of Editor: (Total of 50 licenses issued; Total of 30 licenses in use)
Diese Daten werden vom Skript umgesetzt und je nach Auswahlparameter wird entweder die maximale (m) oder die aktuelle (a) Anzahl an genutzten Lizenzen zurückgeliefert.
Für jeden Lizenzserver muss man sich also leider - da mit Custom Sensoren nur ein Wert zurückgegeben werden kann - zwei Sensoren erstellen, die das Skript mit zum Beispiel folgenden Parametern aufrufen
%host port lizenzname m
wobei der Lizenzname im obigen Beispiel (letzte Zeile) Editor wäre.
%host 27004 Editor m
Manchmal stehen da auch nur Zahlen, die man erstmal in die sprechende Namen umsetzen muss. Dafür kann man die Lizenzserversoftware direkt auf dem Lizenzserver nutzen. Die beiden Sensoren kann man dann mittels eines Formelsensors als Kanäle in einen neuen Sensor einbinden und darstellen.
Add comment