Handbook, © 2018 Pearson Education lnc.» описывается такой метод настройки систем: «Копируй, вставляй, молись».
Какой бы ни была подробной инструкция и на какой бы типовой системе она не составлялась, всегда что-то может пойти не так.
В этой публикации рассмотрим, как искать и устранять ошибки авторизации ОС сервером 1С на базе linux. Тех, кто заинтересовался, прошу под кат…
Дай человеку рыбу и он будет сыт один день.
Дай человеку леща и он пойдет на работу.
вероятно не © Лао-цзы
Отладка, как для программистов, так и для системных администраторов, занимает значительно большую часть времени, чем самая тщательная первичная настройка систем.
Все течет, все меняется. Темные силы электричества готовы обрушить работу любого проекта, особенно если он никогда и не работал.
Поэтому сразу надо понимать как, где и с помощью чего, искать баги.
Все счастливые семьи похожи друг на друга,
а каждая несчастливая семья несчастлива по-своему.
© Л.Н. Толстой
В схеме с доменной авторизацией 1С будет почти по Толстому, на стороне клиента ошибки будут выглядеть одинаково — окно ввода пароля при попытке открыть базу 1С (как следствие, письмо от пользователя: "Не могу войти в 1С, пробовал все пароли, ни один не подходит"), но под капотом, мы имеем несколько точек отказа, которые могут случиться все или по отдельности, в огромном количестве комбинаций зависящих как от настроек, так и от версии платформы и ранга домена.
Исходные данные остаются прежними, в смешанном домене windows (linux & windows рабочие станции) сервер 1С на базе РедОС.
Описаны в публикации "В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана",
- Контроллер домена, сервер Windows 2012 R2, домен AD уровня Windows 2012. dc.test.loc
- Рабочая станция Windows 10. win-cln01.test.loc
- Рабочая станция РедОС 8. red8-cln01.test.loc
- Сервер 1С РедОС 8 настроенный. red8-srv.test.loc
- Сервер 1С РедОС 8 настраиваемый. red-srv.test.loc
- Postgres 16 от PostgresPro
- 1С Предприятие 64-х 8.3.24.1467
- все в домене test.loc.
Пользователь, от которого работает сервер 1С usr1cv83, пароли у всех 123456.
Все эти значения произвольные и должны в скриптах быть заменены на ваши.
Имя домена *.local не рекомендуют коллеги РедОС. - все по железу 4ГБ RAM 50ГБ SSD 2 Ядра CPU
- все развернуто в облаке из оригинальных iso образов производителей для чистоты эксперимента.
Те, кто больше любит видео, могут и сейчас посмотреть его вместо чтения статьи, желательно и то, и другое.
Видео
Аксиома: Контроллер домена, сеть и рабочие станции настроены и работают штатно.
Хорошие новости: Сеть настроенную по инструкции из упомянутой выше публикации достаточно сложно поломать. Когда я для написания этой публикации пробовал воспроизвести встречавшиеся в моей практике ошибки, часть из них повторить не удалось, часть удалось, но действиями, которые трудно представить в реальной жизни и требующих административных прав, например ручной установкой времени на станции клиента.
Свежая платформа 1С также более лояльно относится например к различиям в KVNO.
Грешил сначала на то, что работаю под лицензиями разработчика, но потом добрые люди дали на выходные штатную лицензию и все осталось точно так же.
Раз уж вспомнились добрые люди… Если у кого будет возможность на несколько дней (выходные) дать лицензии уровня КОРП или попросить временные у 1С, то получится написать статью об отказоустойчивом кластере.
Лицензии разработчика не дают его собрать.
Конфиденциальность гарантирую или наоборот, могу упомянуть в разделе "Благодарности"
Методика расследования:
Не буду употреблять иностранных слов и заменю модное "дихотомия" на "танцуем от печки".
(тем более, что дихотомия, это зачастую не тот процесс, за который его выдают искатели ошибок).
В любом случае, первое с чем надо определиться, это задать себе и ответить на несколько вопросов:
- ошибка возникает у всех пользователей и во всех базах всех серверов 1С (если вы при этом еще видите бегущих сисадминов с горящими
вырезано цензуройглазами, то возможно весь домен устал и надо просто подождать) или у одного (нескольких). - ошибка возникает во всех типах клиентов 1С сервера 1С или только в веб. За исключением одного случая, если авторизация не работает в тонком клиенте, в веб она тоже не заработает
- ошибка возникает во всех базах, размещенных на сервере 1С, или в одной (нескольких)
- немаловажный вопрос: работало ли все изначально и сломалось или не работало никогда
Первые действия в расследовании, это выполнить в консоли:
- timedatectl status (или та система с помощью которой вы синхронизируете время с контроллером домена) проверяем что работает
- nslookup dc.test.loc проверяем что видится контроллер домена
- id usr1cv83 проверяем что отрабатываются запросы в домене
- kinit usr1cv83 получаем тикет Kerberos интерактивно
- klist -e -k -t /1c/usr1cv83.keytab и hostname сверяемся, что файл существует, корректен и имена служб в нем выданы для настраиваемого сервера
- kinit -k -t /1c/usr1cv83.keytab usr1cv83@TEST.LOC получаем тикет Kerberos используя файл keytab
Все эти команды должны отработать без ошибок, при наличии сообщений об ошибках здесь, двигаться дальше и переходить к настройкам 1С нет смысла.
Если при первом взгляде все выглядит пристойно, углубиться в расследование помогут журналы:
- технологический журнал 1С с мониторингом событий CONN и EXCP, можно отдельно посмотреть VRSREQUEST и VRSRESPONSE, но в случае веб-клиента, по сути это будет дубль логов apache.
logcfg.xml<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="\1c\tg" history="2">
<event>
<eq property="Name" value="CONN"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="all"/>
</log>
</config>
регистрации apache, если расследуется ошибка на веб-клиенте. Настроен по умолчанию и находится в /var/log/httpd. Если запросы идут по протоколу http, то это файлы access_log error_log и ssl_access_log ssl_error_log если используется https.
Ошибки связанные с единичными пользователями
- Ошибка в имени пользователя или некорректно составленное имя пользователя домена.
Если имя пользователя обычно выбирают из выпадающего списка и в нем ошибиться трудно, то имени домена будет два как минимум короткое TEST и длинное TEST.LOC в нашем случае. Я видел варианты настройки систем, где они не взаимозаменяемы. В технологическом журнале 1С вы увидите с каким именем пытается авторизоваться пользователь.
- Расхождение во времени с контроллером домена на клиенте
В технологическом журнале будет выглядеть clock skew too great (или похожие со словом clock/время)
Если настроен веб-сервер, то надо пробовать веб-клиент, в нем ошибки не будет.
- Не работает авторизация в браузере
Браузеры, кроме Edge, нуждаются в дополнительной настройке для доменной авторизации.
Проще всего проверить попробовав подключиться клиентом 1С в режиме веб-клиента.
Ошибки связанные со всеми пользователями и во всех типах клиентов ведут на сервер 1С (веб-сервер)
- Расхождение во времени с контроллером домена или его недоступность на сервере 1С.
Это первые две вещи, которые стоит проверить, попав в консоль сервера, до просмотра всех журналов.
В стабильном продуктовом контуре их вероятность не велика, но в тестовом наиболее вероятна.
- Не отключенный/не настроенный Selinux
Порождает загадочные ошибки, поэтому тоже до просмотра журналов желательно отключить Selinux, хотя бы и в тестовых целях.
- Некорректный/отсутствующий/недоступный файл keytab
В технологическом журнале будет выглядеть как "Ошибка доступа к файлу" или "Unsupported key table format"
Если настроен веб-сервер, то аналогично в логах ahache.
Если файл присутствует, мы же его видели на шаге предпроверки, то надо проверить права доступа и владельца.
- Отсутствие в файл keytab записи для службы 1С (службы веб-сервера)
В технологическом журнале будет выглядеть как "Не найдена запись в файле для ..."
Если настроен веб-сервер, то аналогично в логах ahache.
Как вариант, запись в файле может присутствовать, но не будет для нее записи SPN.
Также на шаге предпроверки мы эту ошибку должны были поймать.
Ошибки связанные со всеми пользователями, только в веб клиенте
- Ошибки возникают в одной (нескольких) базах, в других все работает.
Очевидно, это связано с файлом публикации информационной базы. Как вариант поменять строку соединения в рабочем файле публикации или наоборот из рабочей публикации скопировать в нерабочую строки относящиеся к авторизации kerberos.
- Знаменитая ошибка 402 Payment Required
Связана с тем, что в свойствах учетных записей пользователя под которым запускается служба 1С и для компьютера на котором она работает не настроено делегирование kerberos.
- Некорректный/отсутствующий/недоступный файл keytab или смена KVNO пользователя
Веб-сервер, в этом отношении более категоричен, чем актуальные редакции платформы 1С, для него смена KVNO это повод отказать в доступе.
Конечно вариаций ошибок может быть и больше.
Напишите пожалуйста в комментариях, какие встречались вам.
По поводу предложений настроить вам сеть под ключ.
Спасибо всем, кто отписался. По моему убеждению настраивать/пробовать настроить сеть должен тот, кто будет в ней жить.
А вот если у вас что-то не получается/не получилось или есть задачи категории 1С: Эксперта, которые можно выполнять за пределами рабочего времени, то вы знаете где меня искать.
Благодарности:
Благодарю компанию ©Serverspace за предоставленное оборудование, без поддержки собрать такой пингвинариум мне было бы негде.
Итог и планы на будущее:
Так вот не торопясь мы после настройки персонального рабочего места на РедОС 7.3, посмотрели РедОС 8 и почти полностью собрали рабочую сеть 1С на отечественной ОС подходящую для работы среднего размера компании.
С веб-серверами, доменной авторизацией и прочая прочая...
Осталось настроить регулярное архивирование, чтобы не потерять нажитое, к нему и перейдем в следующей публикации, если все пойдет по плану.
Если найдутся серверные лицензии 1С, то есть достаточно свежее решение по построению отказоустройчивого кластера. Гораздо красивее, чем предлагаемое в ИТС (по крайней мере по скорости).
В итоге получится мини-курс Импортозамещение ОС в контексте 1С Предприятие. Жалко что коллеги из Яндекса не взялись помочь оформить его именно как курс.
В благословенные времена, когда семинары проходили не онлайн, а в конференц-холлах, обязательно на галерке сидел технически продвинутый человек, который рвал на себе волосы показывая пальцем в докладчика и тихим шепотом советуя так не делать.
Причем иногда количество волос на голове этого человека намекало, на скольки конференциях он уже побывал.
Статья продолжает серию публикаций:
- В облако на работу: Все варианты авторизации ОС сервером 1С на базе РЕД ОС 8 в домене windows. Рецепты от Капитана
- Бесплатный вебинар "В облаке, как дома: Как настроить рабочее место пользователя 1С на базе РЕД ОС"
- В облаке, как дома: Устраиваемся поудобнее. Рабочее место пользователя 1С на базе РЕД ОС (HTTPS и архивирование)
- Три пингвина под окном… Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux
- Три пингвина под окном… Точки над Ё. Обзор рабочих мест пользователя 1С, собранных на отечественных дистрибутивах linux
- Установка 1С: Сервера взаимодействия. Заметки на полях
- Сервер 1С: Предприятие на Ubuntu 16.04 и PostgreSQL 9.6, для тех, кто хочет узнать его вкус. Рецепт от Капитана обратите внимание на дату публикации
- 1С в 1cloud.ru. Теплое, ламповое, свое отчет о походе в питерский офис ©Serverspace когда он еще не был Serverspace
Серия "Рецепты от Капитана" на всякий случай