Журнал обмена - как читать и что означают его сообщения
Читаем журнал обмена с учётной системой и понимаем, на чьей стороне произошёл сбой.
Решение
Находим журнал и смотрим последние записи:
ls -lht /home/bitrix/www/upload/1c_catalog/ | head -5 # свежие файлы обмена сверхуtail -60 /home/bitrix/www/upload/1c_catalog/1c_exchange.log 2>/dev/nulltail -40 /home/bitrix/www/upload/1c_exchange.log 2>/dev/null# путь зависит от типа обмена: каталог и заказы пишут в разные файлыЖурнал обмена живёт рядом с файлами выгрузки, а не в интерфейсе админки. Его включают настройкой модуля, и на боевом сайте он должен быть включён всегда: разбирать обмен без него нечем.
Читаем служебные слова в ответах:
grep -E '^(success|progress|failure)' \ /home/bitrix/www/upload/1c_catalog/1c_exchange.log | tail -20# progress означает «шаг закончен, присылай следующий запрос»grep -c '^failure' /home/bitrix/www/upload/1c_catalog/1c_exchange.logОтветы сайта начинаются служебным словом: успех, продолжение или отказ. Строка с отказом содержит текст ошибки следом, и именно она отвечает на вопрос, что пошло не так.
Смотрим ответы сайта в журнале веб-сервера:
grep '1c_exchange.php' /var/log/nginx/access.log | tail -20 | awk '{print $9, $7}'# коды 200 при пустых ответах и коды 500 - две разные историиЖурнал веб-сервера показывает то, чего нет в журнале обмена: коды ответов и их размер. Отказ по правам, обрыв по времени и пустой отбор различаются здесь мгновенно.
Отделяем свою ошибку от чужой:
// ошибки платформы при разборе файла обмена пишутся в журнал событий$res = CEventLog::GetList(['ID' => 'DESC'], ['AUDIT_TYPE_ID' => 'CATALOG_IMPORT1C']);while ($row = $res->Fetch()) { printf("%s %s\n", $row['TIMESTAMP_X'], mb_substr($row['DESCRIPTION'], 0, 80));}Ошибка сайта видна в его журналах, ошибка учётной системы - только в её сообщении. Фраза «ошибка при обмене» без указания стороны почти всегда означает, что журналы не читали ни там, ни там.
Пустой журнал означает, что обмен не начинался. Учётная система не достучалась до сайта либо не отправила ни одного файла: разбирать в этом случае нужно доступ к точке обмена, а не настройки каталога.
Разбор сбоя по журналам идёт в одном порядке: сначала журнал доступа веб-сервера, потом журнал обмена, потом журнал событий платформы. Первый отвечает на вопрос «дошёл ли запрос», второй - «что сайт ответил», третий - «что при этом сломалось внутри».
Журнал растёт и не чистится сам. На сайте с ежечасным обменом он за месяц превращается в файл на несколько гигабайтов, поэтому его включают в ротацию наравне с журналами веб-сервера.
Типичные проблемы
Журнала обмена нет вовсе.
Он выключен в настройках модуля. Без него разбирать обмен приходится по журналам веб-сервера и учётной системы.
В журнале только успехи, а данных нет.
Обмен проходит с пустым отбором. Сайт честно отвечает успехом на пустой файл.
Учётная система сообщает об ошибке, журнал сайта чист.
Запрос не дошёл до платформы: его отклонил веб-сервер или сеть. Это видно в журнале доступа веб-сервера.
Журнал занял всё место на диске.
У него нет ротации. Файл растёт бесконечно и на частом обмене становится самым большим на сервере.
Ошибка есть, но без подробностей.
Часть сообщений обрезается в интерфейсе. Полный текст лежит в файле журнала.
Частые вопросы
Где смотреть журнал обмена заказами?
Там же, рядом с файлами обмена, но у заказов свой файл. Каталог и заказы пишут в разные журналы.
Стоит ли держать журнал включённым постоянно?
Да, на боевом сайте это единственный способ разобрать сбой задним числом. Место решается ротацией, а не отключением.
Как понять, что обмен вообще запускался?
По журналу доступа веб-сервера: там видны все обращения к точке обмена. Отсутствие обращений означает, что учётная система не начинала.
Почему в журнале русский текст превращается в мусор?
Файл пишется в кодировке сайта, а читается в другой. Смотрят с явным указанием кодировки, а не переносят файл как есть.
Смежное
-
Обмен: выгрузка товаров - оглавление подтемы
-
Не выгружаются товары из 1С - разбор по журналу на практике
-
Долгий обмен и обрывы: шаг, память, время выполнения - что видно в журнале при обрыве
-
Обмен с 1С и HTTP - устройство обмена целиком
-
1С не может прочитать ответ сайта: разбор причин - разбор ответа точки обмена
-
Сверка каталога после обмена: числа, расхождения, отчёт - проверка итога вместо хода сеанса
-
Протокол обмена с 1С: шаги, параметры, ответы, отладка - что означает шаг в записи журнала
-
Мониторинг интеграций: что проверять, пороги, оповещение - наблюдение вместо чтения журнала руками