Где почитать логи службы сервера 1с

от admin

Записки IT специалиста

Если программа ведет себя неправильно, то первым делом следует смотреть логи. 1С:Предприятие не исключение, однако, в отличие от большинства иных программ, использующих для этого системные инструменты, 1С реализовали собственный механизм, названный технологическим журналом. Он позволяет достаточно гибко настраивать собираемую информацию и способен удовлетворить различные категории пользователей: от администраторов до разработчиков.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Что такое технологический журнал? Это собственный формат логов 1С собирающий всю информацию о работе установленных на данном ПК приложениях 1С:Предприятие. По умолчанию технологический журнал настроен на сохранение минимальных дампов, возникающих при аварийном завершении программы.

Однако, давайте честно, многие из читающих данную статью имеют знания и опыт чтобы работать с дампами? А те, кто все-таки умеют это делать, будут этим заниматься? Нет, так как практического смысла в этом немного. Процитирую В. Гилева:

В дампах могут разобраться только разработчики платформы! (только у них исходники 🙂 )

Поэтому сразу забываем о дампах и сосредотачиваемся на гораздо более простых и понятных вещах — логах. Для чтения логов не нужно иметь специфических знаний, достаточно просто инженерного опыта и общих представлений о работе операционной системы и непосредственно 1С:Предприятия.

Платформа Windows

Для включения и настройки технологического журнала в среде Windows необходимо в папке C:\Program Files (x86)\1cv8\conf создать специальный файл настроек logcfg.xml. В самом простейшем случае он может выглядеть так:

Разберем структуру файла подробнее:

  • log location — расположение файлов лога, указанная директория должна существовать, и пользователь от имени которого запускается 1С должен иметь право записи в нее.
  • history — время хранения логов в часах, в нашем примере 168 часов равно 7 суткам или неделе.
  • event — таких секций может быть много, соответствуют фиксируемым событиям. В данном случае фиксируются все события.
  • property — определяет попадание в журнал свойств событий. Конструкция property name=»all» включает записи в журнал всех свойств событий.

Данная настройка может подойти для клиентского приложения, однако попытка использовать ее на сервере приведет к резкому раздуванию логов и падению производительности системы.

Внимание! 1С категорически не рекомендует включать подобный тип журнала на рабочих серверах!

Поэтому настроим журнал на получение только нужной нам информации. Существуют разные варианты настройки технологического журнала, в зависимости от того, какие именно события нас интересуют. В первую очередь это нештатное поведение платформы, которое может быть связано с ошибками конфигурации или неправильной настройкой платформы. Фирма 1С рекомендует такую настройку журнала:

В данном примере фиксируются следующие события:

  • PROC — события, относящиеся к процессу целиком и влияющие на дальнейшую работоспособность процесса. Например, старт, завершение, аварийное завершение и т.п.
  • SCOM — события создания или удаления серверного контекста, обычно связанного с информационной базой.
  • CONN — установка или разрыв клиентского соединения с сервером.
  • EXCP — исключительные ситуации приложений системы 1С:Предприятие, которые штатно не обрабатываются и могут послужить причиной аварийного завершения серверного процесса или подсоединенного к нему клиентского процесса.
  • ADMIN — управляющие воздействия администратора кластера серверов системы 1С:Предприятие.
  • QERR — события, связанные с обнаружением ошибок компиляции запроса или ограничения на уровне записей и полей базы данных.

Этого набора вполне хватает, для разбора ошибок в повседневной деятельности администратора. С полным перечнем настроек технологического журнала с пояснениями и примерами можно ознакомиться в разделе 3.17 Руководства администратора (та самая толстая желтая книжка, которую никто не читает).

Для диагностики отдельных ситуаций можно применять и специфические настройки журнала. Если вы используете аппаратные ключи, то в случае возникновения проблем с ними примените следующую настройку журнала:

Это позволит фиксировать события обращения к ключам защиты в том виде, в котором они фиксируются системой защиты HASP, в то время как 1С подменяет их своими сообщениями, типа «ключ защиты не обнаружен», обладающими крайне низкой информативностью.

Итак, файл создан. Чтобы события начали фиксироваться в журнале необходимо запустить клиентское приложение или перезапустить службу сервера. После чего директория с логами примет примерно следующий вид:

1cv83-tech-log-001.jpg

Для каждого процесса создается отдельная папка с его именем и ID, каждая из которых содержит внутри текстовые файлы с именем формата ггммддчч, т.е. год-месяц-день-час, каждый час создается новый файл лога. Так, например, лог за 12 января 2016 года с 15 до 16 часов будет иметь имя 16011215.log, затем 16011216.log и т.д.

Для примера приведем участок лога:

Сразу видно, что система не может разрешить имя сервера W81-TEST, возможно из-за проблем в DNS. Как видим, логи вполне читабельны и понятны, что позволяет осмысленно подходить к разбору ошибок, особенно в тех случаях, когда явного сообщения об ошибке не выводится, скажем не стартует процесс сервера.

Платформа Linux

Несмотря на то, что никаких отличий в настройке технологического журнала для разных платформ нет, в Linux имеются некоторые особенности, связанные с архитектурой системы и не всегда очевидные начинающим.

Прежде всего расположение файла настроек. Он должен находиться в /home/usr1cv8/.1cv8/1C/1cv8/conf, по умолчанию данная директория не существует и ее нужно будет создать. Также, если вы предпочитаете графические инструменты настройки, учтите, что директория .1cv8 скрытая (на это указывает точка в начале имени) и просто так в файловом менеджере вы ее не увидите.

Мы предпочитаем работу в консоли, как более привычную и удобную для данной платформы. Поэтому создадим данную директорию:

а в ней файл настроек:

После чего можно приступать к его редактированию, содержимое должно быть полностью идентичным Windows-версии, за исключением пути хранения логов. В файловой системе Linux они традиционно располагаются в /var/log и мы не рекомендуем отступать от традиций, потому, что если с данным сервером придется работать другому специалисту, то он будет искать логи именно там.

Изменим строку конфигурационного файла logcfg.xml следующим образом:

Затем создадим папку для логов 1С

А чтобы 1С могла писать туда, установим пользователя и группу 1С владельцем этого каталога:

Теперь перезапускаем процесс сервера 1С

и отмечаем создание в директории папок и файлов с логами.

Данная настройка будет вести технологический журнал сервера 1С, если вам нужно фиксировать события клиентского приложения, то следует выполнить ряд дополнительных действий.

Так как клиентская платформа работает от имени запустившего его пользователя, то файлы настройки платформы хранятся в домашнем каталоге этого пользователя. Если таких пользователей несколько, то у каждого из них будет свой вариант настроек. Структура каталогов при этом полностью повторяет серверную, что не удивительно, в случае с сервером настройки хранятся в каталоге служебного пользователя от имени которого работает сервер 1С.

Если посмотреть этот каталог, то увидим, что там кроме папки conf, присутствует также папка logs, в которой создаются папки для запущенных процессов, однако самих логов там нет.

Читать:
Как исправить зависание курсора виндовс 10

1cv83-tech-log-003.jpg

Попытка использовать для записи логов эту папку не приведет к успеху, папки процессов будут создаваться, но логи появляться не будут. Можно, конечно, перенастроить место хранения логов на любую папку в домашней директории, но лучше продолжить использовать для этого /var/log/1C.

Чтобы запущенное от имени пользователя приложение могло писать в данную папку надо предоставить ему соответствующие права. Если вы единственный пользователь компьютера и серверной версии 1С у вас не установлено, то можно просто сделать текущего пользователя владельцем данной папки, если пользователей несколько, либо на этом же ПК стоит серверная часть и вы хотите включить журнал и для нее, то нужно настроить совместный доступ.

Прежде всего добавим нужных пользователей в группу 1С:

Затем изменим права на папку логов, чтобы писать в нее мог не только владелец, но и группа:

Для применения прав нужно завершить сеанс пользователя и войти заново, после этого можно запустить клиентское приложение и убедиться, что в каталоге /var/log/1C создаются нужные папки логов.

1cv83-tech-log-004.jpg

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал

Где почитать логи службы сервера 1с

Пример настройки сбора данных по загруженности оборудования с помощью PowerShell (3.0 или 4.0) для Windows серверов с агрегацией данных в ЦКК.

<!— END For MS SQL Server only —>

## need one time to create password file wsInputStatistics.xml. If changed user profile or file deleted we need uncomment line below & run script interactly

$cred = Get-Credential | EXPORT-CLIXML $cred_xml_path

##$cred = Get-Credential | EXPORT-CLIXML $cred_xml_path

DeadlockConnectionIntersections=’ 17 16 InfoRg10.DIMS Exclusive Fld11=»Test1″ Fld12=»Test2″, 16 17 InfoRg10.DIMS Exclusive Fld11=»Test1″ Fld12=»Test2″‘

cat rphost*/*.log | perl descr.pl | sort | uniq -c | sort -rn >> result.txt

#!/usr/bin/perl
use strict;
my $event;
my %actions = (
‘EXCP’ => [
my ($event) =@_;
my ($garbage, $context) = split /Descr=’/, $event;
my ($descr, $garbage) = split /’/, $context;
$descr =

print «EXCP Descr $descr\n» if $descr; >, >, ],);
while (<>) $event=process_event($event) if /^\d\d:\d\d\.\d+/;
$event .= $_; >
sub process_event($) my ($event) = @_;
return unless $event;
foreach my $event_type ( keys %actions ) next unless $event =

!/usr/bin/perl
use strict;
my $event;
my %actions = (
‘DBMSSQL’ => [
‘action’ => sub my ($event) =@_;
my ($date, $garbage) = split /,DBMSSQL/, $event;
$date =

my ($garbage, $context) = split /Context=’/, $event;
if ($context =

/\n/) my @mlc = split /\n/, $context;
$context = $mlc[$#mlc];
>
$context =

s/\d\d:\d\d\.\d+-//g;
my ($garbage, $context) = split /Context=’/, $event;
if ($context =

/\n/) my @mlc = split /\n/, $context;
$context = $mlc[$#mlc];
>
$context =

s/;’/;/g;
print «$date-$context\n» if $context;
>,
>,
],
);
print «\n»;
while (<>) $event=process_event($event) if /^\d\d:\d\d\.\d+/;
$event .= $_;
>
sub process_event($) my ($event) = @_;
return unless $event;
foreach my $event_type ( keys %actions ) next unless $event =

#!/usr/bin/perl
use strict;
my $event;
my %actions = (
‘TLOCK’ => [
‘action’ => sub my ($event) =@_;
my ($date, $garbage) = split /,TLOCK/, $event;
$date =

s/\d\d:\d\d\.\d+-//g;
my ($garbage, $region) = split /Regions=/, $event;
my ($region, $garbage) = split /,Locks=’/, $region;
print «$date-$region\n» if $region;
>,
>,
],
);
while (<>) $event=process_event($event) if /^\d\d:\d\d\.\d+/;
$event .= $_;
>
sub process_event($) my ($event) = @_;
return unless $event;
foreach my $event_type ( keys %actions ) next unless $event =

logman create counter 1C_counter -f bincirc -c «\Memory(_Total)\Available Mbytes» «\Process(«1cv8*»)\%% Processor Time» «\Process(«1cv8*»)\Private Bytes» «\Process(«1cv8*»)\Virtual Bytes» «\Process(«ragent*»)\%% Processor Time» «\Process(«ragent*»)\Private Bytes» «\Process(«ragent*»)\Virtual Bytes» «\Process(«rphost*»)\%% Processor Time» «\Process(«rphost*»)\Private Bytes» «\Process(«rphost*»)\Virtual Bytes» «\Process(«rmngr*»)\%% Processor Time» «\Process(«rmngr*»)\Private Bytes» «\Process(«rmngr*»)\Virtual Bytes» «\LogicalDisk(_Total)\Free Megabytes» «\Processor(_Total)\%% Processor Time» «\Memory(_Total)\Pages/sec» «\System(_Total)\Processor Queue Length» «\PhysicalDisk(_Total)\Avg. Disk Queue Length» «\PhysicalDisk(*)\Avg. Disk Queue Length» «\PhysicalDisk(*)\Avg. Disk Bytes/Read» «\PhysicalDisk(*)\Avg. Disk Bytes/Write» «\Network Interface(*)\Bytes Total/sec» -si 5 -v mmddhhmm

Все про 1С

Безымянный

Самый простой способ избежать примитивных ошибок, это открыть logcfg.xml в браузере перед тем как копировать в каталог config.

Рассмотрим наиболее популярные ошибки при настройке ТЖ.

1. Русские символы. Классика жанра — если в logcfg вы поставили русские символы в любом месте, кроме значений параметров, то ТЖ работать не будет.

2. Непечатаемые символы. Проблема может возникнуть если вы скопировали текст logcfg, а не набирали вручную.

3. Нарушена структура файла xml, например где-то не закрыли тэг или поставили лишний пробел.

4. Неправильно указаны каталоги. В каталоге с логами не должно находится ничего кроме логов, иначе логи записаны не будут.

При возникновении дампа логи перестанут записываться, т.к. в каталоге с логами будет создан посторонний элемент.

5. Используется кодировка отличная от UTF-8. При использовании других кодировок возможны проблемы.

Самопроизвольная остановка службы сервера 1с

Вчера вырубилось питание, ИБП не хватило и сервер выключился.

Теперь служба 1с сервера 64 бита после запуска сразу останавливается.

В журнале винды 2 события:

19.08.2022 9:14:58 Служба "Агент сервера 1С:Предприятия 8.3 (x86-64)" перешла в состояние Работает.
19.08.2022 9:15:01 Служба "Агент сервера 1С:Предприятия 8.3 (x86-64)" перешла в состояние Остановлена.

Подскажите, как победить

Сервер 1с переставил, вроде не останавливается.

Как узнать, что лицензия на сервер работает?

(11) У рабочего процесса написана серверная лицензия (Сервер, 6220, Srv1c2, 1560, 8101738754 1 1, file://C:/ProgramData/1C/licenses/20210405155731.lic) — значит программная лицензия работает?

У второго рабочего процесса (главный менеджер кластера) лицензия аппаратная, в этом поле пусто. Так и должно быть?

Если не можешь найти логи, запускай сервер из ком. строки, а не как службу, и читай ошибки прямо в консоли.

Ярлыки есть в Пуске

Почему-то порты сервера 1с стал занимать процесс Lsass.exe.

Поменял порты сервера 1с — служба не останавливается.

Теперь нужно попробовать поменять в кластере подключение ко второму серверу

(0) Открываешь папку C:\Program Files\1cv8\srvinfo\reg_1541
В ней файлы 1CV8Clst.lst и 1CV8Clsto.lst, в которых хранится список баз кластера 1С
Вот эти файлы и навернулись, то есть сейчас в них обрезанная информация
В конце должно быть что-то типа

А там что-то не успевшее дописаться до конца типа такого

Думаю, что проще всего починить все так
Сохранить себе список баз 1С (либо из стартера 1С либо из самого lst-файла)
Переустановить сервер 1С и пересоздать базы 1С в кластере
Если баз много, то можно попробовать вручную подменить часть файла (там, где список баз) частью старого файла

После смены портов "упавшего" рабочего сервера и изменения портов соединения с ним в настройках кластера — все пока работает.

Тайна сия великая есть почему вдруг системный процес после аварийного выключения сервера занял порты службы сервера 1с.

Похожие статьи