/var/log/suricata/eve.json, and Wazuh’s bundled Suricata rules turn each Suricata alert into a Wazuh alert. The Wazuh manager’s built-in shuffle integration then pushes those alerts to Flashduty’s Wazuh integration, so no separate Suricata integration is needed.
In Flashduty On-call
Get the integration push URL in either of the two ways below. In both cases choose Wazuh as the integration type, not Suricata.
Use a dedicated integration
- In the Flashduty console, go to Channels and open a channel
- Go to Settings → Integrations → Dedicated integrations and click Add an integration
- Select Wazuh and click Save
- Open the generated integration card and copy the Push URL, in the form
https://api.flashcat.cloud/event/push/alert/wazuh?integration_key=<integration key>
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Wazuh and enter an integration name
- Configure the default route and select a channel; you can add more rules under Routes after creation
- Click Save and copy the generated Push URL
Data flow
- Suricata writes events as JSON to
/var/log/suricata/eve.json - The Wazuh agent on the same host reads that file
- The Wazuh manager uses rule
86601(groupsidsandsuricata, level 3, descriptionSuricata: Alert - <signature>) to raise an alert for every event whoseevent_typeisalert - The manager’s
shuffleintegration POSTs the alert to Flashduty
86601 matches only Suricata alert events. Other event types in the same eve.json (http, dns, tls) map to level-0 rules and raise no alert.
Collect Suricata logs on the Wazuh agent
In the Wazuh agent’s
/var/ossec/etc/ossec.conf on the host that runs Suricata, add:
location above.
Push to Flashduty from the Wazuh manager
In
/var/ossec/etc/ossec.conf on the manager, add a shuffle integration that forwards only the Suricata alert rule, and replace hook_url with the Flashduty push URL:
- Filter with
<rule_id>rather than<level>: rule86601is level 3, so any<level>above 3 would block it <alert_format>json</alert_format>is required- Do not set
<api_key>; Flashduty authenticates with theintegration_keyin the URL
Trigger and verify
The Wazuh Suricata example triggers Suricata by sending ICMP from another host to the monitored host:
rule.groups:suricata in the Wazuh console, and an alert titled Suricata: Alert - <signature> should appear in Flashduty. If nothing arrives, check /var/ossec/logs/integrations.log and /var/ossec/logs/ossec.log on the manager.
Events and recovery
Suricata and Wazuh raise an alert once per event and never send a recovery. Every Wazuh alert has a unique ID, which Flashduty uses as the Alert Key, so each Suricata alert opens its own Flashduty alert and none closes automatically. Enable the auto-resolve timeout on the channel that receives this integration (24 hours suggested). When the same signature fires repeatedly, configure a noise-reduction rule on the channel to merge them into one incident.
Severity
Rule
86601 is level 3, which Flashduty maps to Info by Wazuh rule level (0-6 Info, 7-11 Warning, 12-15 Critical). Flashduty does not read Suricata’s own alert.severity; to distinguish severity, adjust it with an alert processing pipeline using the signature in the title or the rule_id label.
Notes
- Suricata events carry source and destination IPs and possibly payload content. Flashduty neither reads nor stores the raw log (
full_log), butshufflesends the whole Wazuh alert tohook_url, so forward only the rules that need a human response. - To forward only certain signatures or categories, write custom Wazuh rules for them with a higher level, then filter with
<rule_id>or<level>.