Страница 1 из 1

Настройка технологический журнал сервера 1С в Linux

СообщениеДобавлено: 25 фев 2023, 17:40
Гилёв Вячеслав
Настройка технологический журнал сервера 1С в Linux
http://www.gilev.ru/linuxtj/

logcfg.xml для проверки что вообще что то собирается

СообщениеДобавлено: 01 мар 2023, 04:25
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="/var/log/1c/DUMPS" type="0" prntscrn="false"/>
<log location="/var/log/1c/logs" history="2">
<event>
<eq property="Name" value="EXCP"/>
</event>
<event>
<eq property="Name" value="ADMIN"/>
</event>
<event>
<eq property="Name" value="DBPOSTGRS"/>
</event>
<event>
<eq property="Name" value="SDGC"/>
</event>
<event>
<eq property="Name" value="ATTN"/>
</event>
<event>
<eq property="Name" value="TTIMEOUT"/>
</event>
<event>
<eq property="Name" value="TLOCK"/>
</event>
<event>
<eq property="Name" value="TDEADLOCK"/>
</event>
<property name="all"/>
</log>
</config>

logcfg.xml для диагностики рестартов сервера 1с

СообщениеДобавлено: 01 мар 2023, 15:25
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/logs" history="96">
<event>
<eq property="Name" value="ATTN"/>
<eq property="Descr" value="Process excess memory limit"/>
</event>
<event>
<eq property="Name" value="ATTN"/>
<eq property="Descr" value="Process will be killed"/>
</event>
<event>
<eq property="Name" value="ATTN"/>
<like property="Descr" value="Temporary allowed memory limit exceeded for server"/>
</event>
<event>
<eq property="Name" value="ATTN"/>
<like property="Descr" value="Process exceeded temporary allowed memory limit and would be stopped"/>
</event>
<property name="all"/>
</log>
</config>

событие ATTN

СообщениеДобавлено: 01 мар 2023, 16:46
Гилёв Вячеслав

просмотр логов ТЖ по фильтру

СообщениеДобавлено: 01 мар 2023, 18:50
Гилёв Вячеслав
поиск записей но логину пользователя
Код: выделить все
grep -P 'Нашпользователь' --color /var/log/1c/logs/rphost_*/*.log


вывод 20ти строк по времени 18:45
Код: выделить все
grep -P '^18:45.' --color /var/log/1c/logs//rphost_*/21042612.log -C 20



find /var/log/1c/ -type f -iname '*.log' -print0 | sort -z | xargs -r0 sed '$a\' | grep NAMEDB

Что делает сеанс

СообщениеДобавлено: 02 мар 2023, 06:02
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c" history="1">
<event>
<eq property="SessionID" value="<Номер сеанса>"/>
</event>
<event>
<eq property="Name" value="sesn"/>
<eq property="Nmb" value="<Номер сеанса>"/>
</event>
<event>
<eq property="t:connectID" value="<Номер соединения>"/>
</event>
<property name="All"/>
</log>

что делает сеанс.

Раздельное логирование

СообщениеДобавлено: 02 мар 2023, 06:30
Гилёв Вячеслав
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/logs/excp" history="24">
<event>
<eq property="name" value="excp"/>
</event>
<property name="all"/>
</log>
<log location="/var/log/1c/logs/vrs" history="24">
<event>
<eq property="name" value="vrsrequest"/>
</event>
<event>
<eq property="name" value="vrsresponse"/>
</event>
<property name="all"/>
</log>
<dump location="/var/log/1c/dumps" create="1" type="3"/>
</config>

максимально полный журнал

СообщениеДобавлено: 02 мар 2023, 07:16
Гилёв Вячеслав
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/logs/excp" history="2">
<event>
<ne property="name" value=""/>
</event>
<property name="all"></property name>
<system level="trace"/>
</config>

Размер папки с логами технологического журнала 1с:

СообщениеДобавлено: 02 мар 2023, 07:51
Гилёв Вячеслав
Размер папки с логами технологического журнала 1с:
Код: выделить все
du -h -s  /home/usr1cv8/log


3,1G /home/usr1cv8/log

диагностика ключей и лицензий

СообщениеДобавлено: 02 мар 2023, 08:01
Гилёв Вячеслав
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/logs/lic" history="96">
<event>
<eq property="name" value="LIC"/>
</event>
<property name="all"/>
</log>
<log location="/var/log/1c/logs/hasp" history="96">
<event>
<eq property="name" value="HASP"/>
</event>
<property name="all"/>
</log>
</config>

аудит доступа к каталогу логов тж

СообщениеДобавлено: 03 мар 2023, 00:14
Гилёв Вячеслав
Код: выделить все
sudo -s
apt install auditd
auditctl -w /var/log/1c/logs
pgerp rphost


получаем номер рабочего процесса (pid)

Код: выделить все
ausearch -p pidнашегорабочегопроцесса --raw | aureport -f -i


yes -успех
no -отказ

Код: выделить все
ausearch -p pidнашегорабочегопроцесса --raw | aureport -f -i|grep no


также некоторую активность с "шумом" можно посмотреть через
Код: выделить все
pgerp ragent

Код: выделить все
strace -p pidнашегорабочегопроцесса -ff -e trace=open,stat,mkdir

запросы и планы pg длительнее 10 секунд

СообщениеДобавлено: 03 мар 2023, 00:21
Гилёв Вячеслав
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
 <plansql/>
 <log location="/var/log/1c/logs/pg" history="1">
  <event>
   <eq property="name" value=" DBPOSTGRS"/>
   <ge property="duration" value="100000"/>
  </event>
  <property name="all"/>
 </log>
<log location="/var/log/1c/logs/sdbl" history="1">
  <event>
   <eq property="name" value=" SDBL"/>
   <ge property="duration" value="100000"/>
  </event>
  <property name="all"/>
 </log>
</config>


примечание. ge – больше или равно

дампы без логов

СообщениеДобавлено: 03 мар 2023, 00:23
Гилёв Вячеслав
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
 <dump location="/var/log/1c/dumps" create="1" type="2"/>
</config>

все события больше 15 секунд

СообщениеДобавлено: 03 мар 2023, 00:26
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
 <log location="/var/log/1c/logs" history="1">
  <event>
   <ne property="name" value=""/>
   <ge property="duration" value="150000"/>
   <eq property="p:processName" value="Test"/>
  </event>
  <property name="all"/>
 </log>
</config>

примечание. ne – не равно

все события Иванова больше 5 секунд

СообщениеДобавлено: 03 мар 2023, 00:30
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
 <log location="/var/log/1c/logs/" history="1">
  <event>
   <ne property="name" value=""/>
   <gt property="duration" value="50000"/>
   <eq property="p:processName" value="Test"/>
   <eq property="usr " value="Иванов"/>
  </event>
  <property name="all"/>
 </log>
</config>

структура логов

СообщениеДобавлено: 03 мар 2023, 00:36
Гилёв Вячеслав
Запись события в технологическом журнале обладает следующей структурой:

Каждая запись в технологическом журнале начинается с временной отметки события – timestamp, которая формируется по шаблону [Минута]:[Секунда].[Микросекунда/десятитысячная доля текущей̆ секунды, а для 8.3 здесь отображается номер миллионной доли.] Напоминаю, что год, день и час хранятся в имени файла – такое разделение временной отметки (часть в имени файла, часть в записи события) усложняет работу с ТЖ.

Далее, после дефиса, следует длительность события – для 8.3 в миллионных долях.

Далее идет имя события.

Далее идет уровень этого события в стеке выполнения.

Далее перечисляются свойства события через стандартный шаблон – [ИмяСвойства]=[значение]. Количество свойств для разных событий разное, их может быть неограниченное количество.

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

некоторые свойства событий тж

СообщениеДобавлено: 03 мар 2023, 00:41
Гилёв Вячеслав
Process – это свойство есть у всех событий, описывает процесс для которого пишется данный лог. В моем случае это лог процесса rphost.

P:processName – имя информационной базы 1С, событие было сформировано в базе под названием Deadlock.

T:clientID — идентификатор соединения с клиентом по TCP.

T:applicationName – идентификатор клиентской̆ программы, т.е. кто именно вызвал событие, в моем случае это фоновое задание.

T:connectID – номер соединения с информационной̆ базой̆.

SessionID – номер сеанса, назначенный̆ текущему потоку. Если текущему потоку не назначен сеанс, то свойство не добавляется.

Usr – имя пользователя информационной̆ базы под которым выполняется данный поток. Если пользователь не определен, подставляется значение DefUser.

Trans – показывает открыта транзакция на момент начала события или нет. 1 – открыта, 0 – нет.

dbpid – номер соединения сервера 1С с сервером баз данных.

SQL – текст инструкции SQL. Чаще всего здесь содержится текст запроса SQL с параметрами.

Rows – количество строк, которые вернул запрос.

RowsAffected – количество строк, которые изменил запрос в базе данных.

Context – какая строка кода на языке 1С породила данное событие. Наверное самое интересное для нас событие.

условия в настройках

СообщениеДобавлено: 03 мар 2023, 00:42
Гилёв Вячеслав
условия:
eq – равно;
ne – не равно;
gt – больше;
ge – больше или равно;
lt – меньше;
le – меньше или равно;
like – соответствие маске.

событие PROC

СообщениеДобавлено: 03 мар 2023, 00:49
Гилёв Вячеслав

логирование ошибок

СообщениеДобавлено: 03 мар 2023, 01:03
Гилёв Вячеслав
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/logs/excp" history="24">
<event>
<eq property="name" value="excp"/>
</event>
<property name="all"/>
</log>
<log location="/var/log/1c/logs/excpcntx" history="24">
<event>
<eq property="name" value="EXCPCNTX"/>
</event>
<property name="all"/>
</log>
<log location="/var/log/1c/logs/qerr" history="24">
<event>
<eq property="name" value="QERR"/>
</event>
<property name="all"/>
</log>
<log location="/var/log/1c/logs/proc" history="24">
<event>
<eq property="name" value="PROC"/>
<eq property="Txt" value="Bad cluster lock"/>
</event>
<event>
<eq property="name" value="PROC"/>
<eq property="Txt" value="Cluster lock absent"/>
</event>
<property name="all"/>
</log>
</config>

событие SDBL

СообщениеДобавлено: 03 мар 2023, 01:09
Гилёв Вячеслав