mirror of
https://github.com/wazuh/wazuh-docker.git
synced 2025-10-23 06:11:57 +00:00
Add reference documentation
This commit is contained in:
@@ -4,25 +4,23 @@
|
|||||||
|
|
||||||
# Development Guide
|
# Development Guide
|
||||||
|
|
||||||
- [Introduction](dev/README.md)
|
- [Introduction](dev/introduction.md)
|
||||||
- [Setup Environment](dev/setup.md)
|
- [Setup Environment](dev/setup.md)
|
||||||
- [Build Image](dev/build-image.md)
|
- [Build Image](dev/build-image.md)
|
||||||
- [Run Tests](dev/run-tests.md)
|
- [Run Tests](dev/run-tests.md)
|
||||||
|
|
||||||
# Reference Manual
|
# Reference Manual
|
||||||
|
|
||||||
- [Reference](ref/README.md)
|
- [Introduction](ref/Introduction/introduction.md)
|
||||||
- [Introduction](ref/Introduction/README.md)
|
|
||||||
- [Description](ref/Introduction/description.md)
|
- [Description](ref/Introduction/description.md)
|
||||||
- [Compatibility](ref/Introduction/compatibility.md)
|
- [Getting Started](ref/getting-started/getting-started.md)
|
||||||
- [Getting Started](ref/getting-started/README.md)
|
|
||||||
- [Requirements](ref/getting-started/requirements.md)
|
- [Requirements](ref/getting-started/requirements.md)
|
||||||
- [Deployment](ref/getting-started/deployment/README.md)
|
- [Deployment](ref/getting-started/deployment/deployment.md)
|
||||||
- [Single Node Wazuh Stack](ref/getting-started/deployment/single-node.md)
|
- [Single Node Wazuh Stack](ref/getting-started/deployment/single-node.md)
|
||||||
- [Multi Node Wazuh Stack](ref/getting-started/deployment/multi-node.md)
|
- [Multi Node Wazuh Stack](ref/getting-started/deployment/multi-node.md)
|
||||||
- [Wazuh Agent](ref/getting-started/deployment/wazuh-agent.md)
|
- [Wazuh Agent](ref/getting-started/deployment/wazuh-agent.md)
|
||||||
- [Configuration](ref/configuration/README.md)
|
- [Configuration](ref/configuration/configuration.md)
|
||||||
- [CEnvironment Variabless](ref/configuration/environment-variables.md)
|
- [Environment Variabless](ref/configuration/environment-variables.md)
|
||||||
- [Configuration files](ref/configuration/configuration-files.md)
|
- [Configuration files](ref/configuration/configuration-files.md)
|
||||||
- [Upgrade](ref/upgrade.md)
|
- [Upgrade](ref/upgrade.md)
|
||||||
- [Glossary](ref/glossary.md)
|
- [Glossary](ref/glossary.md)
|
@@ -1,2 +0,0 @@
|
|||||||
# Development documentation
|
|
||||||
|
|
40
docs/dev/introduction.md
Normal file
40
docs/dev/introduction.md
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
# Development Guide - Introduction
|
||||||
|
|
||||||
|
Welcome to the Development Guide for Wazuh-Docker version 4.12.0. This guide is intended for developers, contributors, and advanced users who wish to understand the development aspects of the Wazuh-Docker project, build custom Docker images, or contribute to its development.
|
||||||
|
|
||||||
|
## Purpose of This Guide
|
||||||
|
|
||||||
|
The primary goals of this guide are:
|
||||||
|
|
||||||
|
- To provide a clear understanding of the development environment setup.
|
||||||
|
- To outline the process for building Wazuh Docker images from source.
|
||||||
|
- To explain how to run tests to ensure the integrity and functionality of the images.
|
||||||
|
- To offer insights into the project structure and contribution guidelines (though detailed contribution guidelines are typically found in `CONTRIBUTING.md` in the repository).
|
||||||
|
|
||||||
|
## Who Should Use This Guide?
|
||||||
|
|
||||||
|
This guide is for you if you want to:
|
||||||
|
|
||||||
|
- Modify existing Wazuh Docker images.
|
||||||
|
- Build Wazuh Docker images for a specific Wazuh version or with custom configurations.
|
||||||
|
- Understand the build process and scripts used in this project.
|
||||||
|
- Contribute code, features, or bug fixes to the Wazuh-Docker repository.
|
||||||
|
|
||||||
|
## What This Guide Covers
|
||||||
|
|
||||||
|
This guide is organized into the following sections:
|
||||||
|
|
||||||
|
- **[Setup Environment](setup.md)**: Instructions on how to prepare your local machine for Wazuh-Docker development, including necessary tools and dependencies.
|
||||||
|
- **[Build Image](build-image.md)**: Step-by-step procedures for building the various Wazuh Docker images (Wazuh manager, Wazuh indexer, Wazuh dashboard).
|
||||||
|
- **[Run Tests](run-tests.md)**: Information on how to execute automated tests to validate the built images and configurations.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
Before you begin, it's assumed that you have a basic understanding of:
|
||||||
|
|
||||||
|
- Docker and Docker Compose.
|
||||||
|
- Linux command-line interface.
|
||||||
|
- Version control systems like Git.
|
||||||
|
- The Wazuh platform and its components.
|
||||||
|
|
||||||
|
We encourage you to explore the Wazuh-Docker repository and familiarize yourself with its structure. If you plan to contribute, please also review the project's contribution guidelines.
|
@@ -1 +1 @@
|
|||||||
# How to run the tests.
|
# Run Tests
|
||||||
|
@@ -1,3 +1,55 @@
|
|||||||
# Set up the toolchain.
|
# Development Guide - Setup Environment
|
||||||
|
|
||||||
|
This section outlines the steps required to set up your local development environment for working with the Wazuh-Docker project (version 4.12.0). A proper setup is crucial for building images, running tests, and contributing effectively.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
Before you begin, ensure your system meets the following requirements:
|
||||||
|
|
||||||
|
1. **Operating System**:
|
||||||
|
* A Linux-based distribution is recommended (e.g., Ubuntu, RedHat).
|
||||||
|
* macOS or Windows with WSL 2 can also be used, but some scripts might require adjustments.
|
||||||
|
|
||||||
|
2. **Docker and Docker Compose**:
|
||||||
|
* **Docker Engine**: Install the latest stable version of Docker Engine. Refer to the [official Docker documentation](https://docs.docker.com/engine/install/) for installation instructions specific to your OS.
|
||||||
|
|
||||||
|
3. **Git**:
|
||||||
|
* Install Git for cloning the repository and managing versions. Most systems have Git pre-installed. If not, visit [https://git-scm.com/downloads](https://git-scm.com/downloads).
|
||||||
|
|
||||||
|
5. **Sufficient System Resources**:
|
||||||
|
* **RAM**: At least 8GB of RAM is recommended, especially if you plan to run multiple Wazuh components locally. 16GB or more is ideal.
|
||||||
|
* **CPU**: A multi-core processor (2+ cores) is recommended.
|
||||||
|
* **Disk Space**: Ensure you have sufficient disk space (at least 20-30GB) for Docker images, containers, and Wazuh data.
|
||||||
|
|
||||||
|
## Setting Up the Environment
|
||||||
|
|
||||||
|
Follow these steps to prepare your development environment:
|
||||||
|
|
||||||
|
1. **Clone the Repository**:
|
||||||
|
Clone the `wazuh-docker` repository from GitHub. It's important to check out the specific branch you intend to work with, in this case, `4.12.0`.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
|
||||||
|
cd wazuh-docker
|
||||||
|
git checkout 4.12.2
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Verify Docker Installation**:
|
||||||
|
Ensure Docker is running and accessible by your user (you might need to add your user to the `docker` group or use `sudo`).
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker --version
|
||||||
|
docker info
|
||||||
|
```
|
||||||
|
These commands should output the versions of Docker and information about your Docker setup without errors.
|
||||||
|
|
||||||
|
3. **Review Project Structure**:
|
||||||
|
Familiarize yourself with the directory structure of the cloned repository. Key directories often include:
|
||||||
|
* `build-docker-images/wazuh-manager/`: Dockerfile and related files for the Wazuh manager.
|
||||||
|
* `build-docker-images/wazuh-indexer/`: Dockerfile and related files for the Wazuh indexer.
|
||||||
|
* `build-docker-images/wazuh-dashboard/`: Dockerfile and related files for the Wazuh dashboard.
|
||||||
|
* `build-docker-images/wazuh-agent/` : Dockerfile and related files for Wazuh agents.
|
||||||
|
* `single-node/` : Compose and configuration files for Wazuh deployment with 1 container of each Wazuh component.
|
||||||
|
* `multi-node/` : Compose and configuration files for Wazuh deployment with 1 container of Wazuh dashboardm 2 containers of Wazuh manager (1 master and 1 worker) and 3 containers of Wazuh indexer.
|
||||||
|
* `wazuh-agent/` : Compose and configuration files for Wazuh agent deployment.
|
||||||
|
|
||||||
# Set up editor/debugger.
|
|
@@ -1 +0,0 @@
|
|||||||
# Introduction.
|
|
@@ -1 +0,0 @@
|
|||||||
# Compatibility.
|
|
@@ -1 +1,45 @@
|
|||||||
# Description.
|
# Reference Manual - Description
|
||||||
|
|
||||||
|
This section provides a detailed description of Wazuh-docker (version 4.12.0), its components, and its architecture when deployed using Docker containers. Understanding these aspects is key to effectively deploying and managing your Wazuh environment.
|
||||||
|
|
||||||
|
## What is Wazuh?
|
||||||
|
|
||||||
|
Wazuh is a free, open-source, and enterprise-ready security monitoring solution for threat detection, integrity monitoring, incident response, and compliance. It consists of several key components that work together to provide comprehensive security visibility.
|
||||||
|
|
||||||
|
## What is Wazuh-docker?
|
||||||
|
|
||||||
|
Wazuh-docker is a project that provides Docker images and `docker compose` configurations to simplify the deployment and management of the Wazuh platform. By containerizing Wazuh components, Wazuh-docker offers:
|
||||||
|
|
||||||
|
- **Rapid Deployment**: Quickly set up a full Wazuh environment.
|
||||||
|
- **Consistency**: Ensures that Wazuh runs the same way across different environments.
|
||||||
|
- **Scalability**: Easier to scale components as needed (especially with orchestrators like Kubernetes, though this documentation primarily focuses on Docker Compose).
|
||||||
|
- **Isolation**: Components run in isolated containers, reducing conflicts.
|
||||||
|
- **Portability**: Run Wazuh on Linux system that supports Docker.
|
||||||
|
|
||||||
|
## Core Components in Wazuh-Docker
|
||||||
|
|
||||||
|
The Wazuh-Docker project typically provides images for the following core Wazuh components, adapted for version 4.12.0:
|
||||||
|
|
||||||
|
1. **Wazuh Manager**:
|
||||||
|
- The central component that collects and analyzes data from deployed Wazuh agents.
|
||||||
|
- It performs log analysis, file integrity checking, rootkit detection, real-time alerting, and active response.
|
||||||
|
- In a Docker deployment, the Wazuh manager runs in its own container. It exposes ports for agent communication and API access.
|
||||||
|
|
||||||
|
2. **Wazuh Indexer**:
|
||||||
|
- A highly scalable, full-text search and analytics engine.
|
||||||
|
- Based on OpenSearch (or historically Elasticsearch), it stores and indexes alerts and monitoring data generated by the Wazuh manager.
|
||||||
|
- The Wazuh indexer container provides the data persistence layer for Wazuh alerts and events. For version 4.12.0, this is typically an OpenSearch-based component.
|
||||||
|
|
||||||
|
3. **Wazuh Dashboard**:
|
||||||
|
- A flexible visualization tool based on OpenSearch Dashboards (or historically Kibana).
|
||||||
|
- It provides a web interface for querying, visualizing, and analyzing Wazuh data stored in the Wazuh indexer.
|
||||||
|
- Users can explore security events, manage agent configurations (via the Wazuh plugin), and generate reports.
|
||||||
|
|
||||||
|
## Key Features of Wazuh-Docker Deployments
|
||||||
|
|
||||||
|
- **Docker Compose**: Most deployments are orchestrated using `docker-compose.yml` files, which define the services, networks, volumes, and configurations for the Wazuh stack.
|
||||||
|
- **Persistent Data**: Docker volumes are used to persist critical data, such as Wazuh manager configurations, agent keys, Wazuh indexer data, and Wazuh dashboard settings, even if containers are stopped or recreated.
|
||||||
|
- **Networking**: Docker networks are configured to allow communication between the Wazuh components.
|
||||||
|
- **Environment Variables**: Configuration of containers is often managed through environment variables passed at runtime.
|
||||||
|
|
||||||
|
Understanding this architecture and the role of each component is fundamental for successful deployment, troubleshooting, and scaling of your Wazuh environment using Wazuh-Docker.
|
||||||
|
47
docs/ref/Introduction/introduction.md
Normal file
47
docs/ref/Introduction/introduction.md
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
# Reference Manual - Introduction
|
||||||
|
|
||||||
|
Welcome to the Reference Manual for Wazuh-Docker, version 4.12.0. This manual provides comprehensive information about deploying, configuring, and managing your Wazuh environment using Docker.
|
||||||
|
|
||||||
|
## Purpose of This Manual
|
||||||
|
|
||||||
|
This Reference Manual is designed to be your go-to resource for understanding the intricacies of Wazuh-Docker. It aims to cover:
|
||||||
|
|
||||||
|
- The core concepts and architecture of Wazuh when deployed with Docker.
|
||||||
|
- Step-by-step guidance for getting started, from requirements to various deployment scenarios.
|
||||||
|
- Detailed explanations of configuration options, including environment variables and persistent data management.
|
||||||
|
- Procedures for common operational tasks like upgrading your deployment.
|
||||||
|
- A glossary of terms to help you understand Wazuh and Docker-specific terminology.
|
||||||
|
|
||||||
|
## Who Should Use This Manual?
|
||||||
|
|
||||||
|
This manual is intended for:
|
||||||
|
|
||||||
|
- **System Administrators** responsible for deploying and maintaining Wazuh.
|
||||||
|
- **Security Analysts** who use Wazuh and need to understand its Dockerized deployment.
|
||||||
|
- **DevOps Engineers** integrating Wazuh into their CI/CD pipelines or containerized infrastructure.
|
||||||
|
- Anyone seeking detailed technical information about Wazuh-Docker.
|
||||||
|
|
||||||
|
## How This Manual is Organized
|
||||||
|
|
||||||
|
This manual is structured to help you find information efficiently:
|
||||||
|
|
||||||
|
- **[Description](description.md)**: Provides a detailed overview of Wazuh-Docker, its components, and how they work together in a containerized setup.
|
||||||
|
- **[Getting Started](getting-started/getting-started.md)**: Guides you through the initial setup, from prerequisites to deploying your first Wazuh stack.
|
||||||
|
- **[Requirements](getting-started/requirements.md)**: Lists the necessary hardware and software.
|
||||||
|
- **[Deployment](getting-started/deployment/README.md)**: Offers instructions for different deployment models:
|
||||||
|
- [Single Node Wazuh Stack](getting-started/deployment/single-node.md)
|
||||||
|
- [Multi Node Wazuh Stack](getting-started/deployment/multi-node.md)
|
||||||
|
- [Wazuh Agent](getting-started/deployment/wazuh-agent.md)
|
||||||
|
- **[Configuration](configuration/configuration.md)**: Explains how to customize your Wazuh-Docker deployment.
|
||||||
|
- [Environment Variables](configuration/environment-variables.md)
|
||||||
|
- [Configuration Files](configuration/configuration-files.md)
|
||||||
|
- **[Upgrade](upgrade.md)**: Provides instructions for upgrading your Wazuh-Docker deployment to a newer version.
|
||||||
|
- **[Glossary](glossary.md)**: Defines key terms and concepts.
|
||||||
|
|
||||||
|
## Using This Manual
|
||||||
|
|
||||||
|
- If you are new to Wazuh-docker, we recommend starting with the [Description](description.md) and then proceeding to the [Getting Started](getting-started/getting-started.md) section.
|
||||||
|
- If you need to customize your deployment, refer to the [Configuration](configuration/configuration.md) section.
|
||||||
|
- For specific terms or concepts, consult the [Glossary](glossary.md).
|
||||||
|
|
||||||
|
This manual refers to version 4.12.0 of Wazuh-Docker. Ensure you are using the documentation that corresponds to your deployed version.
|
@@ -1,7 +0,0 @@
|
|||||||
# Introduction
|
|
||||||
|
|
||||||
## Description
|
|
||||||
|
|
||||||
## Architecture
|
|
||||||
|
|
||||||
## Compatibility
|
|
@@ -1 +0,0 @@
|
|||||||
# Configuration
|
|
@@ -1 +1,32 @@
|
|||||||
# Configuration files
|
# Configuration files
|
||||||
|
|
||||||
|
### 1. Wazuh Manager Configuration
|
||||||
|
|
||||||
|
* **`ossec.conf`**: The main configuration file for the Wazuh manager. It controls rules, decoders, agent enrollment, active responses, integrations, clustering, and more.
|
||||||
|
* **Customization**: Mount a custom `ossec.conf` or specific configuration snippets (e.g., local rules in `local_rules.xml`) into the manager container at `/wazuh-mount-point/`, which will be copied to the path `/var/ossec` (e.g., the file `/var/ossec/etc/ossec.conf` must be mounted at `/wazuh-mount-point/etc/ossec.conf`) .
|
||||||
|
|
||||||
|
### 2. Wazuh Indexer Configuration
|
||||||
|
|
||||||
|
* **`opensearch.yml`**: The primary configuration file for OpenSearch. Controls cluster settings, network binding, path settings, discovery, memory allocation, etc.
|
||||||
|
* **Customization**: Mount a custom `opensearch.yml` into the indexer container(s) at `/usr/share/wazuh-indexer/config/opensearch.yml`.
|
||||||
|
* **JVM Settings (`jvm.options`)**: Manages Java Virtual Machine settings, especially heap size (`-Xms`, `-Xmx`). Critical for performance and stability.
|
||||||
|
* **Customization**: Mount a custom `jvm.options` file or set `OPENSEARCH_JAVA_OPTS` environment variable.
|
||||||
|
|
||||||
|
### 3. Wazuh Dashboard (OpenSearch Dashboards) Configuration
|
||||||
|
|
||||||
|
* **`opensearch_dashboards.yml`**: The main configuration file for OpenSearch Dashboards. Controls server host/port, OpenSearch connection URL, SSL settings, and Wazuh plugin settings.
|
||||||
|
* **Customization**: Mount a custom `opensearch_dashboards.yml` into the dashboard container at `/usr/share/wazuh-dashboard/config/opensearch_dashboards.yml` and custom `wazuh.yml` into the dashboard container at `/usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml` .
|
||||||
|
* **Wazuh Plugin Settings**: The Wazuh plugin for the dashboard has its own configuration, often within `opensearch_dashboards.yml` or managed through environment variables, specifying the Wazuh API URL and credentials.
|
||||||
|
|
||||||
|
## Applying Configuration Changes
|
||||||
|
|
||||||
|
1. **Modify `docker-compose.yml`**:
|
||||||
|
* For changes to environment variables, port mappings, or volume mounts.
|
||||||
|
* After changes, you typically need to stop and restart the containers:
|
||||||
|
```bash
|
||||||
|
docker compose down
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
Consult the official Wazuh documentation for version 4.12.2 for detailed information on all possible configuration parameters for each component.
|
28
docs/ref/configuration/configuration.md
Normal file
28
docs/ref/configuration/configuration.md
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# Reference Manual - Configuration
|
||||||
|
|
||||||
|
This section details how to configure your Wazuh-Docker deployment (version 4.12.0). Proper configuration is key to tailoring the Wazuh stack to your specific needs, managing data persistence, and integrating with your environment.
|
||||||
|
|
||||||
|
## Overview of Configuration Methods
|
||||||
|
|
||||||
|
Configuring Wazuh components within a Docker environment typically involves several methods:
|
||||||
|
|
||||||
|
1. **[Environment Variables](environment-variables.md)**:
|
||||||
|
* Many container settings are controlled by passing environment variables at runtime (e.g., via the `docker-compose.yml` file or `docker run` commands).
|
||||||
|
* These are often used for setting up initial passwords, component versions, cluster names, or basic operational parameters.
|
||||||
|
|
||||||
|
2. **[Configuration Files](configuration-files.md)**:
|
||||||
|
* Core Wazuh components (manager, indexer, dashboard) rely on their traditional configuration files (e.g., `ossec.conf`, `opensearch.yml`, `opensearch_dashboards.yml`).
|
||||||
|
* To customize these, you typically mount your custom configuration files into the containers, replacing or supplementing the defaults. This is managed using Docker volumes in your `docker-compose.yml`.
|
||||||
|
|
||||||
|
3. **Docker Compose File (`docker-compose.yml`)**:
|
||||||
|
* The `docker-compose.yml` file itself is a primary configuration tool. It defines:
|
||||||
|
* Which services (containers) to run.
|
||||||
|
* The Docker images to use.
|
||||||
|
* Port mappings.
|
||||||
|
* Volume mounts for persistent data and custom configurations.
|
||||||
|
* Network configurations.
|
||||||
|
* Resource limits (CPU, memory).
|
||||||
|
* Dependencies between services.
|
||||||
|
|
||||||
|
4. **Persistent Data Volumes**:
|
||||||
|
* Configuration related to data storage (e.g., paths for Wazuh Indexer data, Wazuh manager logs and agent keys) is managed through Docker volumes. Persisting these volumes ensures your data and critical configurations survive container restarts or recreations.
|
@@ -1 +1 @@
|
|||||||
# Environment Variables
|
# Environment Variabless
|
||||||
|
@@ -1 +0,0 @@
|
|||||||
# Getting Started
|
|
46
docs/ref/getting-started/deployment/deployment.md
Normal file
46
docs/ref/getting-started/deployment/deployment.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
# Reference Manual - Deployment
|
||||||
|
|
||||||
|
This section provides detailed instructions for deploying Wazuh-Docker (version 4.12.0) in various configurations. Choose the deployment model that best suits your needs, from simple single-node setups for testing to more robust multi-node configurations for production environments.
|
||||||
|
|
||||||
|
## Overview of Deployment Options
|
||||||
|
|
||||||
|
Wazuh-Docker offers flexibility in how you can deploy the Wazuh stack. The primary methods covered in this documentation are:
|
||||||
|
|
||||||
|
1. **[Single Node Wazuh Stack](single-node.md)**:
|
||||||
|
* **Description**: Deploys all core Wazuh components (Wazuh manager, Wazuh indexer, Wazuh dashboard) as Docker containers on a single host machine.
|
||||||
|
* **Use Cases**: Ideal for development, testing, demonstrations, proof-of-concepts, and small-scale production environments where simplicity is prioritized and high availability is not a critical concern.
|
||||||
|
* **Pros**: Easiest and quickest to set up.
|
||||||
|
* **Cons**: Single point of failure; limited scalability compared to multi-node.
|
||||||
|
|
||||||
|
2. **[Multi Node Wazuh Stack](multi-node.md)**:
|
||||||
|
* **Description**: This typically refers to deploying a Wazuh Indexer cluster and potentially multiple Wazuh managers for improved scalability and resilience. While true multi-host orchestration often uses tools like Kubernetes, this section may cover configurations achievable with Docker Compose, possibly across multiple Docker hosts or with clustered services on a single powerful host.
|
||||||
|
* **Use Cases**: Production environments requiring higher availability, data redundancy (for Wazuh Indexer), and the ability to handle a larger number of agents.
|
||||||
|
* **Pros**: Improved fault tolerance (for clustered components like the Indexer), better performance distribution.
|
||||||
|
* **Cons**: More complex to set up and manage than a single-node deployment.
|
||||||
|
|
||||||
|
## Before You Begin Deployment
|
||||||
|
|
||||||
|
Ensure you have:
|
||||||
|
|
||||||
|
- Met all the [System Requirements](ref/getting-started/requirements.md).
|
||||||
|
- Installed Docker and Docker Compose on your host(s).
|
||||||
|
- Cloned the `wazuh-docker` repository (version `4.12.2`) or downloaded the necessary deployment files.
|
||||||
|
```bash
|
||||||
|
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
|
||||||
|
cd wazuh-docker
|
||||||
|
git checkout v4.12.2
|
||||||
|
```
|
||||||
|
- Made a backup of any existing Wazuh data if you are migrating or upgrading.
|
||||||
|
|
||||||
|
## Choosing the Right Deployment
|
||||||
|
|
||||||
|
Consider the following factors when choosing a deployment model:
|
||||||
|
|
||||||
|
- **Scale**: How many agents do you plan to connect?
|
||||||
|
- **Availability**: What are your uptime requirements?
|
||||||
|
- **Resources**: What hardware resources (CPU, RAM, disk) are available?
|
||||||
|
- **Complexity**: What is your team's familiarity with Docker and distributed systems?
|
||||||
|
|
||||||
|
For most new users, starting with the [Single Node Wazuh Stack](single-node.md) is recommended to familiarize themselves with Wazuh-Docker. You can then explore more complex setups as your needs grow.
|
||||||
|
|
||||||
|
Navigate to the specific deployment guide linked above for detailed, step-by-step instructions.
|
@@ -31,4 +31,4 @@ This deployment utilizes the `multi-node/docker-compose.yml` file, which defines
|
|||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
```
|
```
|
||||||
|
|
||||||
Please allow some time for the environment to initialize, especially on the first run. A multi-node setup can take a few minutes (depending on your host resources and network) as the Wazuh Indexer cluster forms, and the necessary indexes and index patterns are generated.
|
Please allow some time for the environment to initialize, especially on the first run. A multi-node setup can take a few minutes (depending on your host resources and network) as the Wazuh Indexer cluster forms, and the necessary indexes and index patterns are generated.
|
||||||
|
58
docs/ref/getting-started/getting-started.md
Normal file
58
docs/ref/getting-started/getting-started.md
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# Reference Manual - Getting Started
|
||||||
|
|
||||||
|
This section guides you through the initial steps to get your Wazuh-docker (version 4.12.0) environment up and running. We will cover the prerequisites and point you to the deployment instructions.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Getting started with Wazuh-Docker involves the following general steps:
|
||||||
|
|
||||||
|
1. **Understanding Requirements**: Ensuring your system meets the necessary hardware and software prerequisites.
|
||||||
|
2. **Choosing a Deployment Type**: Deciding whether a single-node or multi-node deployment is suitable for your needs.
|
||||||
|
3. **Setting up Docker**: Installing Docker and Docker Compose if you haven't already.
|
||||||
|
4. **Obtaining Wazuh-Docker Files**: Cloning the `wazuh-docker` repository or downloading the necessary `docker-compose.yml` and configuration files.
|
||||||
|
5. **Deploying the Stack**: Running `docker compose up` to launch the Wazuh components.
|
||||||
|
6. **Initial Configuration & Verification**: Performing any initial setup steps and verifying that all components are working correctly.
|
||||||
|
7. **Deploying Wazuh Agents**: Installing and configuring Wazuh agents on the endpoints you want to monitor and connecting them to your Wazuh manager.
|
||||||
|
|
||||||
|
## Before You Begin
|
||||||
|
|
||||||
|
Before diving into the deployment, please ensure you have reviewed:
|
||||||
|
|
||||||
|
- The [Description](ref/Introduction/description.md) of Wazuh-docker to understand the components and architecture.
|
||||||
|
- The [Requirements](ref/getting-started/requirements.md) to confirm your environment is suitable.
|
||||||
|
|
||||||
|
## Steps to Get Started
|
||||||
|
|
||||||
|
1. **Meet the [Requirements](requirements.md)**:
|
||||||
|
Verify that your host system has sufficient RAM, CPU, and disk space. Ensure Docker and Docker Compose are installed and functioning correctly.
|
||||||
|
|
||||||
|
2. **Obtain Wazuh-docker Configuration**:
|
||||||
|
You'll need the Docker Compose files and any associated configuration files from the `wazuh-docker` repository for version 4.12.0.
|
||||||
|
```bash
|
||||||
|
git clone [https://github.com/wazuh/wazuh-docker.git](https://github.com/wazuh/wazuh-docker.git)
|
||||||
|
cd wazuh-docker
|
||||||
|
git checkout 4.12.0
|
||||||
|
# Navigate to the specific docker-compose directory, e.g., single-node or multi-node
|
||||||
|
# cd docker-compose/single-node/ (example path)
|
||||||
|
```
|
||||||
|
Alternatively, you might download specific `docker-compose.yml` files if provided as part of a release package.
|
||||||
|
|
||||||
|
3. **Choose Your [Deployment Strategy](deployment/deployment.md)**:
|
||||||
|
Wazuh-docker supports different deployment models. Select the one that best fits your use case:
|
||||||
|
* **[Single Node Wazuh Stack](deployment/single-node.md)**: Ideal for testing, small environments, or proof-of-concept deployments. All main components (Wazuh manager, Wazuh indexer, Wazuh dashboard) run on a single Docker host.
|
||||||
|
* **[Multi Node Wazuh Stack](deployment/multi-node.md)**: Suitable for production environments requiring high availability and scalability. Components might be distributed across multiple hosts or configured in a clustered mode. (Note: True multi-host orchestration often involves Kubernetes, but multi-node within Docker Compose typically refers to clustered Wazuh Indexer/Manager setups on one or more Docker hosts managed carefully).
|
||||||
|
* **[Wazuh Agent Deployment](deployment/wazuh-agent.md)**: Instructions for deploying Wazuh agents on your endpoints and connecting them to the Wazuh manager running in Docker.
|
||||||
|
|
||||||
|
4. **Follow Deployment Instructions**:
|
||||||
|
Once you've chosen a deployment strategy, follow the detailed instructions provided in the respective sections linked above. This will typically involve:
|
||||||
|
* Configuring environment variables (if necessary).
|
||||||
|
* Initializing persistent volumes.
|
||||||
|
* Starting the services.
|
||||||
|
|
||||||
|
5. **Post-Deployment**:
|
||||||
|
After the stack is running:
|
||||||
|
* Access the Wazuh Dashboard via your web browser.
|
||||||
|
* Verify that all services are healthy.
|
||||||
|
* Begin enrolling Wazuh agents.
|
||||||
|
|
||||||
|
This Getting Started guide provides a high-level overview. For detailed, step-by-step instructions, please refer to the specific pages linked within this section.
|
@@ -1 +1,73 @@
|
|||||||
# Requirements
|
# Reference Manual - Requirements
|
||||||
|
|
||||||
|
Before deploying Wazuh-Docker (version 4.12.0), it's essential to ensure your environment meets the necessary hardware and software requirements. Meeting these prerequisites will help ensure a stable and performant Wazuh deployment.
|
||||||
|
|
||||||
|
## Host System Requirements
|
||||||
|
|
||||||
|
These are general recommendations. Actual needs may vary based on the number of agents, data volume, and usage patterns.
|
||||||
|
|
||||||
|
### Hardware:
|
||||||
|
|
||||||
|
* **CPU**:
|
||||||
|
* **Minimum**: 2 CPU cores.
|
||||||
|
* **Recommended**: 4 CPU cores or more, especially for production environments or deployments with a significant number of agents.
|
||||||
|
* **RAM**:
|
||||||
|
* **Minimum (Single-Node Test/Small Environment)**: 4 GB RAM. This is a tight minimum; 6 GB is safer.
|
||||||
|
* Wazuh Indexer (OpenSearch): Typically requires at least 1 GB RAM allocated to its JVM heap.
|
||||||
|
* Wazuh Manager: Resource usage depends on the number of agents.
|
||||||
|
* Wazuh Dashboard (OpenSearch Dashboards): Also consumes memory.
|
||||||
|
* **Recommended (Production/Multiple Agents)**: 8 GB RAM or more.
|
||||||
|
* **Disk Space**:
|
||||||
|
* **Minimum**: 50 GB of free disk space.
|
||||||
|
* **Recommended**: 100 GB or more, particularly for the Wazuh Indexer data. Disk space requirements will grow over time as more data is collected and indexed.
|
||||||
|
* **Disk Type**: SSDs (Solid State Drives) are highly recommended for the Wazuh Indexer data volumes for optimal performance.
|
||||||
|
* **Network**:
|
||||||
|
* A stable network connection with sufficient bandwidth, especially if agents are reporting from remote locations.
|
||||||
|
|
||||||
|
### Software:
|
||||||
|
|
||||||
|
* **Operating System**:
|
||||||
|
* A 64-bit Linux distribution is preferred (e.g., Ubuntu, CentOS, RHEL, Debian).
|
||||||
|
* **Docker Engine**:
|
||||||
|
* Version `20.10.0` or newer.
|
||||||
|
* Install Docker by following the official instructions: [Install Docker Engine](https://docs.docker.com/engine/install/).
|
||||||
|
* **Git Client**:
|
||||||
|
* Required for cloning the `wazuh-docker` repository.
|
||||||
|
* **Web Browser**:
|
||||||
|
* A modern web browser (e.g., Chrome, Firefox, Edge, Safari) for accessing the Wazuh Dashboard.
|
||||||
|
* **`vm.max_map_count` (Linux Hosts for Wazuh Indexer/OpenSearch)**:
|
||||||
|
* The Wazuh Indexer (OpenSearch) requires a higher `vm.max_map_count` setting than the default on most Linux systems.
|
||||||
|
* Set it permanently:
|
||||||
|
1. Edit `/etc/sysctl.conf` and add/modify the line:
|
||||||
|
```
|
||||||
|
vm.max_map_count=262144
|
||||||
|
```
|
||||||
|
2. Apply the change without rebooting:
|
||||||
|
```bash
|
||||||
|
sudo sysctl -p
|
||||||
|
```
|
||||||
|
* This is crucial for the stability of the Wazuh Indexer.
|
||||||
|
|
||||||
|
## Network Ports
|
||||||
|
|
||||||
|
Ensure that the necessary network ports are open and available on the Docker host and any firewalls:
|
||||||
|
|
||||||
|
* **Wazuh Manager**:
|
||||||
|
* `1514/UDP`: For agent communication (syslog).
|
||||||
|
* `1514/TCP`: For agent communication (if using TCP).
|
||||||
|
* `1515/TCP`: For agent enrollment.
|
||||||
|
* `55000/TCP`: For Wazuh API (default).
|
||||||
|
* **Wazuh Indexer**:
|
||||||
|
* `9200/TCP`: For HTTP REST API.
|
||||||
|
* `9300/TCP`: For inter-node communication (if clustered).
|
||||||
|
* **Wazuh Dashboard**:
|
||||||
|
* `5601/TCP` (or `443/TCP` if HTTPS is configured via a reverse proxy): For web access.
|
||||||
|
|
||||||
|
Port mappings in `docker-compose.yml` will expose these container ports on the host. Adjust host ports if defaults cause conflicts.
|
||||||
|
|
||||||
|
## Important Considerations
|
||||||
|
|
||||||
|
* **Production Environments**: For production, it's highly recommended to follow best practices for securing Docker and your host system. Consider using a multi-node setup for resilience.
|
||||||
|
* **Resource Allocation**: Monitor resource usage after deployment and adjust allocations (CPU, RAM for Docker, JVM heap for Wazuh Indexer) as necessary.
|
||||||
|
|
||||||
|
Meeting these requirements will pave the way for a smoother deployment and a more stable Wazuh-Docker experience.
|
||||||
|
@@ -1 +1,89 @@
|
|||||||
# Glossary
|
# Reference Manual - Glossary
|
||||||
|
|
||||||
|
This glossary defines key terms and concepts related to Wazuh, Docker, and their use together in the Wazuh-Docker project (version 4.12.0).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**A**
|
||||||
|
|
||||||
|
- **Active Response**: A Wazuh capability that allows automatic actions to be taken on an agent or manager in response to specific triggers or alerts (e.g., blocking an IP address, stopping a process).
|
||||||
|
- **Agent (Wazuh Agent)**: Software installed on monitored endpoints (servers, workstations, cloud instances) that collects security data (logs, file integrity, configuration assessments, etc.) and forwards it to the Wazuh Manager.
|
||||||
|
- **Alert**: A notification generated by the Wazuh Manager when an event or a series of events matches a predefined rule, indicating a potential security issue, misconfiguration, or policy violation.
|
||||||
|
- **API (Wazuh API)**: An application programming interface provided by the Wazuh Manager that allows for programmatic interaction with the Wazuh system, such as managing agents, retrieving alerts, updating rulesets, and checking system health.
|
||||||
|
|
||||||
|
**C**
|
||||||
|
|
||||||
|
- **CDB List (Constant DataBase List)**: Key-value pair files used by Wazuh rules for fast lookups. Useful for whitelisting, blacklisting, or correlating events with known indicators.
|
||||||
|
- **Cluster**:
|
||||||
|
- **Wazuh Indexer Cluster (OpenSearch/Elasticsearch Cluster)**: A group of interconnected Wazuh Indexer nodes that work together to store, index, and search data, providing scalability and high availability.
|
||||||
|
- **Wazuh Manager Cluster**: A group of Wazuh managers working together to provide load balancing and high availability for agent connections and event processing.
|
||||||
|
- **Container (Docker Container)**: A lightweight, standalone, executable package of software that includes everything needed to run it: code, runtime, system tools, system libraries, and settings. Wazuh-Docker runs each Wazuh component (manager, indexer, dashboard) in its own container.
|
||||||
|
- **Containerization**: The process of packaging an application and its dependencies into a container.
|
||||||
|
|
||||||
|
**D**
|
||||||
|
|
||||||
|
- **Dashboard (Wazuh Dashboard / OpenSearch Dashboards / Kibana)**: A web-based visualization tool used to explore, analyze, and visualize data stored in the Wazuh Indexer. It provides dashboards, visualizations, and a query interface for security events and alerts. For Wazuh 4.12.0, this is typically OpenSearch Dashboards.
|
||||||
|
- **Decoder**: A component in the Wazuh Manager that parses and extracts relevant information (fields) from raw log messages or event data.
|
||||||
|
- **Docker**: An open platform for developing, shipping, and running applications inside containers.
|
||||||
|
- **Docker Compose**: A tool for defining and running multi-container Docker applications. It uses a YAML file (`docker-compose.yml`) to configure the application's services, networks, and volumes.
|
||||||
|
- **Dockerfile**: A text document that contains all the commands a user could call on the command line to assemble an image. Docker can build images automatically by reading the instructions from a Dockerfile.
|
||||||
|
- **Docker Hub**: A cloud-based registry service that allows you to link to code repositories, build your images and test them, stores manually pushed images, and links to Docker Cloud so you can deploy images to your hosts. Wazuh Docker images are often hosted here.
|
||||||
|
- **Docker Image**: A read-only template with instructions for creating a Docker container. Images are used to instantiate containers.
|
||||||
|
- **Docker Volume**: A mechanism for persisting data generated by and used by Docker containers. Volumes are managed by Docker and are stored on the host filesystem, separate from the container's lifecycle. Essential for storing Wazuh data, configurations, and logs.
|
||||||
|
|
||||||
|
**E**
|
||||||
|
|
||||||
|
- **Endpoint**: Any device (server, desktop, laptop, virtual machine, cloud instance) that is monitored by a Wazuh agent.
|
||||||
|
- **Environment Variable**: A variable whose value is set outside the program, typically by the operating system or a container runtime, and can be accessed by the program to modify its behavior. Used extensively in Wazuh-Docker for configuration.
|
||||||
|
|
||||||
|
**F**
|
||||||
|
|
||||||
|
- **File Integrity Monitoring (FIM)**: A Wazuh capability that monitors files and directories for changes, additions, or deletions, helping to detect unauthorized modifications.
|
||||||
|
|
||||||
|
**I**
|
||||||
|
|
||||||
|
- **Indexer (Wazuh Indexer / OpenSearch / Elasticsearch)**: The component responsible for storing, indexing, and making searchable the alerts and event data generated by the Wazuh Manager. For Wazuh 4.12.0, this is typically OpenSearch.
|
||||||
|
|
||||||
|
**L**
|
||||||
|
|
||||||
|
- **Log Analysis**: A core function of the Wazuh Manager, involving the collection, normalization, parsing, and analysis of log data from various sources.
|
||||||
|
|
||||||
|
**M**
|
||||||
|
|
||||||
|
- **Manager (Wazuh Manager)**: The central component of the Wazuh platform. It collects data from agents, analyzes it using rules and decoders, generates alerts, and manages agents.
|
||||||
|
|
||||||
|
**N**
|
||||||
|
|
||||||
|
- **Node**:
|
||||||
|
- **Wazuh Indexer Node**: A single instance of a Wazuh Indexer (OpenSearch/Elasticsearch) process, typically running in a container. Multiple nodes can form a cluster.
|
||||||
|
- **Wazuh Manager Node**: A single instance of a Wazuh manager, which can operate standalone or as part of a manager cluster.
|
||||||
|
|
||||||
|
**O**
|
||||||
|
|
||||||
|
- **`ossec.conf`**: The main configuration file for the Wazuh Manager and Wazuh Agent.
|
||||||
|
|
||||||
|
**R**
|
||||||
|
|
||||||
|
- **Rule**: A set of conditions defined in the Wazuh Manager that, when met by an event or a sequence of events, trigger an alert.
|
||||||
|
- **Ruleset**: The collection of all rules and decoders used by the Wazuh Manager.
|
||||||
|
|
||||||
|
**S**
|
||||||
|
|
||||||
|
- **Scalability**: The ability of the system to handle a growing amount of work by adding resources. In Wazuh-Docker, this can refer to scaling the number of agents, or the capacity of the indexer/manager cluster.
|
||||||
|
- **Security Information and Event Management (SIEM)**: A field of computer security that combines security information management (SIM) and security event management (SEM) to provide real-time analysis of security alerts generated by applications and network hardware. Wazuh is a SIEM solution.
|
||||||
|
- **Service (Docker Compose Service)**: A definition of a container within a `docker-compose.yml` file, including its image, ports, volumes, environment variables, etc.
|
||||||
|
|
||||||
|
**V**
|
||||||
|
|
||||||
|
- **Volume (Docker Volume)**: See Docker Volume.
|
||||||
|
|
||||||
|
**W**
|
||||||
|
|
||||||
|
- **Wazuh**: An open-source security platform that provides threat prevention, detection, and response.
|
||||||
|
- **Wazuh API**: See API.
|
||||||
|
- **Wazuh Dashboard**: See Dashboard.
|
||||||
|
- **Wazuh Indexer**: See Indexer.
|
||||||
|
- **Wazuh Manager**: See Manager.
|
||||||
|
|
||||||
|
---
|
||||||
|
This glossary provides a starting point. For more detailed definitions or terms not listed here, please refer to the official Wazuh and Docker documentation.
|
||||||
|
@@ -1,11 +1 @@
|
|||||||
# Upgrade Process
|
# Upgrade
|
||||||
|
|
||||||
The upgrade process for Wazuh using Docker can vary depending on the version you are currently using. Each version may introduce specific changes or requirements that must be considered before proceeding with the upgrade.
|
|
||||||
|
|
||||||
To ensure a smooth and successful upgrade, we recommend following the official Wazuh documentation, which provides detailed instructions tailored to different upgrade paths.
|
|
||||||
|
|
||||||
You can find the most up-to-date upgrade guide at the following link:
|
|
||||||
|
|
||||||
[Upgrading Wazuh Docker](https://documentation.wazuh.com/current/deployment-options/docker/upgrading-wazuh-docker.html)
|
|
||||||
|
|
||||||
Please review the guide carefully and make sure to follow the steps applicable to your current setup and Wazuh version.
|
|
||||||
|
Reference in New Issue
Block a user