OPNsense Forum

International Forums => German - Deutsch => Topic started by: xenon2008 on April 22, 2024, 09:19:58 PM

Title: Firmware Update Notification Monit
Post by: xenon2008 on April 22, 2024, 09:19:58 PM
Hallo zusammen,

Ich habe in meiner OPNSense gesehen,dass man mittels CronJob auf neue Firmware Updates prüfen kann.
Nun hatte ich die Idee, bzw. mich gefragt, ob ich mir dann nicht via Monit eine Benachrichtigung schicken lassen kann?
weiß das jemand?
Bzw. könntet ihr mir das zeigen/erklären, was ich hier in Monit einstellen muss?

Danke &LG
xenon
Title: Re: Firmware Update Notification Monit
Post by: thomas-hn on May 06, 2024, 08:13:40 AM
Hallo,

hast du hierfür schon eine Lösung gefunden?
Title: Re: Firmware Update Notification Monit
Post by: faunsen on May 08, 2024, 06:01:09 PM
Du kannst die Datei /tmp/pkg_upgrade.json überwachen.
Siehe auch https://forum.opnsense.org/index.php?topic=27123.msg132035#msg132035 (https://forum.opnsense.org/index.php?topic=27123.msg132035#msg132035)

Title: Re: Firmware Update Notification Monit
Post by: fastboot on November 29, 2024, 11:40:20 PM
Zwar nen alter Fred. Aber ja, geht


cat /usr/local/bin/check_opnsense_update.sh
#!/bin/sh

# Aktuelle installierte Version abrufen
CURRENT_VERSION=$(opnsense-version)

# Verfügbare Version abrufen
AVAILABLE_VERSION=$(opnsense-update -c)

# Prüfen, ob die verfügbare Version leer ist
if [ -z "$AVAILABLE_VERSION" ]; then
    # Keine neue Version verfügbar
    echo "NO_UPDATE: Current version: $CURRENT_VERSION"
    exit 0
else
    # Neue Version verfügbar
    echo "UPDATE_AVAILABLE: Current version: $CURRENT_VERSION, Available version: $AVAILABLE_VERSION"
    exit 1
fi



Service Test Settings:
Name: check_opnsense_update
Condition: status != 0
Action: Alert

Service Settings:
Name: OPNsense_Update_Check
Type: custom
Path: /usr/local/bin/check_opnsense_update.sh
Tests: check_opnsense_update
Poll Time: 0 0 * * *
Note: for daily checks at 0:00

Alert Settings:
Recipient: e@mail.com
Events: status failed
Mail Format:
from: [FW@lalelu.com]
reply-to: [e@mail.com]
subject: Monit Alert -- $EVENT
message: $EVENT Service $SERVICE

Date: $DATE
Action: $ACTION
Host: $HOST
Description: $DESCRIPTION

Cheers,

Monit

Reminder: 3600



Cheers
Title: Re: Firmware Update Notification Monit
Post by: user998282312 on December 03, 2024, 08:17:30 PM
Ich habe dein Script ausprobiert. Gibt mir aber aktuell (24.7.10 ist seit heute verfügbar) immer noch diesen Output: NO_UPDATE: Current version: OPNsense 24.7.9_1 (amd64)


Wie müsste das Script angepasst werden?
opnsense-update -c
liefert leider gar keinen Output.
Title: Re: Firmware Update Notification Monit
Post by: fastboot on December 03, 2024, 09:30:59 PM
Danke für den Hinweis, dass eine neue Version rausgekommen ist.

Ja, Du hast Recht. Der Befehl "opnsense-update -c" gibt leider gar nichts aus. Hätte ich so nicht erwartet. Also vermutlich falsch interpretiert, oder er macht nicht was er soll.

Hier ein angepasstes Script. Damit funktioniert es.


Edit: Hatte nen Fehler noch drin. Und zwar wird bei dem output von opnsense-version mehr ausgegeben, als nur die Versionsnummer. Mit dem awk ist es fixed. Teste gerne mal.
Edit_2: Die echos kannst Du auskommentieren. Sind nur zum debuggen drin...
#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# Aktuelle installierte Version abrufen und nur die Versionsnummer extrahieren
CURRENT_VERSION=$(opnsense-version | awk '{print $2}')

# Verfügbare Version aus dem Repository abrufen
AVAILABLE_VERSION=$(pkg rquery '%v' opnsense)

if [ "$CURRENT_VERSION" = "$AVAILABLE_VERSION" ]; then
    # Keine neue Version verfügbar
    echo "NO_UPDATE: Current version: $CURRENT_VERSION"
    exit 0
else
    # Update verfügbar
    echo "UPDATE_AVAILABLE: Current version: OPNsense $CURRENT_VERSION, Available version: OPNsense $AVAILABLE_VERSION"
    exit 1
fi
Title: Re: Firmware Update Notification Monit
Post by: user998282312 on December 03, 2024, 10:28:14 PM
Vielen Dank! Funktioniert super!  8)
Title: Re: Firmware Update Notification Monit
Post by: philipp86720 on March 19, 2025, 11:11:30 PM
Funktioniert leider mit der Business-Version nicht (mehr)...

QuoteUPDATE_AVAILABLE: Current version: OPNsense 24.10.2_6, Available version: OPNsense 24.7.12_4
Title: Re: Firmware Update Notification Monit
Post by: fastboot on April 14, 2025, 12:39:43 PM
Sorry... Keine Kekse, keinen Support...

Ich gehe davon aus, du arbeitest nicht in der IT?

Nix persönliches. Allerdings "geht nicht" "funktioniert nicht", hilft nicht sonderlich beim Troubleshooten. Für mich funktioniert es noch bei der non business version.

Zudem schaue ich hier eher selten rein. Allerdings hätte ich vermutlich direkt helfen können, sofern ich eine hilfreiche Problembeschreibung bekommen hätte. Einfach mal drüber nachdenken ;)

Title: Re: Firmware Update Notification Monit
Post by: layerbreak on August 29, 2025, 12:45:11 PM
@fastboot
Vielen Dank für dein Script. Nur ich bekomme es irgendwie nicht zum Laufen.
Im Logfile sind keinerlei Einträge hierzu, daher für mich sehr schwierig den Grund herauszufinden. Ich versuche es mal mit Screenshots, vielleicht kann mir so geholfen werden.
Installiert ist 25.7.1 und wenn ich das Script auf der Konsole ausführe, wird mir auch die neue Version angezeigt.


Du hast hier gepostet:
Quote from: fastboot on May 27, 2025, 09:49:15 AMAs it seems the cronjob at 10PM did not work for me. For what ever reason. It was not executed every day at 10PM.... I changed the time to "90 cycles".
Not sure if anything has been changed with monit recently. At least this way it works again.

Wo bitte hast du die 90 Zyklen eingestellt? Und wann beginnt immer ein neuer Zyklus?
Title: Re: Firmware Update Notification Monit
Post by: layerbreak on August 30, 2025, 01:59:38 PM
Sodele, Fehler gefunden - teils mein Fehler, teil etwas spezielles von Monit.
Also hier für die Nachwelt.

Mein Fehler war, dass ich als Absender und Empfänger die gleiche eMail-Adresse fälschlicherweise eingetragen hatte. Müssen natürlich zwei verschiedene Adressen sein.

In den Service-settings unter PollTime darf im Cron-style keine einzelne Minute spezifiziert sein, sondern es muss eine Minuten-Range eingetragen werden.
Siehe unter Limitations: https://mmonit.com/monit/documentation/monit.html#SERVICE-POLL-TIME (https://mmonit.com/monit/documentation/monit.html#SERVICE-POLL-TIME)
z.B.
0-5 6 * * 0
Jeden Sonntag von 6:00 bis 6:05 Uhr überprüfen - so läuft das Script zwischen 2 bis 3 Mal durch in dieser Zeit.

Btw, eine gute Idee ist, unter General Settings unter LogFile "syslog" einzutragen, um in Services/Monit/LogFile zu sehen, ob überhaupt was geschieht.
Title: Re: Firmware Update Notification Monit
Post by: layerbreak on August 31, 2025, 09:47:13 AM
So sieht das Ergebnis heute aus:
2025-08-31T06:05:04
Error
monit
'OPNsense_Update_Check' status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 25.7.1_1, Available version: OPNsense 25.7.2
2025-08-31T06:03:03
Error
monit
'OPNsense_Update_Check' status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 25.7.1_1, Available version: OPNsense 25.7.2
Title: Re: Firmware Update Notification Monit
Post by: no_Legend on March 05, 2026, 10:51:29 AM
Funktioner das Script bei der Aktuellen Version noch?

Danke und Grüße Robert
Title: Re: Firmware Update Notification Monit
Post by: layerbreak on March 05, 2026, 07:37:20 PM
Quote from: no_Legend on March 05, 2026, 10:51:29 AMFunktioner das Script bei der Aktuellen Version noch?

JUP, bin allerdings noch auf Version 25.7.10 und noch nicht auf 26.x.x
Script überprüft immer nur Sonntags zwischen 06:00 und 06:05 Uhr.

Program 'OPNsense_Update_Check'
  status                       Status failed
  monitoring status            Waiting
  monitoring mode              active
  on reboot                    start
  last exit value              1
  last output                  UPDATE_AVAILABLE: Current version: OPNsense 25.7.10, Available version: OPNsense 25.7.11_9
  data collected               Sun, 01 Mar 2026 06:04:57
Title: Re: Firmware Update Notification Monit
Post by: fastboot on March 05, 2026, 11:25:38 PM
Program 'OPNsense_Update_Check'
  status                       OK
  monitoring status            Waiting
  monitoring mode              active
  on reboot                    start
  last exit value              0
  last output                  NO_UPDATE: Current version: 26.1.3
  data collected               Thu, 05 Mar 2026 22:27:06
Title: Re: Firmware Update Notification Monit
Post by: drosophila on March 16, 2026, 07:45:16 PM
Quote from: layerbreak on August 30, 2025, 01:59:38 PMMein Fehler war, dass ich als Absender und Empfänger die gleiche eMail-Adresse fälschlicherweise eingetragen hatte. Müssen natürlich zwei verschiedene Adressen sein.
Das ist zumindest inzwischen nicht mehr so, bzw. falls doch, ein Problem mit Deinem speziellen Mailprovider. Ich schicke mir seit Jahren erfolgreich selber Mails mit allen möglichen Kisten und Diensten...
Vorstellen könnte ich mir aber, daß Du bei der ursprünglichen Senderadresse erst "Zugriff für externe Programme erlauben" irgendwo ganz tief versteckt in den Optionen vom Mailkonto aktivieren müßtest, damit das funktioniert.
Title: Re: Firmware Update Notification Monit
Post by: layerbreak on March 18, 2026, 08:40:09 PM
Quote from: no_Legend on March 05, 2026, 10:51:29 AMFunktioner das Script bei der Aktuellen Version noch?

Sodele, jetzt kann ich deine Antwort beantworten.
Ja, auch mit der neuen Version 26.x funktioniert das Script und auch die eMail-Benachtrichtigung.
Program 'OPNsense_Update_Check'
  status                       Status failed
  monitoring status            Waiting
  monitoring mode              active
  on reboot                    start
  last exit value              1
  last output                  UPDATE_AVAILABLE: Current version: OPNsense 26.1.3, Available version: OPNsense 26.1.4
  data collected               Sun, 15 Mar 2026 06:04:21

und auch die email-Benachrichtigung geht
Betreff: OPNSense - neue Version vorhanden

Status failed Service: OPNsense_Update_Check

Date: Sun, 15 Mar 2026 06:02:20
Action: alert
Host: OPNsense.mutter.internal
Bechreibung: status failed (1) -- UPDATE_AVAILABLE: Current version: OPNsense 26.1.3, Available version: OPNsense 26.1.4

Gruessle

Monit von OPNSense
Title: Re: Firmware Update Notification Monit
Post by: Most on June 19, 2026, 05:00:00 PM

UPDATE_AVAILABLE: Current version: OPNsense 26.4.1, Available version: OPNsense 26.1.10. Irgendwie funktioniuert es nicht mehr..


Title: Re: Firmware Update Notification Monit
Post by: fastboot on June 20, 2026, 07:40:47 AM
Quote from: Most on June 19, 2026, 05:00:00 PMUPDATE_AVAILABLE: Current version: OPNsense 26.4.1, Available version: OPNsense 26.1.10. Irgendwie funktioniuert es nicht mehr..




Mit Verlaub: So sollte man keinen Support erwarten.

Ein einzelnes "funktioniert nicht mehr" zusammen mit einer Ausgabe, die offensichtlich zwei unterschiedliche Versionsstände zeigt, ist keine brauchbare Fehlerbeschreibung. Business Version != FREE Version

Wenn man Hilfe möchte, sollte man zumindest die verwendeten Befehle, deren Ausgaben und die eigene Umgebung nennen.  Damit hätte sich innerhalb weniger Sekunden erkennen lassen, was tatsächlich verglichen wird.

Mein Script macht genau das, wofür es geschrieben wurde. Aus der geposteten Ausgabe allein lässt sich weder ein Fehler im Script noch ein Defekt nachweisen. Sie zeigt lediglich, dass die installierte Version und die vom abgefragten Repository gelieferte Version voneinander abweichen.

Wer einen Fehler vermutet, sollte zunächst nachvollziehen, wie die Ausgabe zustande kommt, bevor er pauschal behauptet, etwas würde nicht mehr funktionieren. Manchmal sagt meine Glaskugel auch einfach: Nein.



#!/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PKG_NAME="opnsense"

CURRENT_VERSION=$(opnsense-version 2>/dev/null | awk '{print $2}')
AVAILABLE_VERSION=$(pkg rquery '%v' "$PKG_NAME" 2>/dev/null)

if [ -z "$CURRENT_VERSION" ]; then
    echo "UNKNOWN: Could not determine installed OPNsense version"
    exit 3
fi

if [ -z "$AVAILABLE_VERSION" ]; then
    echo "UNKNOWN: Could not determine repository version for $PKG_NAME"
    exit 3
fi

if [ "$CURRENT_VERSION" = "$AVAILABLE_VERSION" ]; then
    echo "NO_UPDATE: Current version: OPNsense $CURRENT_VERSION"
    exit 0
fi

# FreeBSD/pkg-kompatibler Versionsvergleich
if pkg version -t "$CURRENT_VERSION" "$AVAILABLE_VERSION" >/dev/null 2>&1; then
    CMP=$(pkg version -t "$CURRENT_VERSION" "$AVAILABLE_VERSION")

    case "$CMP" in
        "<")
            echo "UPDATE_AVAILABLE: Current version: OPNsense $CURRENT_VERSION, Available version: OPNsense $AVAILABLE_VERSION"
            exit 1
            ;;
        ">")
            echo "VERSION_MISMATCH: Installed OPNsense $CURRENT_VERSION is newer than repository version OPNsense $AVAILABLE_VERSION"
            exit 2
            ;;
        "=")
            echo "NO_UPDATE: Current version: OPNsense $CURRENT_VERSION"
            exit 0
            ;;
        *)
            echo "UNKNOWN: Unexpected comparison result: $CMP"
            exit 3
            ;;
    esac
else
    echo "UNKNOWN: Version comparison failed: installed=$CURRENT_VERSION repository=$AVAILABLE_VERSION"
    exit 3
fi


Wichtiger Hinweis zur Nutzung:

Dieses Script wird auf eigene Gefahr von Anwendern, Anwenderinnen, Anwendenden, Anwender*innen, Anwender und sonstigen scriptnutzenden Personen verwendet. Für Schäden an Hardwarern, Softwareinnen, Firmwarenden, Netzwerkern, Netzwerkenden oder sonstigen digital arbeitenden Wesen wird keinerlei Haftung übernommen.

Bitte konsultieren Sie vor der Verwendung Ihren Arzt, Ihre Ärztin, Ihr Ärztendenwesen, Ihren Apotheker, Ihre Apothekerin, Ihre Apothekerndenfachkraft, Ihren Tierpfleger, Ihre Tierpflegerin, Ihre Tierpflegefachperson sowie gegebenenfalls Ihren Systemadministrator, Ihre Systemadministratorin oder Ihre systemadministrierenden Fachkräfte.

Sollten nach der Nutzung Symptome wie "geht nicht", "funktioniert nicht", "habe nichts geändert", "ist plötzlich kaputt", "war gestern noch gut" oder "das Script ist schuld" auftreten, wenden Sie sich bitte umgehend an qualifizierte Troubleshooter, Troubleshooterinnen, Troubleshootende oder anderweitig fehlersuchende Personen.

Mit der Ausführung erklären Sie sich einverstanden, dass Sie die Ausgabe lesen, verstehen, interpretieren und gegebenenfalls darüber nachdenken. Sollten Sie dazu nicht in der Lage sein, lassen Sie das Script bitte durch eine fachkundige Person, Fachkraft, Fachperson oder fachkraftausübende Person Ihres Vertrauens bedienen.