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%