learn-cyber · lesson 12 · capstone · production
Every Wazuh component named, each one wired to a concrete hotel-security job — and the checklist that turns your lab into something you can charge a hotel for.
Lesson 2 gave you the famous four: agent · server · indexer · dashboard. That's the right first map. But "the server" is really a bundle of internal daemons, and there are a couple of components that the four-part picture hides. To run this in production you need the complete list.1
The agent isn't one thing; it's a host of small collectors, each owning a hotel-security job:2
The manager is where raw logs become alerts. The names matter because when something breaks, the log tells you which daemon:2
1514).1515).55000) the dashboard and your automation talk to.alerts.json). A small shipper
called Filebeat, running on the manager, reads that
file and pushes each alert into the indexer.3
When alerts stop showing up in the dashboard but the manager is clearly firing
them, Filebeat is the first suspect — it's the link most people
forget exists.
wazuh-alerts-*)
and vulnerability state (wazuh-states-vulnerabilities-*); makes "every
failed login at the Marriott last week" fast.This is the table to internalize. If you can't say the hotel job a component does, you can't justify it on an invoice.
| Component | Side | What it does for the hotel |
|---|---|---|
| Log collector | agent | Ships PMS/POS/auth logs — the evidence everything else is built from. |
| Syscheck / FIM | agent | Catches tampering with POS binaries & PMS config — card-skimmer defence. |
| SCA | agent | CIS hardening score per machine — concrete PCI-DSS evidence. |
| Rootcheck | agent | Finds rootkits / hidden malware on back-office boxes. |
| analysisd (decoders+rules) | manager | Turns the flood into the few alerts worth waking up for. |
| Vulnerability Detection | manager | Flags unpatched software on the PMS host before an attacker does. |
| Active Response (execd) | manager | Auto-blocks an IP brute-forcing the PMS — the "R" in XDR. |
| remoted / authd | manager | Securely enrols and receives every hotel device. |
| Agentless / syslog | manager | Covers the firewall & switches — the perimeter you can't put an agent on. |
| Filebeat | manager | Delivers alerts to storage so nothing is lost between brain and memory. |
| Indexer | storage | Searchable history — investigations, trends, the audit trail you show an assessor. |
| Dashboard + RBAC/tenants | screen | Where you triage — and the wall that keeps Hotel A from seeing Hotel B. |
Trace one event end to end, with the ports you'll actually open in a firewall:
Active Response runs backwards along this path: the
manager decides, then execd pushes the command back down to the
agent's executor over the same 1514 channel. Detection flows up;
response flows down.
Your lab install (Lesson 3) works, but it is not production-safe until you've closed these. Each one maps to a real way a hotel deployment gets you in trouble. This is the headline skill of this lesson.
admin,
internal indexer users) with the password tool — defaults are public knowledge.51514/1515 reachable only from hotel
agent networks; 443 for the dashboard; 55000 (API)
restricted to you/automation.9200) to the internet
— it's your whole data lake. Firewall it to localhost / internal only./var/ossec/etc (your configs + custom
rules/decoders) and take indexer snapshots. Your detections are the product.<timeout>, and your own admin IPs whitelisted.From memory — no peeking. These are the production facts that bite.
Alerts are firing on the manager but none reach the dashboard. Which component is the first thing you check?
Filebeat reads the manager's alerts.json and
pushes alerts into the indexer. If the manager is clearly firing alerts but the
dashboard shows none, the courier between brain and memory — Filebeat — is the
classic culprit.
Which port should you make sure is never exposed to the public internet on a production deployment?
The indexer on 9200 is your entire data lake of
alerts and history. Exposed, it's a direct path to every hotel's security data.
Firewall it to internal/localhost; reach it through the dashboard, not directly.
Your single-node deployment runs fine for weeks, then the indexer suddenly won't start. What's the most likely cause?
With no index retention policy, alert indices grow forever until the disk fills and the indexer can't start. An ISM policy that rolls off old indices (and right-sized JVM heap) is what keeps a long-running node alive.
You just earned: the complete component map — agent modules, manager daemons, the hidden Filebeat courier, indexer and dashboard — each tied to a hotel-security job, the full production data flow with ports, and a four-part readiness checklist for going live.
Good next move: run the checklist against your own box and fix the gaps one at a time. A natural follow-on lesson is reading & triaging a live alert in the dashboard — the anatomy of an alert (level, rule ID, srcip, MITRE) and what each severity means you should do.
Sources
Reference: Production architecture blueprint · Config cheat-sheet · Glossary · Course home · ← Lesson 11