Introduction
The Wazuh Dashboard provides a comprehensive agent deployment wizard that guides administrators through the process of registering and deploying agents on various operating systems. The deployment interface generates platform-specific installation commands with all necessary parameters preconfigured.Accessing the Deployment Wizard
The agent deployment wizard is accessed from the Endpoints section:- Navigate to the Endpoints section in the Wazuh Dashboard
- Click the “Deploy new agent” button
- The deployment wizard interface will open
/agents-preview → “Deploy new agent”
Component implementation: register-agent.tsx:1
Deployment Prerequisites
Permissions
Deploying new agents requires the following authorization:- Action:
agent:create - Resource:
*:*:*
Manager Configuration
Before deploying agents, ensure the following manager configurations are in place:- Remote Configuration: The manager must have remote enrollment configured
- Connection Protocol: TCP or UDP protocol must be enabled
- Server Address: A resolvable DNS name or IP address must be configured
- Authentication: Optional password authentication may be configured
Deployment Wizard Steps
Step 1: Select Operating System
The wizard supports the following operating system and architecture combinations:Linux Options
- DEB amd64: Debian-based distributions (Ubuntu, Debian) on x86_64
- DEB aarch64: Debian-based distributions on ARM64
- RPM amd64: Red Hat-based distributions (RHEL, CentOS, Fedora) on x86_64
- RPM aarch64: Red Hat-based distributions on ARM64
Windows Options
- MSI 32/64 bits: Windows systems (supports both 32-bit and 64-bit)
macOS Options
- Intel: macOS systems running on Intel processors
- Apple Silicon: macOS systems running on Apple M1/M2/M3 processors
os-commands-definitions.ts:1
Step 2: Configure Server Address
Specify the Wazuh manager’s server address that agents will use to connect:- Default DNS Address: Pre-populated from the manager configuration (
enrollment.dns) - Custom Address: Enter a custom IP address or fully qualified domain name (FQDN)
- A valid hostname or FQDN
- A valid IPv4 address
- A valid IPv6 address
SettingsValidator.serverAddressHostnameFQDNIPv4IPv6
Step 3: Configure Agent Name (Optional)
Specify a custom name for the agent:- Default Behavior: If no name is provided, the agent will use the system hostname
- Custom Name: Enter a descriptive name for easy identification
- Names do not contain invalid characters
- Names are unique within the manager
- Names follow Wazuh naming conventions
validations.ts (validateAgentName)
Step 4: Assign Agent Groups (Optional)
Assign the agent to one or more groups:- Available Groups: Displayed from the manager’s configured groups
- Default Group: Agents are automatically assigned to the “default” group if no groups are specified
- Multiple Groups: Agents can belong to multiple groups simultaneously
- Centralized configuration management
- Policy-based agent organization
- Bulk operations on groups of agents
getGroups() service function
Component implementation: group-input.tsx:1
Step 5: Optional Parameters
Configure additional deployment parameters:Protocol Selection
- TCP: Default and recommended protocol for agent-manager communication
- UDP: Alternative protocol, used when TCP is not available
Authentication Password
If the manager has password authentication enabled (authd.pass configured):
- The deployment wizard will automatically include the password in installation commands
- Password is required for agent registration when authentication is enabled
- Passwords are properly escaped for each operating system’s command interpreter
- Linux:
scapeSpecialCharsForLinux() - macOS:
scapeSpecialCharsForMacOS() - Windows:
scapeSpecialCharsForWindows()
Generated Installation Commands
Linux (Debian/Ubuntu) - DEB amd64
Linux (RHEL/CentOS) - RPM amd64
Windows - MSI
macOS - Intel
macOS - Apple Silicon
Installation Parameters
The deployment wizard supports the following environment variables:Required Parameters
WAZUH_MANAGER: IP address or hostname of the Wazuh manager
Optional Parameters
WAZUH_AGENT_NAME: Custom name for the agentWAZUH_AGENT_GROUP: Comma-separated list of groupsWAZUH_REGISTRATION_PASSWORD: Password for agent authentication (if enabled)WAZUH_PROTOCOL: Communication protocol (TCP or UDP)
Command Output Display
The deployment wizard provides:- Copy to Clipboard: One-click command copying
- Command Breakdown: Step-by-step explanation of each command
- OS-Specific Warnings: Platform-specific notes and considerations
- Package URLs: Direct links to agent packages
command-output.tsx:1
Deployment Verification
After running the installation commands on the target system:Check Agent Status
Linux/macOS:Verify Manager Connection
- Return to the Endpoints section in the Wazuh Dashboard
- Refresh the agent table
- The newly deployed agent should appear with status:
- “Pending” (initial registration)
- “Active” (successfully connected)
Common Status Indicators
- Active: Agent is connected and reporting data
- Pending: Agent is registered but awaiting initial connection
- Never Connected: Agent registered but has not connected (check network/firewall)
Troubleshooting Deployment
Agent Not Appearing
Possible causes:- Firewall blocking communication (default ports: 1514, 1515)
- Incorrect manager address
- Authentication password mismatch
- Network connectivity issues
- Verify network connectivity to the manager
- Check firewall rules on both agent and manager
- Review agent logs:
- Linux/macOS:
/var/ossec/logs/ossec.log - Windows:
C:\Program Files (x86)\ossec-agent\ossec.log
- Linux/macOS:
Agent Status “Never Connected”
Component prompt:prompt-agent-never-connected.tsx:1
Resolution steps:
- Verify the
WAZUH_MANAGERparameter is correct - Check agent configuration:
/var/ossec/etc/ossec.conf - Verify manager ports are accessible:
- Restart the agent service
- Review agent and manager logs
Authentication Failures
Symptoms:- Agent appears as “Pending” indefinitely
- Authentication errors in agent logs
- Verify
WAZUH_REGISTRATION_PASSWORDmatches manager configuration - Check manager’s
authd.passsetting - Re-register the agent with correct password
Protocol Mismatch
Symptoms:- Agent connects intermittently
- Connection drops frequently
- Verify protocol settings match manager configuration
- Check UDP/TCP availability in manager’s remote configuration
- Use TCP protocol when possible (more reliable)
getRemoteConfiguration() service
Bulk Deployment
For deploying multiple agents:Using Configuration Management Tools
The generated commands can be integrated with:- Ansible playbooks
- Puppet manifests
- Chef recipes
- SaltStack states
Script-Based Deployment
Create deployment scripts using the wizard-generated commands as templates:Best Practices
Planning
- Define group structure before deployment
- Use consistent naming conventions for agents
- Document server addresses and configuration parameters
- Test deployment on a single system before bulk rollout
Security
- Use password authentication in production environments
- Secure the deployment commands (they may contain passwords)
- Use HTTPS/secure channels for package downloads
- Verify package checksums when possible
- Rotate authentication passwords regularly
Network
- Ensure firewall rules allow agent-manager communication
- Use TCP protocol for reliability
- Configure network load balancing for high-availability setups
- Test connectivity before deployment
Maintenance
- Keep package repositories up to date
- Monitor agent registration success rates
- Document deployment procedures for team members
- Regularly review and update group assignments