OPNsense Forum
International Forums => German - Deutsch => Topic started by: Jens Falk on May 26, 2021, 11:10:04 am
-
Hallo,
ich finde leider nichts wie ich mit NRPE überwachen kann, ob es ein neue Update von OPNsense gibt.
Ist das überhaupt möglich?
-
Dazu müsstest du ein eigenes Script schreiben was einen API call absetzt
-
Danke. Nein, dazu werde ich nicht kommen. Wenn es einer machen könnte, kann ich gern einen finanzellen Beitrag leisten.
-
Haben wir mit pfSense schon gemacht. Ich kann mal nachschauen ob sich das relativ leicht umbasteln lässt, sollte nur der PKG Call sein.
-
Also wenn deine OPNsense täglich ihre Paketliste refresht/updated so dass die Anzeige immer aktuell ist bzw. regelmäßig der Updatecheck dann auch die richtigen Werte hat, würde es genügen, in Skriptform was in der Richtung zu machen:
* Output von "configctl firmware product"
* Auslesen von "upgrade_packages"
-> Wenn leeres Array , dann "product_version" auslesen und mit error code 0 exit'en
-> Wenn nicht [] leeres Array, dann gibts Updates
--> dann nach package "name: opnsense" schauen
--> current_version und new_version zeigen Versionsunterschied, das in Ausgabe packen und exit mit NRPE Error Code für Crit (je nach Bedarf)
--> wenn opnsense Package nicht im upgradeable Baum
---> dann gibts wohl nur Minor Updates oder von gezielten Paketen wohl wegen Audit/Health Check o.ä.
---> Dann Paketliste auslesen (bspw. alle "name" Attribute) und als Liste ausgeben und mit Fehlercode NRPE Warning ausgeben (oder Crit - wie man es möchte).
---> Alles andere Verhalten (kein richtiger Output) mit NRPE Code für Unknown zurückgeben.
Das wäre so mein Ansatz nach dem ersten Drüberfliegen.
-
Das klingt schon ganz gut. Aus aktuellem Anlass hier eine simple Implementation die nach Major/Minor/Hotfix sucht und die "Updatebarkeit" meldet im System Information Widget:
https://github.com/opnsense/core/blob/5eacbb06f185cedfb80e3c10191264b8703a933c/src/www/widgets/api/plugins/system.inc#L165-L182
Dazu muss man wissen, dass vorher noch "firmware probe" abgerufen werden kann. Entweder synchron oder als Cron Job. Ansonsten wird kein neuer Update Status gepollt.
Grüsse
Franco