OPNsense Dienst überwachen und Automatisch neustarten

Ich hab noch keine Möglichkeit gefunden in der GUI einen Dienst zu überwachen ob er läuft und ihn automatisch neu zu starten sollte er nicht laufen, da habe ich ein kleines Script zusammen gebastelt und dieses per Cron am laufen, vielleicht nicht ganz elegant aber doch sehr hilfreich.

mir ist aufgefallen das manchmal der Crowdsec Agent sich nachts einfach verabschiedet ohne eine Fehlermeldung, da der Dienst doch sehr wichtig ist, muss er auch immer laufen.

ein Script erstellen und ausführbar machen

/opt/crowdsec-monitor.sh

#!/bin/sh

# Funktion zur Überprüfung und Neustart des Dienstes
check_and_restart_service() {
    service crowdsec status > /dev/null
    status=$?
    if [ $status -ne 0 ]; then
        echo "Der Dienst ist nicht aktiv. Starte ihn neu..."
        service crowdsec start
    else
        echo "Der Dienst läuft."
    fi
}

# Überprüfe und starte den Dienst
check_and_restart_service

/opt/crowdsec-firewall-monitor.sh

#!/bin/sh

# Funktion zur Überprüfung und Neustart des Dienstes
check_and_restart_service() {
    service crowdsec_firewall status > /dev/null
    status=$?
    if [ $status -ne 0 ]; then
        echo "Der Dienst ist nicht aktiv. Starte ihn neu..."
        service crowdsec_firewall start
    else
        echo "Der Dienst läuft."
    fi
}

# Überprüfe und starte den Dienst
check_and_restart_service

um es in der GUI als Cronjob auswählen zu können müssen wir eine Kleinigkeit hinzufügen, im folgenden Verzeichnis eine Datei erstellen, z.b. actions_service-monitor.conf

/usr/local/opnsense/service/conf/actions.d/actions_service-monitor.conf

[crowdsec]
command:/opt/crowdsec-monitor.sh
parameters:
type:script
message:Crowdsec-Monitoring
description:Crowdsec-Monitoring

es lassen sich dort auch mehrere Scripte hinzufügen, die können dan in der GUI einzeln ausgewählt werden.

z.b. so

[crowdsec]
command:/opt/crowdsec-monitor.sh
parameters:
type:script
message:Crowdsec-Monitoring
description:Crowdsec-Monitoring

[crowdsec-firewall]
command:/opt/crowdsec-firewall-monitor.sh
parameters:
type:script
message:Crowdsec-Firewall-Monitoring
description:Crowdsec-Firewall-Monitoring

sobald alle notwendigen Dateien erstellt sind muss einmal configd neu gestartet werden, entweder in der GUI oder optional in der Shell mit folgenden Befehl

service configd restart

jetzt können wir in der GUI unter System/Einstellungen/Cron unser erstelltes Script „Crowdsec-Monitoring“ als Crobjob hinzufügen

ich hoffe diese kleine Anleitung ist hilfreich, vielleicht kennt ja auch jemand eine andere möglichkeit zum überwachen von Diensten :slight_smile:

1 „Gefällt mir“

Währe es nicht einfacher, dem Monit-Service von Opensense zu nutzen, der Dienste überwacht und ggf. restartet ?

Monit - Dokumentation

Ich korrigieren mich - es ist einfacher:

monit 52508 - [meta sequenceId="2"] 'Crowdsec' process is not running
monit 52508 - [meta sequenceId="3"] 'Crowdsec' trying to restart
monit 52508 - [meta sequenceId="4"] 'Crowdsec' start: '/usr/local/sbin/configctl crowdsec start'
monit 52508 - [meta sequenceId="1"] 'Crowdsec' process is running with pid 5525

hatte den vorher manuel gestoppt

2 „Gefällt mir“

kannte ich noch nicht und beim suchen ist mir das auch nicht ins Auge gesprungen,

irgendwie muss man sich ja helfen und so hab ich zumindest eine alternativ Lösung gezeigt, vielleicht ist für den einen oder anderen auch interessant wie man einen cron job hinzufügt der auch in der GUI ausgewählt werden kann, oder aber es gibt wieder einen anderen weg den ich noch nicht gefunden habe :sweat_smile:

Danke für den Hinweis mit Monit

Gerne.
Das ist ein AddOn, welche super gut funktioniert, ich nutze das weil mein AdGuard öfterns nach einem Update der Filterlisten ausgestiegen ist, um den dann zu restarten und das geht super.

Solltest du in OPNsense Forum mal melden, damit die Ursache behoben werden kann. Solche Workarounds können nur temporäre Lösung sein.

ohne eine Fehlermeldung lässt sich sowas schwer melden, es passiert ja nicht ständig, ist eher ganz selten, ist mir in den letzten 2 Monaten nur 3 mal aufgefallen, davor noch nie, vermutlich erst nach dem update auf 24 :man_shrugging:

eine Dienst Überwachung ist dennoch eine gute Sache, ich werde das natürlich weiter beobachten.

Hatte ich auch schon. Wenn du es sachlich schilderst, werden die Devs dir auch Wege aufzeigen, um beim nächsten Mal entsprechende Logs zu haben.

Das ist kein OPNSense-Problem sondern bei den Crowsec-Entwickler richtig adressiert, die müssen dafür sorgen, das deren Software auf allen Plattformen läuft.

Bei mir ist der auch öfters ausgestiegen, seit dem Update auch OPNSense v24, ich hab den bei mir aber mittlerweile komplett deaktiviert, ich sehe keine Sinn in der Software, außer das die ständig Problem mit unsinnig gesperrten Clients in meinem Netz macht.

Woran machst du das fest, dass es nicht an der Implementierung/Paketierung für OPNsense liegt? Daher würde ich mich zuerst an den Maintainer des Packages wenden, was OPNsense ist.

Maintainer: marco@crowdsec.net

noch Fragen ?