
Wazuh Server
Channel | Revision | Published | Runs on |
---|---|---|---|
4.11/stable | 167 | 07 Jul 2025 | |
4.11/edge | 196 | Today |
juju deploy wazuh-server --channel 4.11/stable
Deploy Kubernetes operators easily with Juju, the Universal Operator Lifecycle Manager. Need a Kubernetes cluster? Install MicroK8s to create a full CNCF-certified Kubernetes system in under 60 seconds.
Platform:
Deploy the Wazuh Server charm for the first time
What you’ll do
- Deploy the Wazuh Server charm.
- Integrate with the Wazuh Indexer charm.
- Integrate with the Wazuh Dashboard charm.
- Integrate with the self Signed X.509 Certificates charm.
- Integrate with the Traefik charm.
Requirements
- A working station, e.g., a laptop, with amd64 architecture.
- Juju 3 installed and bootstrapped to an LXD controller. You can accomplish this process by using a Multipass VM as outlined in this guide: How to manage your deployment.
The How to manage your deployment tutorial provides documentation for both manual and automatic deployment management. You would have to follow the manual steps only to avoid installing MicroK8s in your setup.
- A deployed Wazuh Indexer. For instructions to deploy the Wazuh Indexer, check its documentation.
- A deployed Wazuh Dashboard. For instructions to deploy the Wazuh Dashboard, check its documentation.
When using a Multipass VM, make sure to replace IP addresses with the
VM IP in steps that assume you’re running locally. To get the IP address of the
Multipass instance run
multipass info my-juju-vm
.
Set up Canonical Kubernetes
Install, bootstrap, and check the status of Canonical Kubernetes:
sudo snap install k8s --edge --classic
sudo k8s bootstrap
sudo k8s status --wait-ready
Once Canonical Kubernetes is up and running, enable the following core cluster features:
sudo k8s enable network dns load-balancer local-storage gateway
sudo k8s status --wait-ready
Bootstrap a controller
Bootstrap the Juju controller:
juju add-k8s ck8s --client --context-name="k8s"
juju bootstrap ck8s
Set up a tutorial model
To manage resources effectively and to separate this tutorial’s workload from your usual work, create a new model using the following command.
juju add-model wazuh-tutorial
Deploy the Wazuh Server charm
Wazuh requires connections to Wazuh indexer, Traefik and a charm implementing the TLS certificates relation. For this tutorial we will be using Self Signed X.509 Certificates.
Deploy and integrate the charms
juju deploy wazuh-server
juju deploy self-signed-certificates
juju deploy traefik-k8s --trust
Run juju status
to see the current status of the deployment. Wazuh server unit should be in waiting status
.
Provide the integrations between the Wazuh Server and the other charms:
juju integrate wazuh-server self-signed-certificates
juju integrate wazuh-server traefik-k8s
juju integrate wazuh-server <indexer-offer-url>
juju integrate wazuh-server <dashboard-offer-url>
Note that <indexer-offer-url>
and <dashboard-offer-url>
are the Juju offers for the Wazuh Indexer and Dashboard, respectively,
which deployed in a machine model in another controller.
Monitor the deployment using juju status
until the output looks similar to the following one:
SAAS Status Store URL
wazuh-indexer active juju-controller-lxd admin/wazuh.wazuh-indexer
wazuh-dashboard active juju-controller-lxd admin/wazuh.wazuh-dashboard
App Version Status Scale Charm Channel Rev Address Exposed Message
certificates active 1 self-signed-certificates latest/stable 155 10.87.137.125 no
traefik 2.11.0 active 1 traefik-k8s latest/edge 233 10.87.242.226 no Serving at 10.142.2.62
wazuh-server active 1 wazuh-server latest/edge 39 10.87.248.244 no
The deployment is complete when the status is Active
.
Clean up the environment
Well done! You’ve successfully completed the Wazuh Server tutorial. To remove the model environment you created during this tutorial, use the following command.
juju destroy-model wazuh-tutorial