Laravel Logs in Mattermost Anzeigen: Ein Leitfaden

Nico Schüttler
Letzte Artikel von Nico Schüttler (Alle anzeigen)

Mattermost bietet die Möglichkeit, Webhooks bereitzustellen, die wir mit Hilfe von laravel-mattermost-logger mit unserer Laravel Installationen verbinden können. Somit können wir die Error Logs von Laravel in einem Text-Channel in Mattermost anzeigen. Hier ist eine Schritt-für-Schritt-Anleitung, wie es funktioniert:

Schritt 1: Webhook-Konfiguration in Mattermost

  1. Öffnen Sie Mattermost und klicken Sie auf das Logo, den Namen oder das Menü-Symbol in der oberen linken Ecke.
  2. Gehen Sie zu Integrationen.
  3. Wählen Sie Eingehende Webhooks und klicken Sie auf Neuen Webhook hinzufügen.
  4. Geben Sie Ihrem Webhook einen Titel und wählen Sie den Text-Channel aus, in dem Sie die Logs später sehen möchten.
  5. Speichern Sie den Webhook und kopieren Sie die Webhook-URL.

Schritt 2: Installation des Laravel Mattermost Logger

  1. Wechseln Sie zu Ihrem Laravel-Projektverzeichnis.
  2. Installieren Sie das benötigte Paket mit dem Befehl:
composer require thibaud-dauce/laravel-mattermost-logger:dev-master

Das :dev-master wird benötigt, da in der aktuellen Version eine Inkompatibilität auftritt. Das Problem ist zwar schon behoben, aber die Korrektur wurde noch keiner offiziellen Version zugeteilt. Die aktuelle Version 1.8 ist noch von 2023. Damit alles reibungslos funktioniert, ändern Sie außerdem noch die "minimum-stability" in Ihrer composer.json zu "dev".

Schritt 3: Konfiguration der .env Datei

  1. Öffnen Sie die .env Datei Ihres Laravel Projekts.
  2. Fügen Sie die kopierte Webhook-URL ein:
MATTERMOST_LOG_WEBHOOK="https://mattermost.domain.tld/hooks/randomString"

Schritt 4: Anpassung der Logging-Konfiguration

1. Öffnen Sie die Datei config/logging.php.

2. Fügen Sie unter 'channels' Folgendes hinzu:

     'channels' => [
            'mattermost' => [
                'driver' => 'custom',
                'via' => ThibaudDauce\MattermostLogger\MattermostLogger::class,
                'webhook' => env('MATTERMOST_LOG_WEBHOOK'),
                'username' => 'Captain Crash',
                'channel' => 'logging-channel',
            ],
        ]

Beim 'channel' Namen handelt es sich um einen „Slug“. Das bedeutet, dass es wichtig ist, den Channelnamen klein zu schreiben und getrennte Wörter mit Bindestrich zu verbinden.

Die anderen möglichen Optionen haben wir zu Testzwecken getestet, konnten aber keine Funktion feststellen. Unter Umständen wird sich dies in der nächsten Release ändern.

3. Stellen Sie sicher, dass der Stack-Kanal Mattermost enthält:

'channels' => [
        'stack' => [
            'driver' => 'stack',
            'channels' => ['single', 'mattermost'],
        ],

Sollten Sie noch Fragen haben oder eine Beratung wünschen, können Sie gerne mit uns Kontakt aufnehmen oder unsere Webseite besuchen. Wir lassen Ihnen gerne ein unverbindliches Angebot zukommen.