Seite 1 von 1
per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Fr 19.01.2024, 10:20
von csg
Hallo zusammen.
Welche Möglichkeiten gibt es, die Daten der UTM per SSH auszulesen?
Ich würde gern aktuell zumindest Lizenzlaufzeit, installierte FW und neue verfügbare FW auslesen, so dass ich die Daten per PS in unser Monitoring überführen kann.
Später vielleicht noch weitere Werte/Daten.
Einen passenden WIKI-Eintrag habe ich noch nicht gefunden.
Bin mir aber sicher, das es geht. ;-)
Danke im Voraus,
Jan
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Fr 19.01.2024, 10:48
von pl85
schau im Wiki mal bei den CLI Befehlen
du suchst
system info
system upgrade info
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Fr 19.01.2024, 11:26
von Mario
Kann man sich bei Bedarf auch als JSON ausgeben lassen:
Entweder als root/ Supportnutzer auf die UTM verbinden
spcli -j
Oder in der CLI direkt:
cli json
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Fr 19.01.2024, 23:13
von kennethj
Moin Jan,
wenn eh schon PowerShell verwendet wird - können die Daten auch per PowerShell ausgelesen werden.
Entweder man verwendet den root Benutzer und einen SSH Key um sich auf die UTM zu verbinden (damit würde ich auch die native SSH Implementierung der PowerShell reichen).
Alternativ verwendet man einen "normalen" admin Benutzer ohne root rechte und das Modul Posh-SSH.
Mit Posh-SSH funktioniert es so:
Code: Alles auswählen
$Loginuser = 'admin'
$LoginUserPasswordSec = convertto-securestring -asplaintext -force 'insecure'
$LoginCreds = New-Object System.Management.Automation.PSCredential($Loginuser,$LoginUserPasswordSec)
New-SSHSession -ComputerName 192.168.175.1 -Credential $LoginCreds -AcceptKey
invoke-sshcommand -sessionID 0 -command 'CLI Befehl'
In diesem Szenario ist die von Mario erwähnte Funktion "cli json" nicht wirklich Nutzbar (außerdem kann PowerShell dem JSON Output der UTM nicht korrekt parsen)
Also muss das ganze "manuell" lokal verarbeitet werden:
Code: Alles auswählen
$utm_output = invoke-sshcommand -sessionID 0 -command 'system info'
Code: Alles auswählen
$utm_output_parsed = $utm_output.Output.Replace('|' ,'') | convertfrom-string -PropertyNames attribute,value
Der erste Befehl holt die Daten von der UTM - der zweite Befehl verarbeitet den Output der UTM, sodass man in der PowerShell damit vernünftig weiterarbeiten kann.
Jetzt kann ganz bequem alles mögliche mit where-object ausgelesen werden - das ganze ist jetzt ein Object:
Code: Alles auswählen
$license_days_left = $utm_output_parsed | Where-Object -FilterScript { $_.attribute -eq "daysleft" }).value
$utm_current_version = $utm_output_parsed | Where-Object -FilterScript { $_.attribute -eq "version" }).value
$utm_new_firmware = $utm_output_parsed | Where-Object -FilterScript { $_.attribute -eq "new" }).value
Gruß
Kenneth
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: So 21.01.2024, 16:03
von pl85
mit New-SSHShellStream und Invoke-SSHStreamShellCommand lässt sich der json Output nutzen - über Posh-SSH
mit ConvertFrom-Json bekommt man dann ein gut verarbeitbares Format
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: So 21.01.2024, 17:54
von kennethj
Moin,
danke für die Info - tatsächlich habe ich mich mit den ShellStream noch nicht beschäftigt. Schaue ich mir aber mal an. Das würde es auf jedenfall vereinfachen, da die Daten dann als json verwendet werden kann.
Gruß
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Mo 22.01.2024, 10:06
von Mario
Ich werde mir das auch einmal notieren.
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Di 23.01.2024, 11:40
von csg
Super.
Danke.
Das hilft mir weiter.
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Mi 24.01.2024, 18:23
von csg
Kurze Frage.
Welcher Wert wird wird hier geschrieben, wenn die Lizenz abgelaufen ist.
Also bei null Tagen oder bei Überschreiten der Lizenzlaufzeit.
daysleft |70
Re: per SSH: Abfrage FW & Lizenzlaufzeit
Verfasst: Mi 24.01.2024, 23:13
von kennethj
Ich glaube in beiden Fällen steht "daysleft" auf 0 als Wert - das weiß ich aber nicht zu 100%