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

Диагностика проблем 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 AgentC:\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

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

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

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

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

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

/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 для быстрой проверки:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# firewalld
firewall-cmd --list-ports

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

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

/var/ossec/bin/manage_agents -l

Или через API:

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[]'

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

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

cat /var/ossec/etc/client.keys

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

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

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

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

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

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

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

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

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

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

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

# 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Агент не зарегистрированЗарегистрируйте агента на менеджере

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

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

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

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

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

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

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

# Список индексов по размеру
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.*"

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

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 ГБ.

systemctl restart wazuh-indexer

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

# Проверка состояния кластера
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

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

  • Узел кластера недоступен - проверьте состояние всех узлов
  • Недостаточно места для размещения шардов - освободите дисковое пространство
  • Повреждение данных индекса - восстановите из снимка

Проблемы Dashboard

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

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

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

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

FATAL  Error: connect ECONNREFUSED 127.0.0.1:9200

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

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

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

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

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

Error: unable to verify the first certificate

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

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. Проверьте конфигурацию плагина:
cat /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml
  1. Убедитесь, что API менеджера доступен:
curl -sk -u wazuh-wui:<PASSWORD> \
  "https://localhost:55000/manager/info" | jq '.data'

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

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

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

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

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

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

  • Исключите шумные источники через фильтрацию на уровне агента
  • Увеличьте интервал мониторинга файлов (FIM)
  • Отключите неиспользуемые модули в конфигурации менеджера

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

# Запросы, выполняющиеся дольше 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)
  • Добавьте узлы в кластер индексатора

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

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

  1. Проверьте очередь analysisd:
cat /var/ossec/var/run/wazuh-analysisd.state | grep queue
  1. Проверьте Filebeat:
filebeat test output
cat /var/log/filebeat/filebeat | tail -20
  1. Проверьте задержку индексации:
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

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

systemctl restart wazuh-manager

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

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

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

agent.debug=2
logcollector.debug=2
systemctl restart wazuh-agent

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

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

logger.level: debug
systemctl restart wazuh-indexer

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

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

# Версии компонентов
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-* и приложите к обращению.

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

Last updated on