http_output) to send runtime security events matched by Falco rules to Flashduty On-call. Each Falco event maps to one Flashduty alert. Falco is an event stream and never sends a recovery message after a rule fires, so these alerts do not recover on their own. Turn on the channel’s auto-resolve timeout as described below.
In Flashduty On-call
You can get the integration push URL in either of the following ways.
Use a dedicated integration
- In the Flashduty console, select Channels and open a channel
- Select Settings → Integrations → Dedicated integrations, then click Add an integration
- Select Falco, then click Save
- Open the generated integration card and copy the push URL
Use a shared integration
- In the Flashduty console, go to Integration Center → Alert Events
- Select Falco and enter an integration name
- Configure the default route and pick a channel; you can add more rules under Routes after creating it
- Click Save and copy the generated push URL
Configure Falco
Pushing through Falcosidekick is recommended because
minimumpriority filters low-priority events at the source. Without Falcosidekick, Falco can push directly.
- Falcosidekick (recommended)
- Falco direct push
Set the webhook output address to the Flashduty push URL. The output is enabled as soon as Or in With Helm, use
webhook.address is not empty.With environment variables:config.yaml:config.webhook.address and config.webhook.minimumpriority. Restart Falcosidekick after the change.Verify
Send a request to the Falcosidekick
/test endpoint (it listens on port 2801 by default):
Test rule with Info severity. The test alert has its own Alert Key, so it never merges into a real alert and it does not recover. Close it by hand once you have seen it.
Then trigger a real rule on a monitored host or container (for example, open an interactive shell in a container to fire Terminal shell in container) and confirm the alert appears in Flashduty.
Alert Key
Each Falco event is an independent detection with no lifecycle, so each event becomes its own alert:
- Through Falcosidekick, the Alert Key is the event
uuid. Falcosidekick generates a newuuidfor every event, so a redelivered event does not create a duplicate alert. - Falco’s direct JSON carries no
uuid. The Alert Key is then an MD5 ofrule,hostname,source,time, andoutput.
rule is rejected, because Flashduty cannot tell which rule fired.
Severity
Labels
The title is the rule name (
rule) and the description is output. These fields become labels: rule, priority, hostname (also used as resource), falco_source, falco_uuid, and tags (comma-separated). Every field in output_fields also becomes a label, with . in the key replaced by _, for example container.id becomes container_id and k8s.pod.name becomes k8s_pod_name. At most 50 labels are kept.
Recovery
Falco sends no recovery event, so alerts do not resolve on their own. Turn on the auto-resolve timeout for the channel that receives Falco alerts (24 hours suggested; adjust it to how quickly you need to respond), or close alerts by hand after handling them.
Troubleshooting
- Falcosidekick logs a webhook error: check that the address is complete, includes
integration_key, and thatapi.flashcat.cloudis reachable from where Falcosidekick runs - Flashduty returns a parameter error: make sure Falco has
json_output: trueand the body is valid JSON containingrule - No alert arrives: confirm the rule actually fired (check Falco’s own log first) and that
minimumpriorityis not filtering it out - Too many alerts: tune the rules in Falco or raise
minimumpriority; repeated alerts from one rule can be merged with the channel’s noise reduction settings