Introduction
The System Inventory feature (Syscollector) enables Wazuh agents to collect detailed information about the systems they are monitoring. This data is aggregated in the Wazuh Dashboard, providing administrators with comprehensive visibility into hardware configurations, installed software, network interfaces, running processes, and other system attributes.System Inventory Overview
System inventory data is collected through the Syscollector module, which periodically scans the system and reports information to the Wazuh manager. The collected data is indexed and made available for querying and visualization in the Dashboard.Data Collection Categories
Syscollector gathers information in the following categories:- Hardware: Physical system components and specifications
- Operating System: OS details and version information
- Packages: Installed software packages and versions
- Processes: Running processes and their attributes
- Network: Network interfaces and configurations
- Ports: Open ports and listening services
- Hotfixes: Installed system updates (Windows)
- Users and Groups: System user accounts and groups
- Services: System services and their status
- Browser Extensions: Installed browser extensions
Accessing System Inventory
Inventory Metrics Panel
System inventory summary is displayed on the agent welcome screen:- Navigate to the Endpoints section
- Select an agent from the table
- View the “System Inventory” panel
- Cores: Number of CPU cores
- Memory: Total system memory (formatted)
- CPU: Processor model and name
- Hostname: System hostname
- Serial Number: Hardware serial number
syscollector-metrics.tsx:1
IT Hygiene Dashboard
Detailed system inventory data is available through the IT Hygiene dashboard:- Click the “Open IT Hygiene” button from the System Inventory panel
- Navigate directly to the IT Hygiene application
- Access comprehensive inventory tables and analytics
ITHygiene.id application
System Inventory Configuration
Enabling Syscollector
Syscollector is configured in the agent’sossec.conf file:
Configuration Parameters
disabled
- Type: Boolean (yes/no)
- Default: no
- Description: Enable or disable the Syscollector module
interval
- Type: Time value
- Default: 1h
- Description: Frequency of system scans
- Values: Seconds (s), minutes (m), hours (h), days (d)
- Examples:
30m,2h,1d
scan_on_start
- Type: Boolean (yes/no)
- Default: yes
- Description: Perform inventory scan when agent starts
hardware
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect hardware information
os
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect operating system information
network
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect network interface information
packages
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect installed packages information
ports
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect open ports and listening services
processes
- Type: Boolean (yes/no)
- Default: yes
- Description: Collect running processes information
Hardware Inventory
Collected Hardware Data
The hardware inventory includes:CPU Information
- Name: Processor model and brand
- Cores: Number of physical cores
- Speed: Clock speed in MHz/GHz
- Architecture: Processor architecture (x86_64, ARM, etc.)
Memory Information
- Total: Total system memory in bytes
- Free: Available memory
- Used: Memory in use
System Information
- Serial Number: Hardware serial number
- Board Serial: Motherboard serial number
- Manufacturer: System manufacturer
- Product Name: System model/product name
Hardware Data Source
Hardware data is retrieved using the System Inventory Hardware data source:wazuh-states-inventory-hardware*
Operating System Inventory
Collected OS Data
The operating system inventory includes:- Platform: Operating system platform (Linux, Windows, macOS)
- Distribution: Specific distribution (Ubuntu, CentOS, Windows 10, etc.)
- Version: OS version number
- Architecture: System architecture (x86_64, i386, ARM)
- Hostname: System hostname
- Release: Kernel or build release
- Codename: OS codename (if applicable)
System Data Source
System/OS data is retrieved using:wazuh-states-inventory-system*
Package Inventory
Collected Package Data
The package inventory includes:- Package Name: Software package name
- Version: Installed version
- Architecture: Package architecture
- Vendor: Software vendor/maintainer
- Description: Package description
- Install Time: When the package was installed
- Size: Package size
- Location: Installation path
Package Manager Support
Syscollector supports various package managers:-
Linux:
- RPM (Red Hat, CentOS, Fedora)
- DEB (Debian, Ubuntu)
- APK (Alpine Linux)
- Pacman (Arch Linux)
-
Windows:
- Windows Installer (MSI)
- Programs and Features registry
-
macOS:
- Homebrew
- MacPorts
- System packages
wazuh-states-inventory-packages*
Process Inventory
Collected Process Data
The process inventory includes:- Process ID (PID): Unique process identifier
- Name: Process name
- Command Line: Full command line with arguments
- State: Process state (running, sleeping, etc.)
- PPID: Parent process ID
- User: User running the process
- Priority: Process priority
- Virtual Memory: Virtual memory usage
- Resident Memory: Physical memory usage
- Start Time: When the process started
- Thread Count: Number of threads
wazuh-states-inventory-processes*
Network Inventory
Network Interface Data
The network inventory includes:Interface Information
- Name: Interface name (eth0, wlan0, etc.)
- Type: Interface type (Ethernet, Wireless, Loopback)
- State: Interface state (up, down)
- MAC Address: Hardware address
- MTU: Maximum transmission unit
IP Configuration
- IPv4 Address: IPv4 addresses assigned
- IPv4 Netmask: Network mask
- IPv6 Address: IPv6 addresses assigned
- IPv6 Netmask: IPv6 network mask
- Gateway: Default gateway
- DHCP: DHCP status
Statistics
- TX Packets: Transmitted packets
- RX Packets: Received packets
- TX Bytes: Transmitted bytes
- RX Bytes: Received bytes
- TX Errors: Transmission errors
- RX Errors: Reception errors
wazuh-states-inventory-networks*wazuh-states-inventory-interfaces*
Port Inventory
Collected Port Data
The port inventory includes:- Local IP: Local IP address
- Local Port: Local port number
- Remote IP: Remote IP address (for established connections)
- Remote Port: Remote port number
- Protocol: Network protocol (TCP, UDP)
- State: Connection state (listening, established, etc.)
- Process: Process using the port
- PID: Process ID
wazuh-states-inventory-ports*
Additional Inventory Types
Hotfixes (Windows)
Windows-specific hotfix inventory:- Hotfix ID: Microsoft KB number
- Installation Date: When the update was installed
- Installed By: User who installed the update
wazuh-states-inventory-hotfixes*
Users and Groups
System user and group inventory:Users
- Username: User account name
- UID: User ID
- GID: Primary group ID
- Home Directory: User home directory
- Shell: Default shell
wazuh-states-inventory-users*
Groups
- Group Name: Group name
- GID: Group ID
- Members: Group members
wazuh-states-inventory-groups*
Services
System services inventory:- Service Name: Service name
- Display Name: Service display name
- State: Service state (running, stopped)
- Startup Type: Startup configuration (automatic, manual, disabled)
wazuh-states-inventory-services*
Browser Extensions
Installed browser extensions:- Browser: Browser name (Chrome, Firefox, Edge)
- Extension Name: Extension name
- Version: Extension version
- Description: Extension description
- Permissions: Requested permissions
wazuh-states-inventory-browser-extensions*
Data Source Integration
Index Pattern Data Sources
System inventory uses specialized data sources:Data Fetching
Inventory data is fetched with pagination:Field Formatting
Inventory fields are formatted using index pattern formatters:- Consistent formatting across the Dashboard
- Proper unit conversion (bytes to GB, etc.)
- Locale-specific number formatting
Inventory Metrics Display
Loading States
The inventory metrics component handles multiple loading states:Empty State Handling
When insufficient data is available:- Syscollector may be disabled
- Agent has not completed initial scan
- Data collection errors occurred
Ribbon Display
Inventory metrics are displayed in a ribbon panel:WzRibbonPanel, WzRibbonBody
Use Cases for System Inventory
Asset Management
- Track hardware assets across the organization
- Monitor hardware lifecycle and plan replacements
- Maintain accurate inventory for compliance
- Identify unauthorized hardware changes
Software Inventory
- Track installed software versions
- Identify outdated or vulnerable packages
- Ensure license compliance
- Plan software upgrades and patches
Network Mapping
- Document network configurations
- Identify unauthorized network interfaces
- Monitor IP address assignments
- Detect network configuration changes
Security Monitoring
- Detect unauthorized processes
- Monitor open ports for security risks
- Identify rogue services
- Track user account changes
Compliance Reporting
- Generate compliance reports
- Demonstrate asset tracking
- Audit system configurations
- Verify security controls
Integration with Other Features
Vulnerability Detection
System inventory integrates with vulnerability detection:- Package inventory used for vulnerability matching
- CVE databases cross-referenced with installed packages
- Vulnerability reports include package version details
IT Hygiene Module
Full inventory capabilities available in IT Hygiene:- Detailed tables for all inventory categories
- Advanced filtering and search
- Export capabilities
- Trend analysis and reporting
Best Practices
Configuration
- Set appropriate scan intervals based on environment:
- Static environments: Longer intervals (12h, 24h)
- Dynamic environments: Shorter intervals (1h, 4h)
- Enable
scan_on_startfor immediate initial inventory - Disable unneeded inventory categories to reduce overhead
Performance
- Monitor agent performance during scans
- Adjust intervals if scans cause performance issues
- Consider system load when scheduling scans
- Use longer intervals for resource-constrained systems
Data Management
- Regularly review inventory data for accuracy
- Use inventory data for capacity planning
- Archive historical inventory for trend analysis
- Set appropriate data retention policies
Security
- Protect inventory data (contains sensitive system information)
- Restrict access to inventory views based on roles
- Monitor for unexpected inventory changes
- Use inventory data for anomaly detection
Troubleshooting
No Inventory Data
Symptoms:- “Not enough hardware or operating system information” message
- Empty inventory metrics
- Verify Syscollector is enabled in agent configuration
- Check agent logs for Syscollector errors
- Verify agent has permissions to collect inventory
- Wait for initial scan to complete
- Manually trigger a scan by restarting the agent
Incomplete Inventory
Symptoms:- Some metrics display, others are empty
- Missing data categories
- Check specific category enablement in configuration
- Verify agent permissions for specific operations
- Review logs for category-specific errors
- Ensure supported OS and version
Outdated Inventory
Symptoms:- Inventory data does not reflect recent changes
- Timestamps are old
- Verify scan interval configuration
- Check agent connectivity and sync status
- Manually trigger scan by restarting agent
- Review agent logs for scan failures