Tomcat-Fehlerprüfung mit Bash

Tomcat-Fehlerprüfung mit Bash

Kann mir jemand etwas Licht in die Sache bringen und mir den richtigen Weg weisen?

Ich möchte ein Skript in Bash erstellen, das beim Start der Tomcat-App Ausnahmen in den Protokollen überprüft. Dieses Skript sollte in der Lage sein, die Erstellung neuer Dateien im laufenden Betrieb zu erkennen, möglicherweise über inotify.

Dieses Skript sollte das Protokollverzeichnis ständig auf neue Zeilen in den Protokolldateien überprüfen und diejenigen schreiben, die die Wörter Exception:oder ERRORenthalten /var/log/errorcheckernotifier.txt.

Wenn das Skript diese Zeile erkennt, INFO: Server startup insollte es die Anzahl der beim Start erkannten Ausnahmen TOMCAT IS STARTEDeintragen ./var/log/errorcheckernotifier.txt

Dieses Skript sollte den Inhalt nicht überschreiben errorcheckernotifier.txt. Hängen Sie ihn stattdessen an.

Wie kann ich dieses Skript möglicherweise am Laufen halten und weitere Starts erkennen, Ausnahmen zählen usw.?

Antwort1

Ich kann Ihnen den „Start“-Teil meiner Tomcat-Init-Skripte geben, falls das hilft.

    Start)
        echo -n "$FOO_BASE_JM wird gestartet"
        ## Starten Sie den Daemon mit startproc(8). Wenn dies fehlschlägt
        ## der Rückgabewert wird von startproc entsprechend gesetzt.

        wenn ps -efwwwwwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; dann
                echo "Prozess $FOO_BASE_JM existiert bereits"
                rc_fehlgeschlagen 1
        anders

        LOGLINES=$(cat /opt/$FOO_BASE_JM/logs/catalina.out | wc -l)

        CATALINA_OPTS exportieren
        ########/sbin/startproc $FOO_BIN
        wenn [ "$(id -un)" = "tomcat" ]; dann
         $FOO_BIN starten || rc_failed 1
        anders
         /bin/su tomcat $FOO_BIN starten || rc_failed 1
        fi

        echo -n "Warten auf das Erscheinen des Prozesses."
        Gewicht = 0
        process_seen=true
        während ! ps -efwwwwwwwwwwwwww | grep java | grep -q "$FOO_BASE_JM"; machen
                Schlaf 2
                echo -n .
                Gewicht = $ (($ Gewicht + 1))
                wenn [ "$wt" -gt 30 ]; dann
                        Echo
                        echo "Timeout: Der Vorgang kann nicht angezeigt werden. Sie sollten die Protokolle prüfen."
                        rc_fehlgeschlagen 1
                        process_seen=false
                        brechen
                fi
        Erledigt
        wenn [ "x$process_seen" = "xtrue" ]; dann
         Echo
         echo -n "Warten auf den Start."
         Gewicht = 0
         während ! tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Serverstart"; machen
                Schlaf 2
                echo -n .
                Gewicht = $ (($ Gewicht + 1))
                wenn [ "$wt" -gt 30 ]; dann
                        Echo
                        echo "Timeout: Im Protokoll können keine Anzeichen für einen erfolgreichen Serverstart gefunden werden. Bitte prüfen."
                        rc_fehlgeschlagen 1
                        brechen
                fi
         Erledigt
         tail +$LOGLINES /opt/$FOO_BASE_JM/logs/catalina.out | grep -q "INFO: Serverstart" && tail +$LOGLINES /opt/$FO
O_BASE_JM/logs/catalina.out | grep "INFO: Serverstart"
        fi

        fi # wenn kein Prozess existiert

        # Merken Sie sich den Status und seien Sie ausführlich
        rc_status -v
        ;;

Als Alternative kann ich vorschlagen, ein Überwachungstool wie Nagios zu verwenden, eines seiner Protokollüberwachungs-Plugins auf die Datei catalina.out (oder wohin auch immer Sie sich anmelden) zu richten und nach neuen Fehlerzeichenfolgen oder was auch immer Sie interessiert, zu suchen. Auf unseren Oracle-Datenbanken funktioniert das perfekt.

verwandte Informationen