Установка Wazuh Indexer 4.14 - пошаговое руководство

Wazuh Indexer - это компонент платформы, основанный на OpenSearch, который отвечает за хранение, индексацию и поиск данных безопасности. Данное руководство описывает пошаговую установку индексатора в распределенной конфигурации. Для быстрой установки всех компонентов на одном хосте используйте быстрый старт .

Предварительные требования

Аппаратные требования

ПараметрМинимумРекомендация
CPU2 ядра8 ядер
RAM4 ГБ16 ГБ
Диск50 ГБЗависит от объема данных

Полная таблица требований приведена в обзоре установки .

Поддерживаемые ОС

  • Amazon Linux 2, Amazon Linux 2023
  • CentOS Stream 10
  • Red Hat Enterprise Linux 7, 8, 9, 10
  • Ubuntu 16.04, 18.04, 20.04, 22.04, 24.04

Сетевые требования

  • Порт 9200/TCP - REST API (HTTPS)
  • Порт 9300-9400/TCP - межузловая коммуникация кластера
  • Доступ к packages.wazuh.com для загрузки пакетов

Генерация сертификатов

Wazuh использует TLS-сертификаты для шифрования коммуникации между всеми компонентами. Сертификаты генерируются один раз и распределяются по всем узлам.

Загрузка инструментов

curl -sO https://packages.wazuh.com/4.14/wazuh-certs-tool.sh
curl -sO https://packages.wazuh.com/4.14/config.yml

Настройка конфигурации узлов

Отредактируйте файл config.yml, указав IP-адреса всех узлов платформы:

nodes:
  indexer:
    - name: node-1
      ip: "<IP_ИНДЕКСАТОРА_1>"
    - name: node-2
      ip: "<IP_ИНДЕКСАТОРА_2>"
    - name: node-3
      ip: "<IP_ИНДЕКСАТОРА_3>"

  server:
    - name: wazuh-1
      ip: "<IP_СЕРВЕРА>"

  dashboard:
    - name: dashboard
      ip: "<IP_ДАШБОРДА>"

Для одноузловой конфигурации индексатора оставьте только один элемент в секции indexer.

Генерация сертификатов

bash ./wazuh-certs-tool.sh -A

Скрипт создаст директорию wazuh-certificates/ с сертификатами для всех узлов.

Упаковка и распространение

tar -cvf ./wazuh-certificates.tar -C ./wazuh-certificates/ .
rm -rf ./wazuh-certificates

Скопируйте файл wazuh-certificates.tar на все узлы платформы. Этот архив потребуется при установке каждого компонента.

Добавление репозитория

Ubuntu / Debian

apt-get install gnupg apt-transport-https
curl -s https://packages.wazuh.com/key/GPG-KEY-WAZUH | gpg --no-default-keyring \
  --keyring gnupg-ring:/usr/share/keyrings/wazuh.gpg --import && chmod 644 /usr/share/keyrings/wazuh.gpg
echo "deb [signed-by=/usr/share/keyrings/wazuh.gpg] https://packages.wazuh.com/4.x/apt/ stable main" \
  | tee -a /etc/apt/sources.list.d/wazuh.list
apt-get update

CentOS / RHEL 8 и ранее (YUM)

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
echo -e '[wazuh]\ngpgcheck=1\ngpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH\nenabled=1\nname=EL-$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\nprotect=1' \
  | tee /etc/yum.repos.d/wazuh.repo

RHEL 9+ / CentOS Stream 10 (DNF)

rpm --import https://packages.wazuh.com/key/GPG-KEY-WAZUH
echo -e '[wazuh]\ngpgcheck=1\ngpgkey=https://packages.wazuh.com/key/GPG-KEY-WAZUH\nenabled=1\nname=EL-$releasever - Wazuh\nbaseurl=https://packages.wazuh.com/4.x/yum/\npriority=1' \
  | tee /etc/yum.repos.d/wazuh.repo

Установка пакета

Ubuntu / Debian

apt-get install debconf adduser procps
apt-get -y install wazuh-indexer

CentOS / RHEL

yum -y install wazuh-indexer

Настройка opensearch.yml

Отредактируйте файл /etc/wazuh-indexer/opensearch.yml:

network.host: "<IP_ЭТОГО_УЗЛА>"
node.name: "node-1"

cluster.initial_master_nodes:
  - "node-1"
  - "node-2"
  - "node-3"

discovery.seed_hosts:
  - "<IP_ИНДЕКСАТОРА_1>"
  - "<IP_ИНДЕКСАТОРА_2>"
  - "<IP_ИНДЕКСАТОРА_3>"

plugins.security.nodes_dn:
  - "CN=node-1,OU=Wazuh,O=Wazuh,L=California,C=US"
  - "CN=node-2,OU=Wazuh,O=Wazuh,L=California,C=US"
  - "CN=node-3,OU=Wazuh,O=Wazuh,L=California,C=US"

Для одноузловой конфигурации укажите только один узел во всех секциях и добавьте:

discovery.type: single-node

Ключевые параметры

ПараметрОписание
network.hostIP-адрес, на котором индексатор принимает соединения
node.nameУникальное имя узла, должно совпадать с именем в config.yml
cluster.initial_master_nodesСписок узлов для начальной инициализации кластера
discovery.seed_hostsIP-адреса узлов для обнаружения кластера
plugins.security.nodes_dnDN сертификатов узлов для взаимной аутентификации

Развертывание сертификатов

NODE_NAME=node-1

mkdir /etc/wazuh-indexer/certs
tar -xf ./wazuh-certificates.tar -C /etc/wazuh-indexer/certs/ \
  ./$NODE_NAME.pem ./$NODE_NAME-key.pem ./admin.pem ./admin-key.pem ./root-ca.pem

mv -n /etc/wazuh-indexer/certs/$NODE_NAME.pem /etc/wazuh-indexer/certs/indexer.pem
mv -n /etc/wazuh-indexer/certs/$NODE_NAME-key.pem /etc/wazuh-indexer/certs/indexer-key.pem

chmod 500 /etc/wazuh-indexer/certs
chmod 400 /etc/wazuh-indexer/certs/*
chown -R wazuh-indexer:wazuh-indexer /etc/wazuh-indexer/certs

Замените node-1 на имя текущего узла, указанное в config.yml.

Запуск службы

systemctl daemon-reload
systemctl enable wazuh-indexer
systemctl start wazuh-indexer

Повторите шаги установки, настройки и развертывания сертификатов на каждом узле индексатора.

Инициализация кластера безопасности

После запуска всех узлов индексатора выполните инициализацию безопасности на одном из узлов:

/usr/share/wazuh-indexer/bin/indexer-security-init.sh

Эта команда загружает конфигурацию безопасности (роли, пользователи, разрешения) в индексатор. Выполняется только один раз для всего кластера.

Настройка многоузлового кластера

При развертывании кластера из нескольких узлов:

  1. Выполните генерацию сертификатов с указанием всех узлов в config.yml
  2. Установите пакет wazuh-indexer на каждом узле
  3. На каждом узле настройте opensearch.yml с уникальным node.name и network.host
  4. Разверните соответствующие сертификаты на каждом узле
  5. Запустите службу на всех узлах
  6. Выполните indexer-security-init.sh на любом одном узле

Все узлы должны использовать одинаковые значения cluster.initial_master_nodes и discovery.seed_hosts.

Настройка JVM Heap

По умолчанию JVM heap устанавливается в 1 ГБ. Для production-среды рекомендуется увеличить это значение.

Отредактируйте файл /etc/wazuh-indexer/jvm.options:

-Xms4g
-Xmx4g

Рекомендации по настройке:

  • Установите -Xms и -Xmx на одинаковое значение
  • Не выделяйте более 50% доступной RAM
  • Не превышайте 32 ГБ (порог compressed oops в JVM)
  • Для 16 ГБ RAM оптимальное значение - 8 ГБ heap

После изменения перезапустите службу:

systemctl restart wazuh-indexer

Проверка установки

Проверка доступности узла

curl -k -u admin https://<IP_ИНДЕКСАТОРА>:9200

Ожидаемый ответ:

{
  "name" : "node-1",
  "cluster_name" : "wazuh-cluster",
  "cluster_uuid" : "...",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.19.4",
    ...
  }
}

Проверка состояния кластера

curl -k -u admin https://<IP_ИНДЕКСАТОРА>:9200/_cat/nodes?v

В выводе должны отображаться все узлы кластера с их ролями.

Проверка здоровья кластера

curl -k -u admin https://<IP_ИНДЕКСАТОРА>:9200/_cluster/health?pretty

Значение status должно быть green для полностью работоспособного кластера.

Устранение неполадок

Служба не запускается

Проверьте журнал:

journalctl -u wazuh-indexer -xe

Частые причины:

  • Недостаточно RAM для JVM heap - уменьшите значения -Xms/-Xmx
  • Порт 9200 или 9300 занят другим процессом
  • Ошибки в opensearch.yml - проверьте синтаксис YAML

Ошибки сертификатов

  • Убедитесь, что имена файлов сертификатов соответствуют ожидаемым: indexer.pem, indexer-key.pem, root-ca.pem
  • Проверьте права доступа: файлы должны иметь права 400, директория - 500
  • Владелец должен быть wazuh-indexer:wazuh-indexer

Узлы не образуют кластер

  • Проверьте сетевую связность между узлами (порты 9200 и 9300-9400)
  • Убедитесь, что cluster.initial_master_nodes и discovery.seed_hosts содержат одинаковые значения на всех узлах
  • Проверьте, что node.name уникален на каждом узле

Ошибка при инициализации безопасности

  • Убедитесь, что все узлы запущены перед выполнением indexer-security-init.sh
  • Проверьте наличие файлов admin.pem и admin-key.pem в директории сертификатов

Отключение автоматических обновлений

После успешной установки отключите репозиторий для предотвращения непреднамеренных обновлений:

Ubuntu / Debian:

sed -i "s/^deb /#deb /" /etc/apt/sources.list.d/wazuh.list
apt-get update

CentOS / RHEL:

sed -i "s/^enabled=1/enabled=0/" /etc/yum.repos.d/wazuh.repo

Дальнейшие шаги

После установки индексатора переходите к установке сервера:

Last updated on