# Устранение неполадок Wazuh 4.14 - диагностика

> Диагностика типичных проблем Wazuh 4.14 - менеджер не запускается, агенты не подключаются, ошибки индексатора, дашборда и производительности

Source: https://opennix.org/docs/wazuh/operations/wazuh-troubleshooting/


Диагностика проблем Wazuh начинается с определения неисправного компонента и анализа соответствующих журналов. В этом руководстве систематизированы типичные проблемы по компонентам, приведены команды для диагностики и пошаговые инструкции по устранению. Материал охватывает менеджер, агенты, индексатор, дашборд и вопросы производительности.

## Расположение журналов

Для диагностики любой проблемы Wazuh необходимо знать расположение журналов каждого компонента.

| Компонент | Журнал | Описание |
|---|---|---|
| Wazuh Manager | `/var/ossec/logs/ossec.log` | Основной журнал менеджера |
| Wazuh Manager | `/var/ossec/logs/api.log` | Журнал REST API |
| Wazuh Manager | `/var/ossec/logs/cluster.log` | Журнал кластера менеджеров |
| Wazuh Agent | `/var/ossec/logs/ossec.log` (Linux/macOS) | Журнал агента |
| Wazuh Agent | `C:\Program Files (x86)\ossec-agent\ossec.log` (Windows) | Журнал агента Windows |
| Wazuh Indexer | `/var/log/wazuh-indexer/wazuh-indexer.log` | Журнал индексатора |
| Wazuh Indexer | `/var/log/wazuh-indexer/wazuh-indexer_deprecation.log` | Предупреждения об устаревании |
| Wazuh Dashboard | `/var/log/wazuh-dashboard/opensearch_dashboards.log` | Журнал дашборда |
| Filebeat | `/var/log/filebeat/filebeat` | Журнал Filebeat |

## Менеджер не запускается

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

```bash
systemctl status wazuh-manager
journalctl -u wazuh-manager -n 100
```

### Проверка конфигурации

Наиболее частая причина - ошибка в `ossec.conf`:

```bash
/var/ossec/bin/wazuh-control config-test
```

Если команда возвращает ошибку, исправьте указанную строку в `/var/ossec/etc/ossec.conf` и повторите проверку.

### Типичные ошибки конфигурации

**Незакрытый XML-тег:**

```
ERROR: (1226): Error reading XML file '/var/ossec/etc/ossec.conf'
```

Проверьте файл на корректность XML-разметки. Используйте `xmllint` для быстрой проверки:

```bash
xmllint --noout /var/ossec/etc/ossec.conf
```

**Некорректный путь к файлу правил или декодеров:**

```
ERROR: (1202): Missing file '/var/ossec/etc/rules/custom_rule.xml'
```

Убедитесь, что все файлы, указанные в секции `<ruleset>`, существуют.

**Конфликт портов:**

```bash
ss -tlnp | grep -E '1514|1515|55000'
```

Если порты заняты другим процессом, измените настройки в `ossec.conf` или завершите конфликтующий процесс.

### Проблемы с правами доступа

Все файлы в `/var/ossec/` должны принадлежать пользователю `wazuh`:

```bash
chown -R wazuh:wazuh /var/ossec/etc/rules/
chown -R wazuh:wazuh /var/ossec/etc/decoders/
systemctl restart wazuh-manager
```

## Агенты не подключаются

Проблемы с подключением агентов - наиболее частая категория обращений. Диагностику следует проводить последовательно.

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

С хоста агента проверьте доступность портов менеджера:

```bash
# Порт регистрации
nc -zv MANAGER_IP 1515

# Порт обмена данными
nc -zv MANAGER_IP 1514
```

Если порты недоступны, проверьте правила файрвола на менеджере:

```bash
# iptables
iptables -L -n | grep -E '1514|1515'

# firewalld
firewall-cmd --list-ports
```

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

На менеджере проверьте, зарегистрирован ли агент:

```bash
/var/ossec/bin/manage_agents -l
```

Или через API:

```bash
TOKEN=$(curl -sk -u wazuh-wui:<PASSWORD> \
  -X POST "https://localhost:55000/security/user/authenticate?raw=true")

curl -sk -H "Authorization: Bearer $TOKEN" \
  "https://localhost:55000/agents?name=AGENT_NAME" \
  | jq '.data.affected_items[]'
```

### Несовпадение ключей

Если агент зарегистрирован, но не подключается, возможно несовпадение ключей. На агенте:

```bash
cat /var/ossec/etc/client.keys
```

На менеджере:

```bash
grep "AGENT_NAME" /var/ossec/etc/client.keys
```

Ключи должны совпадать. При несовпадении удалите агента и зарегистрируйте заново:

```bash
# На менеджере
/var/ossec/bin/manage_agents -r AGENT_ID

# На агенте - повторите процедуру регистрации
```

### Проблемы с SSL-сертификатами

При использовании автоматической регистрации (authd) проверьте сертификаты:

```bash
# На менеджере
openssl x509 -in /var/ossec/etc/sslmanager.cert -text -noout | grep "Not After"
```

Истекший сертификат препятствует регистрации новых агентов.

### Журнал агента

На хосте агента проверьте журнал:

```bash
# Linux
tail -50 /var/ossec/logs/ossec.log

# Windows (PowerShell)
Get-Content "C:\Program Files (x86)\ossec-agent\ossec.log" -Tail 50
```

Типичные сообщения об ошибках:

| Сообщение | Причина | Решение |
|---|---|---|
| `Unable to connect to MANAGER_IP:1514` | Сеть или файрвол | Проверьте маршрутизацию и правила файрвола |
| `Invalid key` | Несовпадение ключей | Переregister агент |
| `Manager not found` | Некорректный адрес менеджера | Проверьте `ossec.conf` агента |
| `Agent key not found` | Агент не зарегистрирован | Зарегистрируйте агента на менеджере |

## Проблемы индексатора

### Индексатор не запускается

```bash
systemctl status wazuh-indexer
journalctl -u wazuh-indexer -n 100
cat /var/log/wazuh-indexer/wazuh-indexer.log | tail -50
```

### Недостаточно дискового пространства

Индексатор прекращает запись при заполнении диска выше порогового значения (по умолчанию 95%):

```bash
df -h /var/lib/wazuh-indexer/
```

Для освобождения пространства удалите старые индексы:

```bash
# Список индексов по размеру
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cat/indices/wazuh-alerts-*?v&s=store.size:desc"

# Удаление старых индексов
curl -sk -u admin:<PASSWORD> \
  -X DELETE "https://localhost:9200/wazuh-alerts-4.x-2024.01.*"
```

Снимите блокировку записи после освобождения пространства:

```bash
curl -sk -u admin:<PASSWORD> \
  -X PUT "https://localhost:9200/_cluster/settings" \
  -H "Content-Type: application/json" \
  -d '{
    "persistent": {
      "cluster.routing.allocation.disk.watermark.flood_stage": "95%",
      "cluster.routing.allocation.disk.watermark.high": "90%",
      "cluster.routing.allocation.disk.watermark.low": "85%"
    }
  }'

curl -sk -u admin:<PASSWORD> \
  -X PUT "https://localhost:9200/_all/_settings" \
  -H "Content-Type: application/json" \
  -d '{"index.blocks.read_only_allow_delete": null}'
```

### Проблемы с JVM

**OutOfMemoryError:**

Увеличьте размер heap в `/etc/wazuh-indexer/jvm.options`:

```
-Xms4g
-Xmx4g
```

Рекомендация: выделяйте не более 50% оперативной памяти хоста, но не более 32 ГБ.

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

### Кластер в статусе red

```bash
# Проверка состояния кластера
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cluster/health?pretty"

# Нераспределенные шарды
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cat/shards?v&h=index,shard,prirep,state,unassigned.reason" \
  | grep UNASSIGNED
```

Типичные причины:

- Узел кластера недоступен - проверьте состояние всех узлов
- Недостаточно места для размещения шардов - освободите дисковое пространство
- Повреждение данных индекса - восстановите из [снимка](/docs/wazuh/operations/wazuh-backup/)

## Проблемы Dashboard

### Dashboard не открывается

```bash
systemctl status wazuh-dashboard
cat /var/log/wazuh-dashboard/opensearch_dashboards.log | tail -50
```

### Ошибка подключения к индексатору

Dashboard не может подключиться к индексатору:

```
FATAL  Error: connect ECONNREFUSED 127.0.0.1:9200
```

Убедитесь, что индексатор запущен и доступен:

```bash
systemctl status wazuh-indexer
curl -sk -u admin:<PASSWORD> "https://localhost:9200/"
```

Проверьте конфигурацию подключения в `/etc/wazuh-dashboard/opensearch_dashboards.yml`:

```yaml
opensearch.hosts: ["https://localhost:9200"]
opensearch.ssl.verificationMode: certificate
opensearch.username: "kibanaserver"
opensearch.password: "<PASSWORD>"
```

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

```
Error: unable to verify the first certificate
```

Проверьте пути и срок действия сертификатов:

```bash
grep "server.ssl" /etc/wazuh-dashboard/opensearch_dashboards.yml
openssl x509 -in /etc/wazuh-dashboard/cert.pem -text -noout | grep "Not After"
```

### Плагин Wazuh показывает ошибку

Если дашборд открывается, но плагин Wazuh отображает ошибку:

1. Проверьте конфигурацию плагина:

```bash
cat /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
```

2. Убедитесь, что API менеджера доступен:

```bash
curl -sk -u wazuh-wui:<PASSWORD> \
  "https://localhost:55000/manager/info" | jq '.data'
```

## Проблемы производительности

### Высокая загрузка CPU менеджера

Проверьте количество событий в секунду:

```bash
# Статистика analysisd
cat /var/ossec/var/run/wazuh-analysisd.state

# Статистика remoted
cat /var/ossec/var/run/wazuh-remoted.state
```

Меры по снижению нагрузки:

- Исключите шумные источники через фильтрацию на уровне агента
- Увеличьте интервал мониторинга файлов (FIM)
- Отключите неиспользуемые модули в [конфигурации менеджера](/docs/wazuh/infrastructure/wazuh-server-cluster/)

### Медленные запросы к индексатору

```bash
# Запросы, выполняющиеся дольше 5 секунд
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_nodes/hot_threads"

# Статистика индексов
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cat/indices/wazuh-alerts-*?v&s=docs.count:desc&h=index,docs.count,store.size"
```

Рекомендации:

- Настройте политику управления жизненным циклом индексов (ISM)
- Увеличьте heap JVM (но не более 50% RAM)
- Добавьте узлы в [кластер индексатора](/docs/wazuh/infrastructure/wazuh-indexer-cluster/)

### Задержка доставки алертов

Если между возникновением события и появлением алерта в дашборде проходит значительное время:

1. Проверьте очередь analysisd:

```bash
cat /var/ossec/var/run/wazuh-analysisd.state | grep queue
```

2. Проверьте Filebeat:

```bash
filebeat test output
cat /var/log/filebeat/filebeat | tail -20
```

3. Проверьте задержку индексации:

```bash
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cat/thread_pool/write?v&h=node_name,active,queue,rejected"
```

## Режим отладки

Для более детальной диагностики включите режим отладки.

### Debug-режим менеджера

В `/var/ossec/etc/internal_options.conf` установите:

```
analysisd.debug=2
remoted.debug=2
```

Перезапустите менеджер:

```bash
systemctl restart wazuh-manager
```

Журнал будет содержать значительно больше информации. Не забудьте отключить debug-режим после диагностики для снижения нагрузки.

### Debug-режим агента

В `/var/ossec/etc/internal_options.conf` (или `local_internal_options.conf`) на хосте агента:

```
agent.debug=2
logcollector.debug=2
```

```bash
systemctl restart wazuh-agent
```

### Debug-режим индексатора

В `/etc/wazuh-indexer/opensearch.yml`:

```yaml
logger.level: debug
```

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

## Сбор диагностических данных

При обращении в поддержку или сообщество подготовьте следующие данные:

```bash
# Версии компонентов
rpm -qa | grep wazuh   # или dpkg -l | grep wazuh

# Статус всех сервисов
systemctl status wazuh-manager wazuh-indexer wazuh-dashboard filebeat

# Конфигурация менеджера (без паролей)
cat /var/ossec/etc/ossec.conf | grep -v -i password

# Последние 200 строк журналов
tail -200 /var/ossec/logs/ossec.log > /tmp/wazuh-diag-ossec.log
tail -200 /var/log/wazuh-indexer/wazuh-indexer.log > /tmp/wazuh-diag-indexer.log

# Состояние кластера
curl -sk -u admin:<PASSWORD> \
  "https://localhost:9200/_cluster/health?pretty" > /tmp/wazuh-diag-cluster.json

# Информация о системе
uname -a
free -h
df -h
```

Соберите файлы из `/tmp/wazuh-diag-*` и приложите к обращению.

## Связанные разделы

- [Обновление Wazuh](/docs/wazuh/operations/wazuh-upgrade/) - проблемы после обновления
- [Резервное копирование](/docs/wazuh/operations/wazuh-backup/) - восстановление при сбоях
- [API сервера](/docs/wazuh/infrastructure/wazuh-server-api/) - диагностика через API
- [Кластер индексатора](/docs/wazuh/infrastructure/wazuh-indexer-cluster/) - проблемы кластера

