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

> Пошаговая установка Wazuh Indexer 4.14 в распределенной конфигурации - генерация сертификатов, настройка кластера OpenSearch, JVM и проверка

Source: https://opennix.org/docs/wazuh/installation/wazuh-indexer-installation/


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

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

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

| Параметр | Минимум | Рекомендация |
|---|---|---|
| CPU | 2 ядра | 8 ядер |
| RAM | 4 ГБ | 16 ГБ |
| Диск | 50 ГБ | Зависит от объема данных |

Полная таблица требований приведена в [обзоре установки](/docs/wazuh/installation/).

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

- 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-сертификаты для шифрования коммуникации между всеми компонентами. Сертификаты генерируются один раз и распределяются по всем узлам.

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

```bash
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-адреса всех узлов платформы:

```yaml
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
bash ./wazuh-certs-tool.sh -A
```

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

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

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

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

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

### Ubuntu / Debian

```bash
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)

```bash
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)

```bash
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

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

### CentOS / RHEL

```bash
yum -y install wazuh-indexer
```

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

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

```yaml
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"
```

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

```yaml
discovery.type: single-node
```

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

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

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

```bash
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`.

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

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

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

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

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

```bash
/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

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

```bash
systemctl restart wazuh-indexer
```

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

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

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

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

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

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

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

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

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

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

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

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

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

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

```bash
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:**

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

**CentOS / RHEL:**

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

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

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

- [Установка Wazuh Server](/docs/wazuh/installation/wazuh-server-installation/) - следующий компонент в порядке установки
- [Установка Wazuh Dashboard](/docs/wazuh/installation/wazuh-dashboard-installation/) - установка веб-интерфейса

