This repository contains a Zabbix frontend module that adds a Recurring Incidents dashboard widget. The widget helps continuous improvement teams identify recurring problems, track key reliability signals (e.g., MTTR/MTBF), and spot trends over time.

- Recurring detection: counts occurrences per trigger within the selected time period.
- Accurate recurrence counts: recurrence is computed using aggregated event counts (not affected by UI paging/search limits).
- Trend: compares current period vs previous period of the same duration.
- MTTR / MTBF: calculated from event recovery information within the selected period.
- MTBF “time remaining” hint: indicates time remaining to reach MTBF (or how much it is exceeded) in the row “Info”.
- Show modes (like the native Problems widget):
- Recent problems
- Problems
- History
- Timeline rendering: optional timeline view when sorting by time.
- SLI (auto-detected):
- Detects the impacted Service by matching event tags against Service problem tags.
- Detects the corresponding SLA for that service automatically.
- Displays SLI in the table.
- Clicking SLI shows a tooltip with the full Service tree/path and quick links.
- Developed and tested on Zabbix 7.0.15.
- Other Zabbix versions may behave differently and you may encounter errors. If that happens, please check your Zabbix frontend/web server/PHP logs and open an issue with the details so we can keep improving and updating the module.
Copy (or clone) this module into your Zabbix frontend modules directory:
sudo mkdir -p /usr/share/zabbix/modules
sudo cp -a RecurringIncidents /usr/share/zabbix/modules/RecurringIncidentsThen reload the Zabbix frontend (or restart your web server/PHP-FPM if needed).
- Open a dashboard in Zabbix.
- Click Edit dashboard.
- Add widget → select Recurring Incidents.
- Configure the widget fields (see below).
- Show: Recent problems / Problems / History
- Host groups / Hosts / Exclude host groups: scope the dataset
- Problem: text filter
- Severity: severity filter
- Problem tags: tag filter
- Show tags / Tag name / Tag display priority: tag rendering options
- Minimum occurrences: minimum number of occurrences required to appear in the list
- Time period: the analysis window used for recurrence, trend, MTTR/MTBF and SLI
- Sort entries by: time, severity, name, host, or recurrences
- Show timeline: timeline rendering when sorting by time
- Show lines: number of rows to display
Recurrence is calculated as the count of trigger problem events within the selected Time period, grouped by trigger.
The widget uses aggregated counts to avoid undercounting due to frontend paging or search limits.
Trend compares the current Time period against the previous period of the same duration:
trend = occurrences(current_period) - occurrences(previous_period)
Positive values indicate increased recurrence; negative values indicate improvement.
- MTTR: average of
(recovery_time - problem_time)for events that have a recovery event within the selected period. - MTBF: average time between consecutive occurrences within the selected period.
If there are no resolved occurrences in the selected period, MTTR is shown as —.
If your Zabbix Services/SLA are configured:
- The widget matches the event tags against Service problem tags to find a corresponding Service.
- It discovers the SLA associated with that Service.
- It queries SLA SLI for the selected Time period and displays it.
Clicking the SLI cell opens a tooltip showing:
- Service name and link to the Service tree page
- SLA/SLO
- Service path (root → … → service)
- Service tree (limited for performance if very large)
- Large environments with many triggers/events/services may require tuning Zabbix frontend limits and PHP resources.
- Service tree tooltips limit the number of loaded nodes to prevent heavy API calls.
Main module files:
manifest.jsonWidget.phpactions/WidgetView.phpincludes/WidgetForm.phpincludes/WidgetRecurringIncidents.phpviews/widget.edit.phpviews/widget.view.phpassets/js/class.widget.js
This module was developed by Monzphere.
Special thanks to our partners: Lunio, IOS.
Website: https://monzphere.com
This module is intended to be used with Zabbix. Ensure your distribution and modifications comply with the licensing terms applicable to your Zabbix frontend installation and this repository.