# PrestaShop Monitoring & Meldingen (DataFirefly Monitor)

> DataFirefly Monitor bewaakt uw PrestaShop 8- of 9-winkel doorlopend en waarschuwt u wanneer hij uitvalt, crasht, vertraagt of geen betalingen meer ontvangt. Deze documentatie behandelt de installatie, de crontaak, de…

- Pagina: <https://www.datafirefly.com/nl/documentation/dfmonitor/>
- Taal: nl
- Bijgewerkt op: 2026-10-07
- Andere talen: [fr](https://www.datafirefly.com/documentation/dfmonitor/index.md), [en](https://www.datafirefly.com/en/documentation/dfmonitor/index.md), [es](https://www.datafirefly.com/es/documentation/dfmonitor/index.md), [de](https://www.datafirefly.com/de/documentation/dfmonitor/index.md), [it](https://www.datafirefly.com/it/documentation/dfmonitor/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfmonitor/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfmonitor/index.md)
- Index: <https://www.datafirefly.com/nl/documentation/llms.txt>

DataFirefly Monitor bewaakt uw PrestaShop 8- of 9-winkel doorlopend en waarschuwt u wanneer hij uitvalt, crasht, vertraagt of geen betalingen meer ontvangt. Deze documentatie behandelt de installatie, de crontaak, de meldingskanalen, elke detectie en het beheer van meldingen.

## Installatie

1. Open in de back-office **Modules > Modulebeheer**, klik op **Een module uploaden** en verstuur het bestand `dfmonitor-1.1.0.zip`.
2. De module maakt zijn tabellen aan en een tabblad **Geavanceerde instellingen > Monitoring & meldingen**. De knop Configureren van de module leidt er rechtstreeks naartoe.
3. Bij de installatie wordt het e-mailadres van de winkel als ontvanger gebruikt en de status _Betalingsfout_ als foutstatus geselecteerd. PrestaShop-logs van vóór de installatie worden niet geïmporteerd.

De module is compatibel met PrestaShop 8.0 tot 9.x, multishop en meertalig. Hij gebruikt geen Composer-afhankelijkheid. Bijwerken vanaf 1.0.0 gebeurt door het nieuwe ZIP-bestand te uploaden: het updatescript voegt de nieuwe kolommen toe en vult de oorsprong van reeds geregistreerde fouten in.

## Aan de slag

Het dashboard toont een startlijst in vier stappen zolang die niet is afgerond: een eerste melding ontvangen, de crontaak toevoegen, de statussen van mislukte betalingen controleren, een externe heartbeat toevoegen. Elke stap leidt naar het juiste tabblad van de instellingen.

## Crontaak

Fatale fouten en mislukte betalingen worden in realtime gemeld. De rest (beschikbaarheid, responstijd, betalingen, bestellingen, server, rapport) wordt beoordeeld door een geplande taak die elke 5 minuten moet draaien.

### Servercron (aanbevolen)

```
*/5 * * * * php /pad/naar/prestashop/modules/dfmonitor/cron.php
```

Het exacte commando, met het pad van uw server, staat in **Instellingen > Geplande controles** met een knop Kopiëren.

### Cron via URL

Als uw host alleen webcrons toestaat, roep dan de met token beveiligde URL uit hetzelfde tabblad aan, vanuit het hostingpaneel of een dienst zoals cron-job.org. Hij antwoordt in JSON en werkt ook in onderhoudsmodus. De knop **Nieuw token genereren** maakt de vorige URL ongeldig.

### Zonder cron

Met PHP-FPM start de terugvaloptie zonder cron de controles via bezoekersverkeer wanneer er 10 minuten geen cron heeft gedraaid, nadat de pagina is verzonden. De beschikbaarheidscontrole en de heartbeat draaien niet in deze modus, en een storing 's nachts kan zonder bezoeken onopgemerkt blijven.

### Externe heartbeat

De module kan een volledige serveruitval niet melden. Maak een check aan op Healthchecks.io of Better Stack en plak de URL in **Heartbeat-URL**: die wordt bij elke cronrun aangeroepen, en de dienst waarschuwt u als de aanroepen wegblijven.

## Meldingskanalen

Schakel in **Instellingen > Meldingskanalen** zoveel kanalen in als u wilt. Elk kanaal heeft een minimale ernst (waarschuwing en kritiek, of alleen kritiek) en een knop **Opslaan en test verzenden** die het formulier opslaat en daarna een echt bericht verstuurt. Het resultaat van de laatste levering staat onder de kanaalnaam.

### E-mail

Voer een of meer ontvangers in, gescheiden door komma's. De e-mails gebruiken de e-mailconfiguratie van PrestaShop (**Geavanceerde instellingen > E-mail**) en de standaardtaal van de winkel.

### Telegram

1. Open in Telegram **@BotFather**, stuur `/newbot` en volg de instructies.
2. Plak het ontvangen token in **Bottoken**.
3. Stuur een bericht naar uw bot, of voeg hem toe aan een groep, en klik op **Mijn chat detecteren**: de chat-ID wordt automatisch ingevuld.

### Slack

In Slack: **Apps > Incoming Webhooks > Add to Slack**, kies het kanaal en kopieer de webhook-URL, die begint met `https://hooks.slack.com/`.

### Discord

In Discord: **Serverinstellingen > Integraties > Webhooks > Nieuwe webhook**, daarna **Webhook-URL kopiëren**.

### Webhook

Voor Zapier, Make, n8n, een on-calltool of uw eigen script. Bij elke nieuwe melding, herinnering en oplossing wordt een JSON-POST verzonden met de header `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"
}
```

De waarden van `event` zijn `open`, `repeat`, `resolved` en `test`. Als een ondertekeningsgeheim is ingesteld, bevat elk verzoek de header `X-DataFirefly-Signature: sha256=…`, de HMAC SHA-256 van de ruwe body met dat geheim.

## Meldingsregels

- **Herinnering voor een lopende melding**: tijd tussen twee meldingen over hetzelfde probleem (standaard 60 minuten).
- **Maximaal aantal meldingen per uur**: standaard 20, 0 voor geen limiet.
- **Herstelbericht**: er wordt een bericht verstuurd wanneer een gemeld probleem verdwijnt.
- **Stille uren**: in de gekozen periode worden alleen kritieke meldingen verzonden. Een waarschuwing die aan het einde van de periode nog open is, wordt bij de volgende cronrun verzonden.
- **Samenvattend rapport per e-mail**: uitgeschakeld, dagelijks of elke maandag, op het gekozen uur. Het bevat beschikbaarheid, responstijd, PHP-fouten, bestellingen, mislukte betalingen, meldingen van de periode en de meest voorkomende fouten.

### Pauze

De knop **Pauzeren** in de koptekst zet meldingen stil voor 30 minuten, 2, 8 of 24 uur, bijvoorbeeld tijdens een update. Problemen worden nog steeds gedetecteerd en vastgelegd; wat aan het einde van de pauze nog open is, wordt gemeld.

## Wat de module detecteert

### PHP-fouten

De module legt fatale fouten en waarschuwingen vast (optioneel ook notices en deprecations) in de winkel en, als de optie is aangevinkt, in de back-office. Identieke fouten worden gegroepeerd. Een nieuwe fatale fout geeft direct een kritieke melding; de melding verloopt zonder bericht na 24 uur zonder nieuw voorkomen. Een piekmelding volgt boven 100 fouten en waarschuwingen in 15 minuten (instelbaar, 0 schakelt uit). PrestaShop-logs met ernst 3 en 4 worden bij elke cronrun geïmporteerd.

Elke fout krijgt een **waarschijnlijke oorsprong**: module, thema, override, gecompileerde template of kern. Als de fout in de kern ontstaat, wordt de eerste module in de aanroepstack gebruikt.

### Responstijd en beschikbaarheid

- De responstijd wordt gemeten op echte bezoeken aan de winkel. Het **aandeel gemeten pagina's** is instelbaar van 1 tot 100%; elke gemeten pagina kost één databaseschrijfactie.
- Er volgt een melding wanneer het 95e percentiel over 15 minuten de drempel overschrijdt (standaard 3000 ms), vanaf 20 gemeten pagina's.
- Er volgt een kritieke melding wanneer het serverfoutpercentage (HTTP 5xx of fatale PHP-fout) over 15 minuten boven 5% komt, met minstens 5 fouten.
- De homepage wordt bij elke run van de servercron geladen; twee mislukkingen op rij openen de kritieke melding "Winkel onbereikbaar". In onderhoudsmodus is de controle opgeschort.

### Betalingen en bestellingen

- **Mislukte betalingen**: bestellingen die het afgelopen uur naar een van de gekozen statussen gingen, uitgesplitst per betaalmodule. Standaarddrempel: 3. De controle start ook zodra een bestelling van status verandert. Vink de statussen aan die uw betaalmodules gebruiken voor een weigering.
- **Checkoutconversie**: de module registreert elk winkelmandje dat de betaalstap bereikt en vergelijkt, over een venster van 2 uur dat 30 minuten vóór de controle eindigt, het aandeel van die mandjes dat een bestelling werd met het gebruikelijke aandeel over 28 dagen. De controle start na ongeveer 40 mandjes geschiedenis en 8 mandjes in het venster (instelbaar).
- **Daling van bestellingen**: de bestellingen van de laatste 3 uur (instelbaar) worden vergeleken met het gemiddelde van hetzelfde tijdvak in de 4 voorgaande weken. De controle vervalt als minder dan 4 bestellingen worden verwacht. Nul bestellingen in plaats van de gebruikelijke activiteit geeft een kritieke melding.
- **Gevoeligheid**: laag, gemiddeld (aanbevolen) of hoog. Hoog waarschuwt eerder maar geeft meer valse meldingen.

In multishop worden betalingen, conversie en bestellingen per winkel beoordeeld.

### Servergezondheid

- **SSL-certificaat**: elke 6 uur gelezen op het domein van de winkel. Waarschuwing 14 dagen vóór het verloopt (instelbaar), kritiek vanaf 3 dagen.
- **Schijfruimte**: waarschuwing onder 2048 MB vrij (instelbaar), kritiek onder een kwart van die drempel. Bij gedeelde hosting met quotum kan de gelezen waarde de hele serverschijf zijn.
- **Cronbewaking**: zodra een servercron eenmaal heeft gedraaid, volgt na 30 minuten zonder run een melding via bezoekersverkeer of de back-office.

## Meldingen beheren

Een probleem opent één melding, die wordt bijgewerkt zolang het duurt. Het tabblad **Meldingen** toont de geschiedenis en de verzonden berichten, met het resultaat van elke levering.

- **Bevestigen**: stopt de herinneringen. Het herstelbericht wordt nog steeds verzonden.
- **Sluiten**: sluit de melding. Als het probleem blijft, opent bij de volgende controle een nieuwe melding.

### Bevestigen vanuit een melding

Elke melding bevat een link **Bevestigen en herinneringen stoppen**. Die opent een bevestigingspagina in de winkel, geschikt voor telefoons; de melding wordt pas bevestigd na uw akkoord, zodat e-mailscanners haar niet kunnen bevestigen door de link te openen.

## Pagina met PHP-fouten

Filter op ernst of oorsprong, zoek op bericht, bestand of pagina. Een uitgeklapte fout toont pagina, controller, datums, het volledige bericht en, bij waarschuwingen, de aanroepstack. De knop **Rapport kopiëren voor een ontwikkelaar** kopieert een tekst met de versies van PrestaShop en PHP, bestand, oorsprong, pagina, aantal keren, bericht en aanroepstack. **Dempen** blijft de fout tellen zonder ooit nog te melden.

## Gegevens en privacy

- Pagina-adressen worden zonder URL-parameters opgeslagen.
- De aanroepstack wordt zonder functieargumenten opgeslagen.
- Het serverpad en de naam van de beheermap worden uit alle opgeslagen en verzonden teksten verwijderd.
- Telegram-tokens en webhookpaden worden gemaskeerd in het meldingenlogboek.
- De geschiedenis wordt standaard na 30 dagen gewist (instelbaar van 7 tot 365 dagen); gesloten meldingen blijven 90 dagen bewaard.

## Bekende beperkingen

- Een fatale fout die optreedt voordat de modules zijn geladen, wordt niet door de foutafhandeling opgevangen; de beschikbaarheidscontrole en het 5xx-percentage melden haar.
- Symfony-pagina's van de back-office lopen niet via de hook waarmee back-office-fouten worden vastgelegd.
- De checkoutconversie steunt op de hook `displayPaymentTop`. Als uw one-page-checkoutmodule die niet aanroept, schakel deze controle dan uit: de daling van bestellingen blijft bewaakt.

## Problemen oplossen

### De e-mailtest mislukt

Controleer de configuratie in **Geavanceerde instellingen > E-mail** en verstuur daar een test-e-mail. De exacte foutmelding verschijnt na de test en in het tabblad Meldingen.

### "Geen servercron gedetecteerd" blijft zichtbaar

Alleen de CLI-cron of de cron-URL tellen als servercron. Voer het commando handmatig uit via SSH: het toont een JSON-rapport. Mislukt het, controleer dan met uw host het pad naar PHP CLI.

### De Telegram-test geeft "chat not found"

Een bot kan alleen schrijven naar een gesprek dat hem al een bericht heeft gestuurd. Stuur hem een bericht en klik daarna op Mijn chat detecteren.
