Upgrade Guide (3.x to 4.0)

This scenario covers the upgrade of a cluster running version 3.13.x or previous to 4.x.

First create a new named volume with: docker volume create migration

Then proceed and attach it to the current cluster by modifying the docker-compose.yml like this:

volumes:
migration:
  external:
    name: migration

services:
  wazuh:
    image: wazuh/wazuh:3.13.1_7.8.0
    hostname: wazuh-manager
    restart: always
    ports:
      - "1514:1514/udp"
      - "1515:1515"
      - "514:514/udp"
      - "55000:55000"
    volumes:
      - migration:/wazuh-migration

Note

Pay attention to the external keyword on the volume definition to access a volume created outside the scope of the cluster.

Proceed to rebuild the container with this volume attached: docker-compose up -d

Copy the content of /var/ossec/data and global.db to /wazuh-migration on your Wazuh container:

docker exec wazuh-docker_wazuh_1 cp -a /var/ossec/data /wazuh-migration/

docker exec wazuh-docker_wazuh_1 cp /var/ossec/var/db/global.db /wazuh-migration/

You can stop the cluster now: docker-compose stop

The data from your legacy Wazuh container it's in the migration volume, feel free to inspect it:

docker run --rm -v migration:/migration alpine:latest ls -l /migration/data

Mount the volume on the new 4.0 cluster:

services:
wazuh:
...
  volumes:
    ...
    - migration:/wazuh-migration

volumes:
  ...
  migration:
    external:
      name: migration

Re-build the container with docker-compose up -d and now the migration volume is mounted on the Wazuh container at /migration, the container logic will take place and the migration will proceed before starting the manager processes.

On startup the script will provide feedback of the process. The message: Migration completed succesfully will appear on first execution, then it will display a warning to remove the volume from docker-compose.yml.

Migrated agents will be active on the new cluster:

# /var/ossec/bin/agent_control -l

Wazuh agent_control. List of available agents:
   ID: 000, Name: wazuh-manager (server), IP: 127.0.0.1, Active/Local
   ID: 001, Name: debian-agent, IP: any, Active
   ID: 002, Name: centos7-agent, IP: any, Active