Hi Ankit,
- Has anyone built a reporting layer on top of Wazuh? — The two patterns are:
- The built-in/indexer reporting plugin for formatted PDF/PNG/CSV with scheduling
- Custom export layer hitting the indexer + server APIs for full datasets.
- Full dataset export? — Yes, via the indexer _search API with PIT/search_after (alerts, vulns) and the server REST API (inventory). Not reliably via the dashboard CSV export since the UI is meant for small queries to render.
- Paginated reporting? — Yes, same APIs.
- PDF/PNG generation? — Yes, built in (module reports + the reporting plugin: PDF and PNG).
- Scheduled / email reports? — Scheduling: yes (reporting plugin
https://docs.opensearch.org/2.19/reporting/rep-cli-index, cron). Email delivery: depends on your version — verify it's available before committing to it.
On the tools you're considering
- OpenSearch Dashboards reporting — already what you have; lean on the wazuh-indexer-reporting plugin first. Lowest effort, no extra infrastructure.
- Custom reporting APIs — the most flexible and, in my experience, the right answer specifically for full dataset export with pagination. Build it on the indexer API (PIT/search_after) + Wazuh server REST API.
- Grafana — very popular pairing. Point a Grafana OpenSearch data source at the Wazuh indexer; Grafana Enterprise gives you scheduled PDF reports and good dashboards. Good middle ground if you want polished, scheduled reporting without writing much code.
- Splunk — viable (Wazuh can forward alert data to Splunk) and Splunk's reporting is strong, but it's a heavy, costly layer to add purely for reporting. Only worth it if you're already standardizing on Splunk for other reasons.
- Power BI — can connect to the indexer (OpenSearch SQL/ODBC or REST) if your org is already a Power BI shop.
My suggestion: start with the built-in/indexer reporting plugin for formatted/scheduled PDF/PNG/CSV, and add a thin custom export layer on the indexer + server APIs for the guaranteed full-dataset/paginated exports. That covers your whole list without taking on Splunk's cost/complexity. If you want richer visuals and scheduled delivery with minimal coding, Grafana on top of the indexer is the strongest "external tool" option.
Hope this clarifies your questions.
Best regards,
Lucas