Skip to main content
This comprehensive guide covers migrating the Wazuh dashboard plugins from version 4.x to 5.x, including breaking changes, configuration updates, and troubleshooting steps.

Overview

Wazuh 5.x introduces significant changes to the dashboard plugins architecture and configuration:
  • Platform upgrade: Migration from Kibana/OpenSearch Dashboards 2.x to OpenSearch Dashboards 3.x
  • Configuration changes: Settings relocated from wazuh.yml to opensearch_dashboards.yml
  • Plugin restructure: Core functionality split into modular plugins (wazuh-core, wazuh-check-updates)
  • Index pattern updates: New default pattern wazuh-events* replacing wazuh-alerts-*
  • UI modernization: Removal of legacy interfaces and deprecated features
  • Security enhancements: Updated authentication and authorization mechanisms

Compatibility Matrix

All Wazuh stack components (indexer, manager, dashboard) must be upgraded to 5.x together. Mixed-version deployments are not supported.

Pre-Migration Preparation

Review System Requirements

Verify your system meets 5.x requirements:
  • OS: Supported Linux distribution
  • Hardware: Minimum 4 GB RAM, 8 GB recommended
  • Network: Connectivity to upgraded indexer and manager
  • Certificates: Valid TLS certificates compatible with OpenSearch 3.x

Back Up Critical Data

Before starting the migration:

Back up saved objects

  1. Navigate to ☰ Menu > Dashboard Management > Saved objects
  2. Click Export all
  3. Save the exported .ndjson file to a safe location
  4. Alternatively, use the API:

Back up configuration files

Back up certificates

Document custom settings

Review Breaking Changes

Review the CHANGELOG and note:
  • Deprecated settings that must be removed
  • Renamed configuration keys
  • Removed features you may be using
  • New required configurations

Breaking Changes in 5.x

Configuration File Changes

wazuh.yml deprecated

The standalone wazuh.yml configuration file is removed in 5.x. All plugin settings have been moved to:
  1. opensearch_dashboards.yml - Core settings
  2. Advanced Settings UI - Tenant-level preferences
Migration path: 4.x (/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml):
5.x (/etc/wazuh-dashboard/opensearch_dashboards.yml):
5.x (Advanced Settings UI):
  • Navigate to ☰ Menu > Dashboard Management > Advanced Settings
  • Configure tenant-level settings:
    • timeout: 20000
    • Other UI preferences

Index Pattern Changes

Removed Settings

These settings are no longer supported and must be removed from your configuration.
Replacement:
  • Custom branding: Use opensearchDashboards.branding.*
  • Monitoring: Configured via index lifecycle management
  • Admin mode: Replaced by role-based access control

Plugin Architecture Changes

New Plugin Structure

Impact: Plugin dependencies are automatically managed. No manual action required.

API Changes

If you have custom scripts or integrations:

UI Changes

Removed Features

  • Legacy App Settings: Use ☰ Menu > Dashboard Management > Advanced Settings or opensearch_dashboards.yml
  • Dev Tools integration: Use native OpenSearch Dashboards Dev Tools
  • Deprecated modules: Some 4.x experimental modules removed

Renamed Navigation Paths

Migration Steps

Step 1: Upgrade Stack Components in Order

Follow this sequence to avoid compatibility issues:

1.1 Upgrade Wazuh indexer (first)

1.2 Upgrade Wazuh manager (second)

1.3 Upgrade Wazuh dashboard (last)

Step 2: Migrate Configuration

2.1 Update opensearch_dashboards.yml

Edit /etc/wazuh-dashboard/opensearch_dashboards.yml:
Required changes:
  1. Update server settings (if customized):
  1. Update indexer connection:
  1. Add Wazuh API configuration (migrated from wazuh.yml):
  1. Set default route:
  1. Remove deprecated settings (if present):
Remove any lines containing:
  • customization.*
  • wazuh.monitoring.*
  • admin

2.2 Update Certificate Paths

Verify certificate paths in opensearch_dashboards.yml:

2.3 Apply Custom Branding

Migrate customization.* settings to OpenSearch Dashboards branding: 4.x custom branding:
5.x branding:

Step 3: Update File Permissions

Step 4: Start and Verify Dashboard

Look for successful startup messages:

Step 5: Import Saved Objects

  1. Log in to the dashboard at https://your-dashboard-ip/
  2. Navigate to ☰ Menu > Dashboard Management > Saved objects
  3. Click Import
  4. Select your backed-up .ndjson file
  5. Handle conflicts:
    • Check for existing objects: Recommended for most cases
    • Automatically overwrite: Use with caution
  6. Click Import

Post-Migration Validation

Verify Dashboard Functionality

✅ Check list:
  • Dashboard loads at /app/wz-home
  • Wazuh logo and branding appear correctly
  • Navigation menu displays all modules
  • Agents list loads successfully
  • Events are displayed in Threat Hunting

Run Health Check

  1. Navigate to ☰ Menu > Management > Health Check
  2. Click Check
  3. Verify all checks pass:
    • ✅ API connection
    • ✅ Indexer connection
    • ✅ Plugin status
    • ✅ Index patterns
    • ✅ Template verification

Validate API Connections

Test Wazuh manager API connectivity:
Expected response:

Verify Index Patterns

Navigate to ☰ Menu > Dashboard Management > Index patterns:
  • Default pattern wazuh-events* exists
  • Time field is timestamp
  • Field mappings are loaded

Troubleshooting Common Migration Issues

Issue 1: Dashboard Fails to Start

Symptoms:
Solutions:
  1. Verify indexer is running:
  1. Check certificate paths:
  1. Test indexer connectivity:
  1. Review logs:

Issue 2: API Connection Errors

Symptoms:
Solutions:
  1. Verify API configuration in opensearch_dashboards.yml:
  1. Test API manually:
  1. Check manager firewall:

Issue 3: Missing Saved Objects

Symptoms: Dashboards or visualizations do not appear after migration. Solutions:
  1. Re-import saved objects:
    • Go to Dashboard Management > Saved objects > Import
    • Select backed-up .ndjson file
    • Choose Automatically overwrite conflicts
  2. Manually create index pattern if missing:
  1. Regenerate default objects:
    • Navigate to Management > Health Check
    • Click Check to recreate missing templates and patterns

Issue 4: Performance Degradation

Symptoms: Dashboard is slow or unresponsive after migration. Solutions:
  1. Clear browser cache and cookies
  2. Optimize OpenSearch indices:
  1. Review resource allocation:
  1. Tune dashboard settings in opensearch_dashboards.yml:

Rollback Procedure

Rollback is complex and may result in data loss. Only perform if absolutely necessary.
If migration fails and you need to rollback:

1. Stop 5.x Dashboard

2. Downgrade Package

3. Restore Configuration

4. Rollback Stack Components

Follow the same procedure for indexer and manager (in reverse order).

5. Restart Services

Additional Resources