Коды с префиксом WERR: описание, возможные причины и способы устранения ошибок
Коды с префиксом WERR_ в Эллес служат для следующих целей:
-
логирование и диагностика работы компонентов Эллес;
Коды с префиксом
WERR_выводятся в логи Эллес (при использовании достаточных для этого уровней логирования), а также используются в выводе командsamba-toolдля информирования администратора о сбоях, помогая определить тип и причину сбоя. Например, сообщения с такими кодами фиксируются в логах при некорректной репликации данных между контроллерами домена, сбоях при проверке учетных данных, отклонении RPC-вызовов, отказах в доступе к объектам каталога и т. д. -
стандартизированный обмен статусами между компонентами Эллес.
Компоненты Эллес могут использовать коды
WERR_во внутренних вызовах для передачи статусов выполнения, в том числе в случаях отказа или несоответствия результата тому, который ожидается в рамках используемого протокола.
Далее приводятся краткие описания кодов с префиксом WERR_ и возможных причин их появления в логах или выводе утилит Эллес, а также — самые общие рекомендации по устранению ошибок или проблем, о которых они сообщают.
Примеры команд в рекомендациях предназначены для быстрого поиска возможных причин ошибки или проблемы. Их следует адаптировать или заменить аналогичными командами в соответствии с доступным инструментарием диагностики или администрирования, особенностями среды, используемыми операционными системами и другими факторами.
Выполнение некоторых команд может требовать повышения привилегий на уровне операционной системы или использования доменной учетной записи с определенным набором административных привилегий.
Приведенный в разделе список кодов с префиксом WERR_ не является исчерпывающим. Информация будет уточняться и дополняться.
|
WERR_DS_CANT_FIND_EXPECTED_NC
Описание
Система не может найти запрашиваемый контекст именования (Naming Context, NC), который необходим для завершения текущей операции.
Возможные причины
1. Отсутствие контекста именования
Запрашиваемый контекст именования отсутствует или настроен некорректно.
2. Проблемы с доступом
Текущие настройки безопасности ограничивают доступ к запрашиваемому контексту именования.
3. Ошибки при репликации
Если репликация не завершена должным образом, некоторые контексты именования могут отсутствовать.
4. Проблемы с контроллером домена
Контроллер домена может быть временно недоступен или неправильно настроен.
Способы устранения
1. Проверка состояния репликации
Используйте доступные инструменты для проверки состояния репликации и обнаружения проблем:
-
на ОС Windows:
repadmin /replsummary repadmin /showrepl
-
на ОС Linux:
samba-tool drs showrepl
Это может помочь вам выявить, есть ли нарушения в репликации между контроллерами домена.
2. Проверка конфигурации
Убедитесь, что структура службы каталогов правильно настроена и что все необходимые контексты именования существуют.
3. Проверка логов
Проверьте журналы событий на наличие дополнительных ошибок или предупреждений:
-
на ОС Windows откройте «Просмотр событий» (особенно категории "Directory Service" и "DNS");
-
на ОС Linux для отслеживания записей в логах Эллес (при размещении файлов с логами в каталоге, используемом по умолчанию) выполните, например, команду:
tail -f /app/inno-samba/var/log.*
Для получения текущих настроек логирования на ОС Linux, включая пути к файлам, используйте команду:
samba-tool testparm -v --suppress-prompt | grep -E 'log file|log level'
Если текущего уровня логирования недостаточно для получения требуемой информации, повысьте его (допустимый диапазон — от 0 до 10):
-
укажите повышенный уровень логирования с помощью ключа
-d, например, при вызове командыsamba-tool:samba-tool drs showrepl -d 3
-
укажите повышенный уровень логирования в параметре
log levelв файле smb.conf в формате:log level = <общий_уровень_логирования> <имя_класс_логирования>:<уровень_логирования> ... <имя_класс_логирования>:<уровень_логирования>
4. Проверка DNS
Убедитесь, что DNS правильно настроен. Неверные DNS-записи могут приводить к проблемам как с репликацией, так и с доступом к необходимым пространствам имен.
Используйте утилиту nslookup, чтобы проверить, что все контроллеры домена доступны через DNS:
nslookup <имя_контроллера_домена>
5. Перезапуск служб
Перезапустите службы на контроллерах домена:
-
перезапуск Эллес:
sudo systemctl restart inno-samba
Перед перезапуском Эллес выполните все необходимые действия по обеспечению бесперебойной работы домена в отсутствие перезапускаемого контроллера (DNS, роли FSMO, обслуживание клиентских запросов и т. д.). -
перезапуск BIND 9 (при использовании):
sudo systemctl restart bind9
Перед перезапуском выполните все необходимые действия по обеспечению бесперебойной работы службы DNS в отсутствие перезапускаемого сервера.
Это может помочь устранить временные проблемы с доступом.
6. Проверка доступа и прав
Убедитесь, что у учетной записи, от имени которой вы работаете, есть необходимые права доступа для выполнения запрашиваемых действий.
7. Запуск диагностики
Используйте утилиту dcdiag на ОС Windows для диагностики контроллера домена. Для удобства дальнейшего анализа выгрузите результаты работы утилиты в файл:
dcdiag /v > dcdiag_report.txt
Проанализируйте содержимое файла для обнаружения других потенциальных проблем.
WERR_DS_DRA_SCHEMA_MISMATCH
Описание
Схемы на двух или более контроллерах домена не соответствуют друг другу.
Возможные причины
1. Разные версии схемы
Один контроллер домена может использовать новую версию схемы данных каталога, в то время как другой контроллер использует старую или несовместимую версию.
2. Некорректная миграция
Если были выполнены операции миграции объектов, и схема не была заранее согласована, это может привести к несоответствиям.
3. Повреждение схемы
В некоторых случаях схема может быть повреждена или некорректно настроена, что может приводить к проблемам с репликацией.
4. Неполная или неуспешная установка обновлений
Во время установки исправлений или обновлений схема была изменена, но в процессе изменения возникла ошибка, которая привела к несоответствию.
Способы устранения
1. Проверка версии схемы
Убедитесь, что все контроллеры домена используют одинаковую версию схемы.
Для получения информации о текущей версии схемы данных каталога на контроллере домена Эллес используйте, например, утилиту ldbsearch:
ldbsearch -H ldap://<имя_сервера_ldap> -b "CN=Schema,CN=Configuration,DC=<имя>,DC=<домена>" "(cn=schema)" objectVersion
2. Проверка состояния репликации
Используйте утилиту samba-tool, чтобы проверить состояние репликации между контроллерами домена и получить информацию о возможных проблемах:
samba-tool drs showrepl
3. Сравнение схем
Если у вас несколько контроллеров домена, проверьте, что все они используют одинаковое представление схемы. Это может потребовать проверки вручную или использования сторонних инструментов.
4. Проверка целостности базы данных
Используйте утилиту samba-tool для проверки состояния базы данных:
samba-tool dbcheck
| При выполнении любых операций с базой данных следует проявлять максимальную осторожность во избежание дальнейших повреждений. |
5. Обновление Эллес
Убедитесь, что вы используете последнюю стабильную версию Эллес и что все контроллеры домена обновлены до одной и той же версии.
Для получения информации о текущей версии Эллес на контроллере домена используйте команду:
samba -V
Обновление может устранить известные проблемы и повысить стабильность работы системы.
6. Удаление и восстановление объектов
В случае необходимости удалите некорректные объекты и восстановите данные из резервной копии (при наличии).
WERR_GEN_FAILURE
Описание
Общий сбой выполнения операции.
Ошибка указывает на неспецифический сбой устройства или операции, который не может быть однозначно классифицирован.
Возможные причины
Ошибка может быть вызвана различными причинами и возникать в различных компонентах Эллес: файловая система, сетевое взаимодействие, доступ к LDAP, RPC и т. д.
Способы устранения
1. Проверка соединения
Убедитесь, что клиент имеет стабильное соединение с сервером. Для проверки доступности используйте, например, команды:
ping <IP_или_имя_контроллера_домена> traceroute <IP_или_имя_контроллера_домена>
2. Проверка логов Эллес
Проверьте логи Эллес на контроллере домена для получения дополнительной информации о причинах ошибки. Для отслеживания записей в логах (при размещении файлов с логами в каталоге, используемом по умолчанию) выполните, например, команду:
tail -f /app/inno-samba/var/log.*
Обратите внимание на ошибки, которые могут предшествовать ошибке WERR_GEN_FAILURE.
Для получения текущих настроек логирования, включая пути к файлам, используйте команду:
samba-tool testparm -v --suppress-prompt | grep -E 'log file|log level'
Если текущего уровня логирования недостаточно для получения требуемой информации, повысьте его (допустимый диапазон — от 0 до 10):
-
укажите повышенный уровень логирования с помощью ключа
-d, например, при вызове командыsamba-tool:samba-tool drs showrepl -d 3
-
укажите повышенный уровень логирования в параметре
log levelв файле smb.conf в формате:log level = <общий_уровень_логирования> <имя_класс_логирования>:<уровень_логирования> ... <имя_класс_логирования>:<уровень_логирования>
3. Проверка ресурсов сервера
Проверьте использование ресурсов сервера с помощью команд:
-
мониторинг системных ресурсов:
top
-
проверка доступной памяти:
free -h
-
проверка доступного дискового пространства:
df -h
4. Проверка конфигурации Эллес
Убедитесь, что файл конфигурации Эллес (smb.conf) не содержит ошибок и соответствует рекомендациям для используемой версии и особенностям вашей среды.
Для быстрой проверки текущей конфигурации используйте команду:
samba-tool testparm
5. Проверка путей к файлам и папкам
Убедитесь, что все пути к файлам и папкам, с которыми вы работаете, существуют и доступны.
6. Проверка прав доступа
Убедитесь, что у вас есть достаточные права для выполнения операции. Если доступ к файлу или ресурсу ограничен, проверьте текущие разрешения с помощью команд:
-
для проверки прав доступа к ресурсу:
ls -ld /путь/к/ресурсу
-
для проверки прав доступа ко всем узлам пути:
namei -l /путь/к/ресурсу
7. Перезапуск Эллес
Попробуйте перезапустить службу Эллес:
sudo systemctl restart inno-samba
| Перед перезапуском Эллес выполните все необходимые действия по обеспечению бесперебойной работы домена в отсутствие перезапускаемого контроллера (DNS, роли FSMO, обслуживание клиентских запросов и т. д.). |