Upgrading Wazuh Docker
This section describes how to upgrade the Wazuh deployment on Docker.
To upgrade to version 4.14.0, choose one of the following strategies.
Using the default Docker Compose files: Replace the existing
docker-compose.ymlfile with the default one provided for Wazuh 4.14.0.Keeping your custom Docker Compose files: Retain your existing
docker-compose.ymlfile of your outdated Wazuh Docker deployment and apply the upgrade without replacing it.
Using the default Docker Compose files
Follow these steps to upgrade your deployment using the default docker-compose.yml file:
Run the following command from your
wazuh-docker/single-node/orwazuh-docker/multi-node/directory to stop the outdated environment:# docker compose down
Update your local repository to fetch the latest tags:
# git fetch --all --tags
Check out the tag for the current version of
wazuh-docker:# git checkout v4.14.0
This command switches your local repository to the specified release tag, ensuring the deployment uses that version's exact configuration and files.
Note
Replace
v4.14.0with the tag of any other Wazuh version you want to upgrade to. You can rungit tag -lto see all available versions.Start the upgraded Wazuh Docker environment using the
docker composecommand:# docker compose up -d
Your data and certificates remain persistent because they are stored in mounted Docker volumes. This means upgrading the environment does not erase your existing configuration or indexed data.
Keeping your custom Docker Compose files
To upgrade your deployment while preserving your custom docker-compose.yml file, follow these steps:
Single-node stack
Run the following command from your
wazuh-docker/single-node/directory to stop the outdated environment:# docker compose down
If upgrading from a version earlier than 4.8, edit the
single-node/config/wazuh_dashboard/opensearch_dashboards.ymlfile and update thedefaultRouteparameter as follows:uiSettings.overrides.defaultRoute: /app/wz-home
Optional: Modify the
OPENSEARCH_JAVA_OPTSenvironment variable in thesingle-node/docker-compose.ymlfile to allocate more RAM to the Wazuh indexer container.environment: - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
Modify the tag of the image generator in the
single-node/generate-indexer-certs.ymlfile to the latest.services: generator: image: wazuh/wazuh-certs-generator:0.0.2
Recreate the certificates after these changes.
# docker compose -f generate-indexer-certs.yml run --rm generator
Optional: Update old paths with the new ones based on the version you are upgrading from.
Wazuh dashboard
Edit
single-node/config/wazuh_dashboard/opensearch_dashboards.ymland do the following replacements.Replace
/usr/share/wazuh-dashboard/config/certs/with/usr/share/wazuh-dashboard/certs/.
Edit
single-node/docker-compose.ymland do the following replacements.Replace
/usr/share/wazuh-dashboard/config/certs/with/usr/share/wazuh-dashboard/certs/.
Wazuh indexer
Edit the
single-node/config/wazuh_indexer/wazuh.indexer.ymlfile and do the following replacements.Replace
${OPENSEARCH_PATH_CONF}/certs/with/usr/share/wazuh-indexer/config/certs/.
Edit the
single-node/docker-compose.ymlfile and do the following replacements.Replace
/usr/share/wazuh-indexer/plugins/opensearch-security/securityconfig/with/usr/share/wazuh-indexer/opensearch-security/.
Wazuh indexer
Edit the
single-node/config/wazuh_indexer/wazuh.indexer.ymlfile and do the following replacements.Replace
/usr/share/wazuh-indexer/certs/with/usr/share/wazuh-indexer/config/certs/.
Edit the
single-node/docker-compose.ymlfile and do the following replacements.Replace
/usr/share/wazuh-indexer/certs/with/usr/share/wazuh-indexer/config/certs/.Replace
/usr/share/wazuh-indexer/opensearch.ymlwith/usr/share/wazuh-indexer/config/opensearch.yml.Replace
/usr/share/wazuh-indexer/opensearch-security/internal_users.ymlwith/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml.
Edit the
docker-compose.ymlfile and update the highlighted lines to the latest images.wazuh.manager: image: wazuh/wazuh-manager:4.14.0 ... wazuh.indexer: image: wazuh/wazuh-indexer:4.14.0 ... wazuh.dashboard: image: wazuh/wazuh-dashboard:4.14.0
Optional: If you are upgrading from Wazuh version 4.3, add the variable related to the
kibanaserveruser.... wazuh.dashboard: image: wazuh/wazuh-dashboard:4.14.0 environment: - INDEXER_USERNAME=admin - INDEXER_PASSWORD=SecretPassword - WAZUH_API_URL=https://wazuh.manager - DASHBOARD_USERNAME=kibanaserver - DASHBOARD_PASSWORD=kibanaserver
Replace the content of the following file in your stack with the one from the Wazuh Docker repository.
single-node/config/wazuh_cluster/wazuh_manager.conf(see wazuh_manager.conf in tagv4.14.0)
Start the new version of Wazuh using the
docker composecommand:# docker compose up -d
Multi-node stack
Run the following command from your
wazuh-docker/multi-node/directory to stop the outdated environment:# docker compose down
If upgrading from a version earlier than 4.8, edit
multi-node/config/wazuh_dashboard/opensearch_dashboards.ymlfile and update thedefaultRouteparameter as follows:uiSettings.overrides.defaultRoute: /app/wz-home
Optional: Modify the
OPENSEARCH_JAVA_OPTSenvironment variable in themulti-node/docker-compose.ymlfile to allocate more RAM to the Wazuh indexer container.environment: - "OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g"
Modify the tag of the image generator to the latest tag
wazuh/wazuh-certs-generator:0.0.2in themulti-node/generate-indexer-certs.ymlfile.services: generator: image: wazuh/wazuh-certs-generator:0.0.2
Recreate the certificates after these changes.
# docker compose -f generate-indexer-certs.yml run --rm generator
Optional: Update these old paths with the new ones based on the version you are upgrading from.
Wazuh dashboard
Edit
multi-node/config/wazuh_dashboard/opensearch_dashboards.ymland do the following replacements.Replace
/usr/share/wazuh-dashboard/config/certs/with/usr/share/wazuh-dashboard/certs/.
Edit
multi-node/docker-compose.ymland do the following replacements.Replace
/usr/share/wazuh-dashboard/config/certs/with/usr/share/wazuh-dashboard/certs/.
Wazuh indexer
Edit the
multi-node/config/wazuh_indexer/wazuh1.indexer.yml,multi-node/config/wazuh_indexer/wazuh2.indexer.yml, andmulti-node/config/wazuh_indexer/wazuh3.indexer.ymlfiles and do the following replacements.Replace
${OPENSEARCH_PATH_CONF}/certs/with/usr/share/wazuh-indexer/config/certs/.
Edit the
multi-node/docker-compose.ymlfile and do the following replacements.Replace
/usr/share/wazuh-indexer/plugins/opensearch-security/securityconfig/with/usr/share/wazuh-indexer/opensearch-security/.
Wazuh indexer
Edit the
multi-node/config/wazuh_indexer/wazuh1.indexer.yml,multi-node/config/wazuh_indexer/wazuh2.indexer.yml, andmulti-node/config/wazuh_indexer/wazuh3.indexer.ymlfiles and do the following replacements.Replace
/usr/share/wazuh-indexer/certs/with/usr/share/wazuh-indexer/config/certs/.
Edit the
multi-node/docker-compose.ymlfile and do the following replacements.Replace
/usr/share/wazuh-indexer/certs/with/usr/share/wazuh-indexer/config/certs/.Replace
/usr/share/wazuh-indexer/opensearch.ymlwith/usr/share/wazuh-indexer/config/opensearch.yml.Replace
/usr/share/wazuh-indexer/opensearch-security/internal_users.ymlwith/usr/share/wazuh-indexer/config/opensearch-security/internal_users.yml.
Edit the
docker-compose.ymlfile and update the highlighted lines to the latest images.wazuh.master: image: wazuh/wazuh-manager:4.14.0 ... wazuh.worker: image: wazuh/wazuh-manager:4.14.0 ... wazuh1.indexer: image: wazuh/wazuh-indexer:4.14.0 ... wazuh2.indexer: image: wazuh/wazuh-indexer:4.14.0 ... wazuh3.indexer: image: wazuh/wazuh-indexer:4.14.0 ... wazuh.dashboard: image: wazuh/wazuh-dashboard:4.14.0
Optional: If you are updating from Wazuh version 4.3, add the variable related to the
kibanaserveruser.... wazuh.dashboard: image: wazuh/wazuh-dashboard:4.14.0 environment: - OPENSEARCH_HOSTS="https://wazuh1.indexer:9200" - WAZUH_API_URL="https://wazuh.master" - API_USERNAME=wazuh-wui - API_PASSWORD=MyS3cr37P450r.*- - DASHBOARD_USERNAME=kibanaserver - DASHBOARD_PASSWORD=kibanaserver
Replace the content of the following files in your stack with the ones from the Wazuh Docker repository.
multi-node/config/wazuh_cluster/wazuh_manager.conf(see wazuh_manager.conf in tagv4.14.0)multi-node/config/wazuh_cluster/wazuh_worker.conf(see wazuh_worker.conf in tagv4.14.0)
Start the new version of Wazuh using the
docker composecommand:# docker compose up -d