Hey everyone,
I wanted to share a workflow that I run in my homelab stack.
Quick background so the setup makes sense. I come from a network engineering background and I run my own infrastructure end to end: self-hosted hardware, a 5 node Proxmox cluster, around 25 Linux containers, the whole stack at home. Part of keeping that safe is a Wazuh SIEM watching everything, with real-time alerting into Slack.
The problem with running your own SIEM is that it fires hundreds of alerts a day. Most are noise. Some are real. Reading every one is not happening, and tuning them all out defeats the point of running a SIEM in the first place.
So I built an n8n workflow that puts an AI analyst in front of every high-severity Wazuh alert. Webhook in, infrastructure-aware risk assessment out, into Slack within seconds. About $0.001 per alert with Claude Haiku.
A real example from the live test: I had Claude fire a brute-force SSH attack at one of my Proxmox nodes. Wazuh caught it (rule 5712, level 10). The workflow analyzed it and the Slack message correctly called it a likely false positive (internal source, zero-trust network, no external exposure), and still attached the exact shell commands to investigate.
How it works on the n8n side:
- Webhook trigger listens for Wazuh JSON payloads.
- Config node sets thresholds, model, and timezone. One source of truth, change it once.
- IF node qualifies the alert and drops anything below your minimum level (default 9).
- Extract node plus the LLM call build the prompt and call the model.
- Format and notify posts the message to Slack. Telegram and Teams variants are documented inline in the node sticky notes.
The piece that makes it actually useful is the infrastructure context block. You tell the model what is normal in your network: what is internal, what is exposed, which hosts are which. Without that, the model just rephrases the alert back at you. With it, you get a real risk call instead of another line to read. That block lives in the Extract node and it is the part worth spending time on.
The model provider is swappable. Claude Haiku by default, but OpenAI or a local Ollama model work too if you want to keep it all on-prem.
Three things to wire up: an LLM API key, a Slack incoming webhook, and the Wazuh webhook integration in ossec.conf. Everything else is drag and drop, and every node has a sticky note explaining what it does and what to set.
Workflow JSON, a setup prompt you can paste into an AI assistant to walk through deployment (including building the context block for your own environment), and a brute-force test script are all in the repo, MIT licensed:
Full walkthrough with the live attack triggering the chain end to end:
If you run a SIEM at home or for clients and have built something similar, I would like to compare notes. Happy to cover the next one too (phishing triage, EDR enrichment) if there is interest.



