惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
G
Google Developers Blog
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
J
Java Code Geeks
P
Proofpoint News Feed
V
Visual Studio Blog
爱范儿
爱范儿
The Cloudflare Blog
博客园 - 叶小钗
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
博客园 - 聂微东
H
Help Net Security
B
Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
量子位
宝玉的分享
宝玉的分享
WordPress大学
WordPress大学
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
How I built a production-ready Wazuh SIEM on Docker (with...
giulio Savin · 2026-05-02 · via DEV Community

giulio Savini

How I built a production-ready Wazuh SIEM on Docker (with custom rules for VMware, AWS and GCP)

Most Wazuh tutorials stop at "here's how to spin up the containers." That's fine for a demo, but getting it to actually monitor your infrastructure — with meaningful alerts, automated agent deployment, and cloud integrations — is a different story.

I spent a few weeks assembling everything into a single repo: wazuh-docker-monitoring-platform. Here's what it includes and why I built each piece.


The problem with most Wazuh setups

Out of the box, Wazuh gives you generic Linux alerts. Useful, but noisy. What I needed was:

  • Detection rules tuned for Docker container abuse (privileged runs, suspicious mounts, crypto-mining)
  • VMware vCenter monitoring — snapshot abuse, vMotion events, auth brute force
  • AWS CloudTrail and GCP Audit Log anomalies mapped to Wazuh rules
  • A way to deploy agents at scale without SSHing into 30 machines one by one
  • Something that works in both a lab (4GB RAM) and production

What the stack looks like

┌─────────────────────────────────┐
│  Wazuh Manager  :1514 / :55000  │
│  Wazuh Indexer  :9200           │
│  Wazuh Dashboard :5601          │
│  NGINX (optional reverse proxy) │
└─────────────────────────────────┘
         ↑ agents on port 1514
Linux servers · Windows servers · Docker hosts · vCenter
         ↑ log forwarding
AWS CloudTrail (S3) · GCP Pub/Sub

Enter fullscreen mode Exit fullscreen mode

Everything runs via docker compose. There's also a docker-compose.lab.yml overlay that cuts resource usage for testing.


Custom detection rules

This is the part I'm most proud of. The rules/ directory has rules for:

Docker (rules/docker/)

  • Container exec events
  • Privileged container creation
  • Host namespace abuse (--pid=host, --network=host)
  • Suspicious bind mounts (/etc, /var/run/docker.sock)
  • Crypto-mining signatures

VMware (rules/vmware/)

  • VM power state changes
  • Snapshot creation/deletion (ransomware indicator)
  • Host disconnect events
  • vCenter login brute force

AWS (rules/aws/)

  • IAM policy changes
  • Security group opened to 0.0.0.0/0
  • Console login without MFA
  • CloudTrail disabled or deleted

GCP (rules/gcp/)

  • Public bucket created
  • Firewall rule opened to 0.0.0.0/0
  • IAM policy changes
  • Compute instance created outside allowed regions

Ansible agent deployment

Instead of deploying agents manually, the repo includes Ansible playbooks that handle everything:

# Deploy to all Linux hosts in inventory
ansible-playbook -i inventories/production playbooks/deploy-linux-agent.yml

# Windows too (via WinRM)
ansible-playbook -i inventories/production playbooks/deploy-windows-agent.yml

Enter fullscreen mode Exit fullscreen mode

There's also a network discovery script that scans a subnet, generates an Ansible inventory, and feeds it straight into the deployment pipeline:

make onboard SUBNET=10.0.0.0/24

Enter fullscreen mode Exit fullscreen mode

One command: scan → discover → deploy agents → verify.


Getting started

git clone https://github.com/GiulioSavini/wazuh-docker-monitoring-platform.git
cd wazuh-docker-monitoring-platform

make preflight        # validate Docker, kernel params, disk, ports
cp .env.example .env  # set your passwords
make init             # generate TLS certs
make deploy           # bring up the stack

Enter fullscreen mode Exit fullscreen mode

Dashboard is at https://localhost:5601 in a few minutes.


Lab vs production mode

Running this on a homelab with limited RAM? Use the lab overlay:

docker compose -f docker-compose.yml -f docker-compose.lab.yml up -d

Enter fullscreen mode Exit fullscreen mode

It reduces the Wazuh Indexer heap and manager memory limits to fit on a 8GB machine.


What's next

The repo roadmap includes:

  • Wazuh cluster mode (multi-node manager)
  • Kubernetes Helm chart
  • SOAR integration (Shuffle / TheHive)
  • Sigma rule auto-import
  • Automated compliance dashboards (PCI-DSS, CIS)

If you're running VMware, Docker, or any cloud infrastructure and want proper security visibility without paying for a commercial SIEM, give it a try. PRs and rule contributions welcome.

github.com/GiulioSavini/wazuh-docker-monitoring-platform