PS PrestaShop Początkujący

Monitoring i Alerty PrestaShop (DataFirefly Monitor)

Instalacja modułu, harmonogram crona, konfiguracja kanałów alertów i opis każdego wykrywania.

Zaktualizowano Wersja modułu 1.1.0

DataFirefly Monitor stale pilnuje Twojego sklepu PrestaShop 8 lub 9 i ostrzega, gdy przestaje działać, zgłasza błędy, zwalnia lub przestaje przyjmować płatności. Dokumentacja obejmuje instalację, zadanie cron, kanały powiadomień, każde wykrywanie i obsługę alertów.

Instalacja

  1. W panelu administracyjnym otwórz Moduły > Menedżer modułów, kliknij Prześlij moduł i wyślij plik dfmonitor-1.1.0.zip.
  2. Moduł tworzy swoje tabele i zakładkę Zaawansowane > Monitoring i alerty. Przycisk Konfiguruj modułu prowadzi prosto do niej.
  3. Podczas instalacji e-mail sklepu jest ustawiany jako odbiorca, a status Błąd płatności jako status niepowodzenia. Dzienniki PrestaShop sprzed instalacji nie są importowane.

Moduł jest zgodny z PrestaShop od 8.0 do 9.x, multistore i wielojęzycznością. Nie używa zależności Composer. Aktualizacja z wersji 1.0.0 polega na przesłaniu nowego pliku ZIP: skrypt aktualizacji dodaje nowe kolumny i uzupełnia źródło już zapisanych błędów.

Pierwsze kroki

Pulpit pokazuje listę uruchomienia w czterech krokach, dopóki nie zostanie ukończona: odebrać pierwsze powiadomienie, dodać zadanie cron, sprawdzić statusy nieudanej płatności, dodać zewnętrzny heartbeat. Każdy krok prowadzi do właściwej zakładki ustawień.

Zadanie cron

Błędy krytyczne i nieudane płatności są zgłaszane w czasie rzeczywistym. Resztę (dostępność, czas odpowiedzi, płatności, zamówienia, serwer, raport) ocenia zaplanowane zadanie, które powinno działać co 5 minut.

Cron serwera (zalecany)

*/5 * * * * php /sciezka/do/prestashop/modules/dfmonitor/cron.php

Dokładne polecenie ze ścieżką Twojego serwera znajdziesz w Ustawienia > Zaplanowane sprawdzanie, z przyciskiem Kopiuj.

Cron przez URL

Jeśli hosting pozwala tylko na crony webowe, wywołuj adres URL chroniony tokenem z tej samej zakładki, z panelu hostingu lub usługi takiej jak cron-job.org. Odpowiada w JSON i działa także w trybie konserwacji. Przycisk Wygeneruj nowy token unieważnia poprzedni adres.

Bez crona

Przy PHP-FPM opcja zapasowa bez crona uruchamia sprawdzanie z ruchu odwiedzających, gdy cron nie działał od 10 minut, po wysłaniu strony. Sprawdzanie dostępności i heartbeat nie działają w tym trybie, a nocna awaria bez wizyt może zostać niezauważona.

Zewnętrzny heartbeat

Moduł nie może zgłosić całkowitej awarii serwera. Utwórz check w Healthchecks.io lub Better Stack i wklej jego adres w polu Adres URL heartbeat: jest wywoływany przy każdym uruchomieniu crona, a usługa ostrzeże Cię, gdy wywołania ustaną.

Kanały powiadomień

Włącz dowolną liczbę kanałów w Ustawienia > Kanały powiadomień. Każdy kanał ma minimalną ważność (ostrzeżenie i krytyczny lub tylko krytyczny) i przycisk Zapisz i wyślij test, który zapisuje formularz, a potem wysyła prawdziwą wiadomość. Wynik ostatniej wysyłki widać pod nazwą kanału.

E-mail

Podaj jednego lub kilku odbiorców oddzielonych przecinkami. E-maile korzystają z konfiguracji poczty PrestaShop (Zaawansowane > E-mail) i domyślnego języka sklepu.

Telegram

  1. W Telegramie otwórz @BotFather, wyślij /newbot i postępuj zgodnie z instrukcjami.
  2. Wklej otrzymany token w polu Token bota.
  3. Wyślij wiadomość do bota lub dodaj go do grupy, a następnie kliknij Wykryj mój czat: ID czatu zostanie uzupełnione automatycznie.

Slack

W Slacku: Apps > Incoming Webhooks > Add to Slack, wybierz kanał i skopiuj adres URL webhooka, zaczynający się od https://hooks.slack.com/.

Discord

W Discordzie: Ustawienia serwera > Integracje > Webhooki > Nowy webhook, a następnie Kopiuj adres URL webhooka.

Webhook

Dla Zapier, Make, n8n, narzędzia dyżurowego lub własnego skryptu. Przy każdym nowym alercie, przypomnieniu i rozwiązaniu wysyłany jest POST JSON z nagłówkiem X-DataFirefly-Event:

{
  "event": "open",
  "alert": {
    "id": 42, "key": "payment:1", "type": "payment", "severity": "critical",
    "title": "...", "message": "...", "occurrences": 3,
    "first_at": "2026-10-07 16:35:00", "last_at": "2026-10-07 16:45:00",
    "ack_url": "https://..."
  },
  "shop": { "name": "...", "url": "https://..." },
  "sent_at": "2026-10-07T16:45:01+02:00"
}

Wartości event to open, repeat, resolved i test. Jeśli ustawiono sekret podpisu, każde żądanie zawiera nagłówek X-DataFirefly-Signature: sha256=…, czyli HMAC SHA-256 surowej treści z tym sekretem.

Reguły alertów

  • Przypomnienie o trwającym alercie: odstęp między dwoma powiadomieniami o tym samym problemie (domyślnie 60 minut).
  • Maksymalna liczba powiadomień na godzinę: domyślnie 20, 0 oznacza brak limitu.
  • Komunikat o rozwiązaniu: wiadomość jest wysyłana, gdy zgłoszony problem znika.
  • Godziny ciszy: w wybranym przedziale wysyłane są tylko alerty krytyczne. Ostrzeżenie nadal otwarte na koniec przedziału zostaje wysłane przy następnym uruchomieniu crona.
  • Raport podsumowujący e-mailem: wyłączony, codziennie lub w każdy poniedziałek o wybranej godzinie. Zawiera dostępność, czas odpowiedzi, błędy PHP, zamówienia, nieudane płatności, alerty z okresu i najczęstsze błędy.

Wstrzymanie

Przycisk Wstrzymaj w nagłówku zawiesza powiadomienia na 30 minut, 2, 8 lub 24 godziny, na przykład podczas aktualizacji. Problemy są nadal wykrywane i rejestrowane; te, które pozostaną otwarte po zakończeniu przerwy, zostaną zgłoszone.

Co wykrywa moduł

Błędy PHP

Moduł przechwytuje błędy krytyczne i ostrzeżenia (opcjonalnie także uwagi i deprecjacje) w sklepie oraz, jeśli opcja jest zaznaczona, w panelu. Identyczne błędy są grupowane. Nowy błąd krytyczny natychmiast wywołuje alert krytyczny; alert wygasa bez wiadomości po 24 godzinach bez nowego wystąpienia. Alert o skoku pojawia się powyżej 100 błędów i ostrzeżeń w 15 minut (regulowane, 0 wyłącza). Dzienniki PrestaShop o ważności 3 i 4 są importowane przy każdym uruchomieniu crona.

Każdy błąd otrzymuje prawdopodobne źródło: moduł, motyw, override, skompilowany szablon lub rdzeń. Gdy błąd powstaje w rdzeniu, wybierany jest pierwszy moduł znaleziony w stosie wywołań.

Czas odpowiedzi i dostępność

  • Czas odpowiedzi jest mierzony na prawdziwych wizytach w sklepie. Odsetek mierzonych stron ustawia się od 1 do 100%; każda mierzona strona to jeden zapis do bazy.
  • Alert pojawia się, gdy 95. percentyl w 15 minut przekracza próg (domyślnie 3000 ms), od 20 zmierzonych stron.
  • Alert krytyczny pojawia się, gdy odsetek błędów serwera (HTTP 5xx lub błąd krytyczny PHP) przekracza 5% w 15 minut, przy co najmniej 5 błędach.
  • Strona główna jest ładowana przy każdym uruchomieniu crona serwera; dwa kolejne niepowodzenia otwierają alert krytyczny „Sklep niedostępny”. W trybie konserwacji sprawdzanie jest wstrzymane.

Płatności i zamówienia

  • Nieudane płatności: zamówienia, które w ostatniej godzinie przeszły w jeden z wybranych statusów, z podziałem na moduły płatności. Domyślny próg: 3. Sprawdzanie uruchamia się też, gdy tylko zamówienie zmieni status. Zaznacz statusy, których Twoje moduły płatności używają przy odrzuceniu.
  • Konwersja płatności: moduł rejestruje każdy koszyk, który dociera do kroku płatności, a następnie porównuje w 2-godzinnym oknie, kończącym się 30 minut przed sprawdzeniem, odsetek tych koszyków zamienionych w zamówienia ze zwykłym odsetkiem z 28 dni. Sprawdzanie zaczyna się po około 40 koszykach historii i 8 koszykach w oknie (regulowane).
  • Spadek zamówień: zamówienia z ostatnich 3 godzin (regulowane) są porównywane ze średnią z tego samego przedziału z 4 poprzednich tygodni. Sprawdzanie jest pomijane, gdy oczekuje się mniej niż 4 zamówień. Zero zamówień zamiast zwykłej aktywności daje alert krytyczny.
  • Czułość: niska, średnia (zalecana) lub wysoka. Wysoka ostrzega wcześniej, ale daje więcej fałszywych alarmów.

W multistore płatności, konwersja i zamówienia są oceniane osobno dla każdego sklepu.

Stan serwera

  • Certyfikat SSL: odczytywany co 6 godzin z domeny sklepu. Ostrzeżenie 14 dni przed wygaśnięciem (regulowane), alert krytyczny na 3 dni przed.
  • Miejsce na dysku: ostrzeżenie poniżej 2048 MB wolnego miejsca (regulowane), alert krytyczny poniżej jednej czwartej tego progu. Na hostingu współdzielonym z limitem odczytana wartość może dotyczyć całego dysku serwera.
  • Nadzór crona: gdy cron serwera już raz działał, po 30 minutach bez uruchomienia pojawia się alert z ruchu odwiedzających lub z panelu.

Obsługa alertów

Problem otwiera jeden alert, aktualizowany, dopóki trwa. Zakładka Alerty pokazuje historię i wysłane powiadomienia z wynikiem każdej wysyłki.

  • Potwierdź: zatrzymuje przypomnienia. Komunikat o rozwiązaniu nadal zostanie wysłany.
  • Zamknij: zamyka alert. Jeśli problem trwa, przy następnym sprawdzeniu otworzy się nowy alert.

Potwierdzanie z powiadomienia

Każde powiadomienie o alercie zawiera link Potwierdź i zatrzymaj przypomnienia. Otwiera on stronę potwierdzenia w sklepie, dostosowaną do telefonu; alert jest potwierdzany dopiero po zatwierdzeniu, więc skanery poczty nie potwierdzą go, otwierając link.

Strona błędów PHP

Filtruj według ważności lub źródła, szukaj komunikatu, pliku lub strony. Rozwinięty błąd pokazuje stronę, kontroler, daty, pełny komunikat i, dla ostrzeżeń, stos wywołań. Przycisk Kopiuj raport dla programisty kopiuje tekst z wersją PrestaShop i PHP, plikiem, źródłem, stroną, liczbą wystąpień, komunikatem i stosem wywołań. Wycisz nadal zlicza błąd, ale już nigdy nie alarmuje.

Dane i prywatność

  • Adresy stron są zapisywane bez parametrów URL.
  • Stos wywołań jest zapisywany bez argumentów funkcji.
  • Ścieżka serwera i nazwa folderu administracyjnego są usuwane ze wszystkich zapisywanych i wysyłanych tekstów.
  • Tokeny Telegram i ścieżki webhooków są maskowane w dzienniku powiadomień.
  • Historia jest czyszczona domyślnie po 30 dniach (od 7 do 365 dni); zamknięte alerty są przechowywane 90 dni.

Znane ograniczenia

  • Błąd krytyczny, który wystąpi przed załadowaniem modułów, nie jest przechwytywany przez obsługę błędów; zgłoszą go sprawdzanie dostępności i odsetek 5xx.
  • Strony Symfony panelu administracyjnego nie przechodzą przez hook używany do przechwytywania błędów w panelu.
  • Konwersja płatności opiera się na hooku displayPaymentTop. Jeśli Twój moduł checkoutu na jednej stronie go nie wywołuje, wyłącz to sprawdzanie: spadek zamówień nadal jest pilnowany.

Rozwiązywanie problemów

Test e-mail się nie udaje

Sprawdź konfigurację w Zaawansowane > E-mail i wyślij tam testowy e-mail. Dokładny komunikat błędu pojawia się po teście i w zakładce Alerty.

Nadal widać „Nie wykryto crona serwera”

Za cron serwera uznawany jest tylko cron CLI lub adres URL crona. Uruchom polecenie ręcznie przez SSH: wyświetli raport JSON. Jeśli się nie powiedzie, sprawdź z dostawcą hostingu ścieżkę do PHP CLI.

Test Telegram zwraca „chat not found”

Bot może pisać tylko do rozmowy, która już do niego napisała. Wyślij mu wiadomość, a potem kliknij Wykryj mój czat.

Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia