Устранение неполадок 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 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 |
Менеджер не запускается
Проверка статуса сервиса
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 отображает ошибку:
- Проверьте конфигурацию плагина:
cat /usr/share/wazuh-dashboard/data/wazuh/config/wazuh.yml- Убедитесь, что 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)
- Добавьте узлы в кластер индексатора
Задержка доставки алертов
Если между возникновением события и появлением алерта в дашборде проходит значительное время:
- Проверьте очередь analysisd:
cat /var/ossec/var/run/wazuh-analysisd.state | grep queue- Проверьте Filebeat:
filebeat test output
cat /var/log/filebeat/filebeat | tail -20- Проверьте задержку индексации:
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=2systemctl restart wazuh-agentDebug-режим индексатора
В /etc/wazuh-indexer/opensearch.yml:
logger.level: debugsystemctl 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-* и приложите к обращению.
Связанные разделы
- Обновление Wazuh - проблемы после обновления
- Резервное копирование - восстановление при сбоях
- API сервера - диагностика через API
- Кластер индексатора - проблемы кластера