docs/ref/modules/syscollector/architecture.md
The Syscollector module follows a modular architecture designed for efficient system inventory collection, change detection, and reliable synchronization with the Wazuh manager.
┌─────────────────────────────────────────────┐
│ Wazuh Agent │
├─────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ wm_syscollector │──▶│ Syscollector │ │
│ │ (Configuration) │ │ Library (Scan) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Local Database │◀──│ Event Queue │ │
│ │ (SQLite) │ │ (Messages) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │ │
└────────────────────────────────┼────────────┘
│
▼
┌─────────────────────────────────────────────┐
│ Wazuh Manager │
├─────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ Inventory │──▶│ Wazuh Indexer │ │
│ │ Harvester │ │ (Storage) │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
└─────────────────────────────────────────────┘
wm_syscollector)Location: src/wazuh_modules/wm_syscollector.c
The main orchestrator responsible for:
ossec.confLocation: src/wazuh_modules/syscollector/
Core inventory collection engine that:
Inventory Categories:
Location: SQLite database at queue/syscollector/db/local.db
Used for:
Events are sent through the agent's message queue to the manager for direct processing by the Inventory Harvester.
[Timer] → [Scan] → [Compare] → [Generate Events] → [Send] → [Index]
↓
[SQLite DB]
Syscollector is configured in the agent's ossec.conf file:
<wodle name="syscollector">
<disabled>no</disabled>
<interval>1h</interval>
<scan_on_start>yes</scan_on_start>
<!-- Inventory components -->
<hardware>yes</hardware>
<os>yes</os>
<network>yes</network>
<packages>yes</packages>
<ports>yes</ports>
<processes>yes</processes>
<users>yes</users>
<groups>yes</groups>
<services>yes</services>
<browser_extensions>yes</browser_extensions>
<hotfixes>yes</hotfixes>
<!-- Rate limiting -->
<synchronization>
<max_eps>10</max_eps>
</synchronization>
</wodle>
See Configuration Guide for detailed options.
max_eps