Копать с утра и до обеда.. или разбираем внутренний протокол 1С службы RAS (Часть первая)

Публикация № 1503913 25.08.21

Инструментарий разработчика - Прочие инструменты разработчика

ras golang исследование

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

Для чего это нужно?

Потребность автоматизации процессов администрирования и мониторинга серверов 1С, а именно:

  • Мониторинг (снятие счетчиков, доступности и блокировки ИБ)
  • Добавление/удаление ИБ
  • Перемещение ИБ
  • Добавление рабочих серверов (настройка их по шаблону)
  • Блокировка и отключение сеансов/зависших соединений
  • Подсчет количества лицензий
  • И прочие рутинные действия

Как это сейчас работает?

Сейчас для автоматизации процессов администрирования серверов 1С используется следующие схемы работы:

  1. Служба `ras`  и клиент `rac`, а так же библиотеки обертки, которые парсят выхлоп клиента `rac` 
  • Пакеты для oscript:

- v8rac - реализация части функционала для управления серверами 1С

- irac - полноценная реализация управления серверами 1С

- hirac - HTTP интерфейс основанный на oscript.Web и пакете irac

  • Различные реализации от 1С  в типовых конфигурациях
  1. Com подключение - и различные обертки для него

Все эти инструменты требуют установленной 1С, что является их существенным недостатком.

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

Что будем делать?

План решения задачи

  • Для начала предлагается сделать описание всех данных, которые необходимы для работы с серверами 1С. 
  • Научиться их сериализовать в формат RAS и читать из него, для прямого общения с 1С минуя прослойку в виде клиента `rac`, чем мы устраняем основной недостаток - установленная 1С. 
  • Реализовать единый интерфейс для всех автоматизаций по протоколу HTTP/gRPC с автоматической генерацией клиентов под любой язык программирования.

Например, для веб-сайта необходимо реализовать клиента на JS, для какой-то другой программы, возможно, потребуется требуется клиент на golang или C#, и все должно быть единообразно, клиенты под любой язык программирования должны создаваться с помощью кодогенерации на основе описания протокола RAS

  • Создать масштабируемый микросервис для решения задач администрирования и его быстрого развертывания в docker и kubernetes 

Как будем описывать формат данных

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

Это позволит нам создавать клиентов (к RAS и/или нашему единому интерфейсу по протоколам HTTP/gRPC) под любые языки разработки с минимальными трудозатратами. C помощью плагина для генерации кодирования/декодирования в формат RAS все описанные форматы данных можно будет легко кодировать и декодировать для прямого общения с RAS. 

Немного специфики:

  • Сообщение (message) - в формате protobuf - это класс/структура в других языках. 
  • Для определения специфичности формата RAS мы будет использовать расширение данных сообщений, эти данные указаны как option или выделены в [ …. ] 

Описание формата данных RAS

На прямую формат данных описываться не будет, но будут указаны порядок сериализации и кодек который надо применить к тому или иному полю.

Эти данные можно использовать для кодирования в формат RAS в языках разработки.

Здесь будет приведены примеры для языка golang. (для java - можно взять из предоставленной 1С либы)

За основу разработки формата данных взята Java - либа от 1С, и переработана в Golang/protobuf. 

Схема работы клиента RAS

В статье будет рассмотрена следующая общая схема работы клиента RAS

Подготовка данных для сериализации в формат RAS

Для начала необходимо понять, что все сообщения к RAS и при получении ответа упакованы в специальный пакет данных. Для его описания мы создадим сообщение `packet`

Для декодирования нам необходимо ввести две дополнительные опции:

  • type_field - указание на номер поля в котором содержится тип данных

  • size_field - поле в котором указан размер данных для поля с типом bytes

Packet

Структура данных:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

type

PacketType

1

byte

Определяет тип посылаемого пакета, задается в виде перечисления PacketType

size

int32

2

size

Задает размер получаемых и передаваемых данных в пакете

data

bytes

3

bytes

Данные передаваемые в пакете

Получившееся описание

 
Packet

message Packet {

  PacketType type = 1 [(ras.encoding.field) = {
      encoder: "byte",
      order: 1,
    }
  ];


  int32 size = 2 [(ras.encoding.field) = {
      encoder: "size",
      order: 2,
    }];

  bytes data = 3 [(ras.encoding.field) = {
      encoder: "bytes",
      order: 3,
      type_field: 1,
      size_field: 2,
    }];

}

PacketType

Содержит и определяет возможное типы передаваемых пакетов. Для простоты загоняем все возможные типы в перечисление и даем им более понятные названия, часть типов пакетов мы реализовывать не будет, по этому зарезервируем их номера и имена.
для быстрого получения связанного с типом сообщения используем расширение значение перечисления "
type_url".

Получившееся описание типов

 
 PacketType

enum PacketType {

  PACKET_TYPE_NEGOTIATE = 0 [(ras.encoding.type_url) = "ras.protocol.v1.NegotiateMessage"];
  PACKET_TYPE_CONNECT = 1 [(ras.encoding.type_url) = "ras.protocol.v1.ConnectMessage"];
  PACKET_TYPE_CONNECT_ACK = 2 [(ras.encoding.type_url) = "ras.protocol.v1.ConnectMessageAck"];
  PACKET_TYPE_DISCONNECT = 4 [(ras.encoding.type_url) = "ras.protocol.v1.DisconnectMessage"];
  reserved 3, 5 to 10;
  reserved "PACKET_TYPE_START_TLS", "PACKET_TYPE_SASL_NEGOTIATE", "PACKET_TYPE_SASL_AUTH", "PACKET_TYPE_SASL_CHALLENGE";
  reserved "PACKET_TYPE_SASL_SUCCESS", "PACKET_TYPE_SASL_FAILURE", "PACKET_TYPE_SASL_ABORT";
  PACKET_TYPE_ENDPOINT_OPEN = 11 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOpen"];
  PACKET_TYPE_ENDPOINT_OPEN_ACK = 12 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOpenAck"];
  PACKET_TYPE_ENDPOINT_CLOSE = 13 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointOClose"];
  PACKET_TYPE_ENDPOINT_MESSAGE = 14 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointMessage"];
  PACKET_TYPE_ENDPOINT_FAILURE = 15 [(ras.encoding.type_url) = "ras.protocol.v1.EndpointFailure"];
  PACKET_TYPE_KEEP_ALIVE = 16;

}

Используемые кодеки

  • byte - кодирует/декодирует 1 байт
  • size - кодирует/декодирует размер в формат int32, сложный кодек с последовательным чтение байтов и применением к ним бинарных операций. 
  • bytes - кодирует/считывает массив байтов нужного размера или до окончания сообщения, если размер не задан.

На этом подготовка данных для сериализации закончена и можно приступить к установке соединения с RAS

Установка соединения с RAS

 

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

После подключения по tcp к RAS, служба ожидает магическое сообщение NegotiateMessage.

Особенности этого сообщения в том, что оно единственное не требует упаковки в сообщение packet

Структура данных NegotiateMessage :

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

magic 

int32

1

int32

Магическое число, которые всегда равно 475223888

protocol 

int32

2

short

Всегда равно 256

version 

int32

3

short

По идеи это указание версии кодека, но мне известен только значение 256

 

Получившее описание сообщения:

 
NegotiateMessage

message NegotiateMessage {
  option (packet_type) = PACKET_TYPE_NEGOTIATE;
 

  int32 magic = 1 [(ras.encoding.field) = {
    order: 1,
    encoder: "int32",
  }];      // Use only one value `475223888`

  int32 protocol = 2 [(ras.encoding.field) = {
    order: 2,
    encoder: "short",
  }];

  int32 version = 3 [(ras.encoding.field) = {
    order: 3,
    encoder: "short",
  }];

}

Тут появилась специальная опция `packet_type` которая связывает с типом (PacketType)  который будет установлен или прочитан в сообщении `packet`, это поле используется для сериализации в RAS

Используемые кодеки

  • int32 - кодирует/декодирует полученное число в 4 байта в формате BigEndian 
  • short - кодирует/декодирует полученное число в 2 байта в формате BigEndian 

ВАЖНО! Этот сообщение надо сериализовать (кодировать) в байты и записать на прямую в подключение и он не требует чтения ответа от RAS. В случае любой ошибки в этом сообщении RAS просто закрывает соединение. 

Инициализируем подключение отослав сообщение ConnectMessage

Структура данных ConnectMessage:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

params 

map<string, Param>

1

map

Передаются параметры подключения на текущий момент известны  "connect.timeout" = 2000

 

Структура данных Param:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

type 

ParamType 

1

byte

Тип передаваемого параметра

value

bytes

2

bytes

Сериализованные данные параметра

 

Получившее описание сообщений:

 
ConnectMessage

message ConnectMessage {

  option (packet_type) = PACKET_TYPE_CONNECT;

  // Известные параметры
  // "connect.timeout" = 2000
  map<string, Param> params = 2 [(ras.encoding.field).order = 1];

}

 
Param 
 
ParamType

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

После отправки данного сообщения необходимо дождаться ответного сообщения от RAS ConnectMessageAck

Структура данных ConnectMessageAck:

Название

Тип

Порядок
(order)

Кодек
(encode)

Описание

params 

map<string, Param>

1

map

Параметры подключения 

 

Получившее описание сообщения:

 
ConnectMessageAck

Собственно на этом первая часть закончена, мы описание подготовку и сообщения необходимые для подключения и начала работы с RAS на прямую

 

Используемые кодеки

  • map - кодирует/декодирует структуру. Если она пустая то обязательно необходимо закодировать размер 0 с помощью кодека `size`

В следующей части

  • Открытие точки обмена (endpoint)
  • Формирование запросов и их типы (GetClustersRequest)
  • Общие описания данных (ClusterInfo)

Материалы, где можно посмотреть и "пощупать" результат

  1. https://github.com/v8platform/protos/extra/encoding/rasbinary - кодер и декодер в формат ras
  2. https://github.com/v8platform/protos/rasapis/ras/protocol - описание сообщений протокола ras
  3. https://github.com/v8platform/protos/example/ras-client - простейший клиент ras разработанный на основе описанного материала
  4. https://github.com/v8platform/protos/example/grpc-server - сервер grpc для клиента ras, с использованием rest-gateway (формирование запросов по http)
  5. Protobuf - используется для генерации кода (общие структуру, клиент и сервер grpc)

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 2521 25.08.21 13:51 Сейчас в теме
2. Yashazz 4106 25.08.21 14:49 Сейчас в теме
Послушайте опытного человека - не связывайтесь с RAS. Это крайне нестабильно работающий механизм, любит беспричинно останавливаться, а порой падать, увлекая за собой запущенные процессы, которые неосторожно к нему обратились. Иногда вешает менеджер кластера, пару раз, запускаясь, умудрился даже угробить агент сервера и посбивать все настройки портов, до каких дотянулся.
Редкая дрянь.
Yakud3a; v.a.t; user790708; +3 1 Ответить
3. khorevaa 97 25.08.21 14:56 Сейчас в теме
(2) Да мне эти проблемы известны. И они имеют решение. )
Есть заготовка для этого решения
Микросервис который будет контролировать работы ras перезапускать и прочее.
30. user790708 26.08.21 14:19 Сейчас в теме
(3) Это не решение, это костыль. Как и многое в 1с.
kandellaster; Yashazz; v.a.t; +3 Ответить
4. ktb 385 25.08.21 14:59 Сейчас в теме
(2) Опыт использования не подтверждает ваши показания.
MegaKent; Sedaiko; +2 Ответить
5. Yashazz 4106 25.08.21 15:01 Сейчас в теме
(4) Значит, вам просто повезло. Это временно, грабли ещё впереди)))

Это я говорю как человек, в течение полугода пытавшийся добиться от RAS разных релизов, чтобы он хотя бы не падал самопроизвольно и запускался бы, не вешая сервер.
Кончилось тем, что я плюнул и спокойно работаю средствами СОМ-доступа. Функционал тот же, только надёжнее в разы.
6. ktb 385 25.08.21 15:02 Сейчас в теме
(5) Стабильно работает на 4-х клиентах в режиме постоянного мониторинга кластера.
7. khorevaa 97 25.08.21 15:12 Сейчас в теме
(5) у меня 32 сервера и проблемы наблюдаются только на 3-4...
10. Yashazz 4106 26.08.21 11:20 Сейчас в теме
(7) Чтобы заказчик послал вас по известному адресу, предварительно затребовав неустойку, хватит и 1-2 серверов с проблемами.
user790708; +1 Ответить
11. khorevaa 97 26.08.21 11:25 Сейчас в теме
(10) Думается ваш негативный опыт мешает вам найти нужное решение.
К примеру ras - может быть на отдельной виртуальной машине или в docker. И да он не будет ничего вешать тогда...

Да и у всех разные заказчики и разные проблемы.. их надо просто уметь решать, а не убегать от них....
12. Yashazz 4106 26.08.21 12:04 Сейчас в теме
(11) Там не было виртуальных машин. Там был простой сервер, простой парень админ и не менее простой заказчик. И просто тупо глючащая утилита.
Если вы умеете решать такие проблемы, как утилита, вдруг перестающая работать - то респект. Декомпилировать, хекс-редактором поискать, да? Сделать за жопоруких 1С-авторов их работу? Да?

А насчёт "убегать" - знаете, когда вам недовольный руководитель напрямую приказывает "бросить эту херню" и сделать любым способом, чтобы работало, так вы бросите и сделаете. И все громкие слова про убегание от проблемы будут лишь тем, чем были изначально - пустопорожним пафосом. Главное, когда работает и есть результат, и это не адски криво и ресурсоёмко. Запомните на будущее, пригодится в жизни)
13. Sedaiko 422 26.08.21 12:06 Сейчас в теме
(12) Ну заказчик скажет хочу "свободное ПО" и придется RAS юзать, так как COM уже не судьба.
14. Yashazz 4106 26.08.21 12:09 Сейчас в теме
(13) Вот когда скажет, тогда и будем фантазировать. А реальность была именно такова. Несколько разных релизов платформы. Два сервера (а кто ж ещё даст-то, и один с трудом разрешили взять для опытов). И что?

Вот вы говорите, "на 3-4 есть проблемы" - какие проблемы, как решаете? Конкретику в студию, пожалуйста.
39. Yashazz 4106 26.08.21 19:54 Сейчас в теме
(7) так что за проблемы наблюдаются и как решаете?
Думаю, никто из читателей не хочет ведь с ними столкнуться, а если уж доведётся, то хочет знать, как решать? Так ведь?
Раз уж вы предлагаете задействовать инструмент, расскажите.
8. Sedaiko 422 26.08.21 09:53 Сейчас в теме
(2) в CentOS 7(8) через systemd никогда проблем не было.
9. Yashazz 4106 26.08.21 11:17 Сейчас в теме
(8) Мне "хватило" двух серверов с Windows Server 19 Standard, х64
Примерно полгода различных попыток и мучений, итогом которых каждый раз было одно и то же, неработающий и глючащий RAS. При запуске он вешал сервер. А коллеги, полагаю, хорошо знают, что такое боевой сервер СУБД+приложения, который повесился в рабочее время.
Так что - не, не-не-не. Ни в коем случае.
user790708; +1 Ответить
15. Sedaiko 422 26.08.21 12:10 Сейчас в теме
(9) не, у меня с виндовыми серверам малых компаний другая беда - приходит мальчик-эникей или "чей-то сын" и начинает на том-же сервере Hyper-V или контроллер домена поднимать, а тебе потом - "Сделайте чего-нибудь, ваша 1С хреного работает".
ktb; Yashazz; +2 Ответить
16. Yashazz 4106 26.08.21 12:15 Сейчас в теме
Я смотрю, все такие или умные, или везучие... Ну-ка скажите мне, умные везучие коллеги, что бы вы делали, если простейшая команда запуска RAS напрочь вешает сервер? В журнале регистрации винды - ничего. Просто, ррраз - и насмерть.
Ваши предложения, а?
user790708; +1 Ответить
17. Infactum 302 26.08.21 12:20 Сейчас в теме
(16) Посмотреть техжурнал, снять дамп памяти и на v8 баг отправить.
19. Yashazz 4106 26.08.21 12:30 Сейчас в теме
(17) Вы что подразумеваете под "техжурналом"? ТЖ 1С? И как это можно снять дамп памяти, если машина висит и ни на какие действия rdp не реагирует?
22. Infactum 302 26.08.21 12:42 Сейчас в теме
(19) Обычный техжурнал платформы. RAS ничем не отличается от других компонент и ровно так же генерирует логи.
Приложение из userspace вам всю ОС намертво повесить не сможет - это не драйвер какой-то.
Предположим, что вы реально потеряли доступ по RDP. Но физический доступ к машине то куда делся? Зайти под другим юзером и снять дамп.
Организационные нюансы предлагаю опустить. Я в целом описал подход к расследованию подобных проблем.
ZhdanovR; ktb; khorevaa; Sedaiko; +4 1 Ответить
23. Yashazz 4106 26.08.21 12:51 Сейчас в теме
(22) У вас есть конкретика по настройкам ТЖ именно для RAS? Если на сервере множество баз и процессов, общий ТЖ "обо всём" мгновенно сдохнет, поэтому нужен точный тюнинг.

Физический доступ - ехать в другой город? Не смешно. А под другим юзером зайти тоже не получалось, проверено.

Организационные нюансы предлагаю опустить. Я в целом описал подход к расследованию подобных проблем

Нетушки. "В целом" это мы все умные. Посоветовать ТЖ в двух словах я и сам умею. "Подход", ага.
Дьявол - в деталях. И потом, если RAS, обсуждаемый в теме, просто ваще не запускается и гробит сервер, то тут уж любые нюансы важны.
Иначе это рассуждизм, оторванный от грубой практики.
user790708; +1 2 Ответить
63. Cyberhawk 130 05.09.21 10:07 Сейчас в теме
(23)
конкретика по настройкам ТЖ именно для RAS? Если на сервере множество баз и процессов, общий ТЖ "обо всём" мгновенно сдохнет, поэтому нужен точный тюнинг
Запускать RAS от имени выделенного пользователя ОС, в профиль которого подсунуть файл настройки ТЖ (можно и полный). Он будет иметь приоритет над общим файлом настроек ТЖ и поэтому будет применяться только для процесса RAS: https://its.1c.ru/db/v8315doc#bookmark:adm:TI000000362.
Не сработает только если на хосте используется файл настроек ТЖ в bin конкретного релиза платформы (у него наивысший приоритет), но и в этом случае кажется, что на время можно отказаться от такого расположения, заменив его на общую папку conf.
24. Yashazz 4106 26.08.21 12:54 Сейчас в теме
(17)
v8 баг отправить
А заказчику вы что скажете? Мол, отправили, ждём у моря погоды? Да он разорвёт контракт и прав будет. Ему работать надо, а не ждать, пока 1С почешется багтрекер почитать и тем более оргвыводы сделать.
25. Infactum 302 26.08.21 13:16 Сейчас в теме
(24) Вы только о сиюминутной выгоде думаете? Если вендора не уведомлять о проблемах, которые, судя даже по этой теме, испытывают далеко не все, их скорее всего никогда и не исправят.
Вот как столкнулись, так и собрали детали и отправили баг репорт. Как поступать дальше решаете в зависимости от проекта и договоренностей с заказчиком. Если подходит вариант "не использовать эту фичу и админить через COM" - ваше право и ничего криминального тут не вижу.
JohnyDeath; Xershi; khorevaa; Sedaiko; +4 Ответить
27. Yashazz 4106 26.08.21 13:25 Сейчас в теме
(25) У вас есть конкретика по настройке ТЖ для RAS?
40. Yashazz 4106 27.08.21 13:29 Сейчас в теме
(27) Интересный народ какой нынче. Спросишь конкретику - ответа нету, зато минусуют. Что, где-то в руководствах чётко прописано, как выглядят события RAS, и один я тупой, этого не знаю?

Или все такие на понтах, что отделываются общей фразой "запусти ТЖ", а вдаваться в детали типа ниже достоинства?
44. Yashazz 4106 27.08.21 13:34 Сейчас в теме
(24) Опять же забавно. Есть, выходит, на ИС люди, которым начхать, что заказчик контракт разорвёт и неустойку стребует))) Минусуют такую реплику, стало быть, не согласны))) Ну ничего, ничего. Как в реальности столкнётесь - так вас жизнь живо вразумит мордой об стол))
55. Xershi 1266 28.08.21 00:38 Сейчас в теме
(44) 1с тоже глючит и что тогда?
Всё правильно написали. Если клиент не хочет использовать значит не нужен ему инструмент. Тем более его всегда можно удалить.
Холи вар устроили. Настроек не знаю. Напишите в 1с они пришлют инструкции.
18. Sedaiko 422 26.08.21 12:28 Сейчас в теме
(16)
я в случае винды юзаю сначала этот скрипт:
https://its.1c.ru/db/freshex2#content:331:hdoc
А потом, при изменении платформы меняю путь в реестре. Хотя при последней настройки заюзал mklink
20. Yashazz 4106 26.08.21 12:31 Сейчас в теме
(18) "Спасибо", добрый человек, но не у всех есть полный доступ на ИТС.
21. Sedaiko 422 26.08.21 12:33 Сейчас в теме
(20) обычная ПРОФ подписка, даже не франч
Bukaska; ktb; +2 Ответить
41. пользователь 27.08.21 13:30
Сообщение было скрыто модератором.
...
47. пользователь 27.08.21 14:34
Сообщение было скрыто модератором.
...
49. пользователь 27.08.21 14:35
Сообщение было скрыто модератором.
...
51. ZhdanovR 44 27.08.21 14:40 Сейчас в теме
(49) Причем тут новичок или нет? Если я не размещаю здесь статьи это что-то меняет? Если кто то ворует статью, то и нужно всем так делать? На пиратство Вы всегда можете пожаловаться - это решается всегда быстро.
artbear; ktb; +2 Ответить
52. пользователь 27.08.21 14:42
Сообщение было скрыто модератором.
...
58. Darklight 27 30.08.21 11:28 Сейчас в теме
(16)Что же Вы такой невезучий... (не в обиду будет). Года два юзаю RAS - ни одной проблемы не наблюдаю... но инфраструктура не большая - всего то 8 виндовых серверов 1С на виртуализации. Конечно мой опыт использования RAS мизерный - и да - может просто ещё не до рос до больших проблем...

А что касается надёжности - ну с продуктами 1С увы тут всегда стоило желать лучшего! А RAS - вообще относительно молодая технология...

У COM тоже полно недостатков и своих проблем. И своих костылей - особенно, когда надо работать с серверами разных версий платформы.

А то что службу (или даже просто запустить как приложение) RAS можно вообще вынести на отдельный компьютер, и манипулировать ей отдельно от платформы агента сервера 1С Предприятие - это бесценно.
Как бесценно и то, что можно относительно легко работать через WEB протоколы, в т.ч. с мобильной платформы.
59. Yashazz 4106 30.08.21 13:12 Сейчас в теме
(58)
Что же Вы такой невезучий... (не в обиду будет).
А чёрт его знает. Возможно, пресловутый закон подлости сработал. Причём я ещё, помню, обрадовался, что наконец обернули в язык 1С, можно по-русски писать... А оно вот как (((
26. user1534961 26.08.21 13:19 Сейчас в теме
(25) Сожалею, народ как всегда беспокоится, что костыли для одной убогой старушки снижают качество жизни для всех.. Ничего нового. Просто вам не повезло, что эта старушка - именно ваш клиент.
А повлиять на мотивацию/квалификацию разработчиков, делать/не делать костыли и насколько ухудшится ситуация в целом - вы не в состоянии.
28. Yashazz 4106 26.08.21 13:28 Сейчас в теме
(26) Проблема в том, что я совершенно не уверен в уникальности и единичности старушки. И, думаю, никто не будет уверен.

Поэтому я вижу свою задачу как уведомить коллег о потенциальной проблеме. Рассказать о своём опыте. Предупредить, что возможны грабли. Потому что автор исходной публикации, обсуждая такую серьёзную и критичную для бизнеса тематику, как администрирование многих серверов с помощью одной утилиты, как-то обошёл вниманием надёжность этой утилиты. А она отнюдь не 100% и даже не 90.
29. Infactum 302 26.08.21 13:33 Сейчас в теме
(23) "Физический" доступ - это не всегда значит ехать в другой город. Для таких случаев есть либо местный админ, либо при более серьезном подходе - отдельные устройства для администрирования, зачастую даже с резервным каналом связи.
Про "совсем угробил сервер" я уже выше сказал - уж извините, но опираясь на свои познания ОС, поверить не могу. Тут бессмысленно спорить.
ТЖ по RAS (фильтруем по процессу) можно полный собрать - логи он генерирует не активно. Тем более вам интервал ротации нужен достаточно не большой, раз проблему ловили исключительно при старте.
ZhdanovR; ktb; Sedaiko; khorevaa; +4 Ответить
31. Yashazz 4106 26.08.21 15:18 Сейчас в теме
(29) В случаях, когда "местный админ" совершенно не горит желанием активно помогать - это проблематично.

Полный ТЖ, уж извините, это бред. Это значит просто всё завалить логами. Потому что "ТЖ по RAS" не бывает, ТЖ - он единый, вообще-то. Для фильтра по процессу надо точно знать, как указывать этот фильтр. Я спросил - ответа пока не получил.

Проблема не только в старте. RAS ещё и падает тихо и самопроизвольно. Был - и нету. Ловить такое - нужен период примерно в сутки.
32. khorevaa 97 26.08.21 15:28 Сейчас в теме
(31)
Проблема не только в старте. RAS ещё и падает тихо и самопроизвольно. Был - и нету. Ловить такое - нужен период примерно в сутки.


С падение RAS решается обычным healthcheck... Вообще как бы не проблема...
35. Yashazz 4106 26.08.21 15:52 Сейчас в теме
(32) Подробнее, пожалуйста. Это сервис, который пинает процесс и сообщает, если процесса нет? Или что-то другое?
42. Yashazz 4106 27.08.21 13:31 Сейчас в теме
(32) Автор, эффектно поумничать у вас уже получилось. Теперь давайте конкретно и чётко.

С падение RAS решается обычным healthcheck... Вообще как бы не проблема...

Распишите, как решается. Можно - ссылкой. Можно - прямо тут.
Вы советуете утилиту. Напишите, как контролировать её работоспособность.
33. Infactum 302 26.08.21 15:32 Сейчас в теме
(31) ТЖ можно фильтровать по процессу - все же в документации есть.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
    <log location="C:\Logs\" history="6">
        <event>
            <eq property="process" value="ras"/>
        </event>
        <property name="all"/>
    </log>
</config>
Показать
34. Yashazz 4106 26.08.21 15:50 Сейчас в теме
(33) В документации есть, что value должно быть "ras" и условие именно на равенство?
36. Infactum 302 26.08.21 15:57 Сейчас в теме
(34) Вам просто докопаться хочется или что?
В документации прекрасно написано, как работают отборы ТЖ. Выбираете подходящее поле и условие, получаете профит.
Какое поле за что отвечает (в том числе process), там тоже написано. Даже если есть сомнения - это все проверяется за несколько минут локально.
ovcharenko.di; JohnyDeath; artbear; Sedaiko; ktb; +5 Ответить
37. Yashazz 4106 26.08.21 16:00 Сейчас в теме
(36) Мне надо решить проблему, про которую некоторые утверждают, что "это легкотня", не вдаваясь в подробности.

Укажите, пожалуйста, название книги, а также название раздела (и по возможности, страницу) руководства, где "прекрасно написано" не вообще про ТЖ, а конкретно про RAS.

И заодно объясните, как я могу "проверить локально" работу утилиты, с которой имею дело на чужом сервере через rdp?

Я совершенно серьёзно.
43. Yashazz 4106 27.08.21 13:32 Сейчас в теме
(36) Так что, все поумничали "в общем", а конкретно никто ничего ответить не может? А, господа?
45. Infactum 302 27.08.21 13:46 Сейчас в теме
(43) Я вам рабочий пример ТЖ скинул с фильтром по процессу дал. Никакого иного источника, кроме документации по платформе, для его составления не нужно.

"Проверить локально" подразумевает возможность убедиться, что ТЖ с указанными настройками собирается и корректно фильтруется. Для этого нужен только дистрибутив платформы. Даже лицензии не потребуются.

В остальном, судя по уровню вопросов, вам либо скучно и вы тут в роли троля местного, либо.. как-бы выразится корректнее, у вас проблемы с профессиональными навыками, и не мешало бы по работать над своей квалификацией.
Разжевывать еще сильнее и без того очевидные вещи я вам больше не буду.
ovcharenko.di; olegtymko; artbear; +3 1 Ответить
46. Yashazz 4106 27.08.21 13:51 Сейчас в теме
(45) Я задал конкретные вопросы - например, про значение поля Value и про вид сравнения в фильтре (всегда ли eq). Вы не смогли на них ответить. Следовательно - проблемы с профессиональными навыками у вас. Советую впредь не встревать в дискуссию, если вы кроме общих слов, которых где-то нахватались, ничего реально дельного сказать не можете.
53. artbear 1380 27.08.21 14:42 Сейчас в теме
(46) Предлагаю уже остановиться и не переключаться на оскорбления и наезды на профессиональные навыки. хейтерство должно идти мимо.

Коллеги пытаются помочь и рассказать, что проблемы можно решать, показали способ, как решать, с небольшими примерами.
Они, вообще-то, не обязаны ничего доказывать, если не обещали этого сделать.
54. Yashazz 4106 27.08.21 14:44 Сейчас в теме
(53) Артур, один неточный пример в духе "ну, надо как-то так" - это мало для серьёзного разговора. Вот про стабильность упомянул автор - и никаких подробностей.

То, что любые проблемы можно решать, трюизм)

Я вообще не понимаю, почему в ответ на вопросы по предмету публикации я получил переход на личности. Считаю правильным для модераторов обратить внимание на реплику пользователя Infactum и потребовать извинения за оскорбительную фразу.
38. sdf1979 101 26.08.21 16:22 Сейчас в теме
Копируете каталог платформы в удобное место и из этого каталога запускаете ras. В этом же каталоге в папку conf кладёте logcfg. xml для сбора полного журнала и дампов. Вот и все логирование только по ras. На винде ещё можно настроить сбор wer дампов.
JohnyDeath; CSiER; ktb; Yashazz; +4 Ответить
50. Yashazz 4106 27.08.21 14:38 Сейчас в теме
(38) Дельно, попробую, спасибо.
48. Yashazz 4106 27.08.21 14:34 Сейчас в теме
В общем, я так понял, автор либо не знает, как решать проблемы с RAS, либо не хочет рассказывать.

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

И заметьте, коллеги, как "слились" все те, кого я спрашивал о конкретике. Ничего ровным счётом, кроме общих слов, сказано не было.

и да, давайте, навешайте сюда минусиков за ваше незнание и неумение внятно и точно ответить за ваши же "общие" голословные утверждения)))
56. user612295_death4321 28.08.21 12:50 Сейчас в теме
Вот читаю весь этот диалог и прямо пугаюсь.

Использую RAS на куче серверов своего локального контура, причем использую очень интенсивно, постоянный опрос сессий / баз / кластеров / рабочих серверов начиная от 8.3.3 заканчивая 8.3.18, в том числе и на высоконагруженных контурах.

Единственный глюк который пока ловил с RAS иногда служба самого RAS'a кладется, тьфу-тьфу-тьфу зависаний самого кластера 1С пока не ловил, эксплуатирую его довольно длительное время.

p.s: Всегда следую правилу, чтоб служба RAS, клиент RAC по версии была идентичной службе кластера 1С, в противном случае действительно наблюдались какие то странные глюки.
57. Yashazz 4106 29.08.21 09:32 Сейчас в теме
(56)
иногда служба самого RAS'a кладется
Вот я и попытался разузнать, поборол ли кто эту проблему, и если да, то как; или хотя бы в чём она состоит. Молчание и хамство были мне ответом...
60. Sloth 274 30.08.21 15:50 Сейчас в теме
У меня вопрос, а зачем вообще эта "нашлепка" в виде RAS, к которому подключаемся клиентом (rac)? Почему нельзя сразу к серверу 1С обращаться за необходимыми данными (как это делает RAS по запросу RAC)?
Может кто-то прокомментирует с точки зрения архитектурной схемы? Какие здесь "подводные камни"?
Почему не сто'ит разбирать/реализовывать в подобном ключе протокол взаимодействия ras <-> 1c server?
61. sdf1979 101 01.09.21 18:31 Сейчас в теме
(60)
Если посмотреть пакеты от ras к кластеру на 1540, то увидим там хеш в base64 зашифрованный RSA и ключик где-то внутри платформы. И судя по тому, что хеш меняется, то там есть временная метка.
62. Sloth 274 01.09.21 23:13 Сейчас в теме
(61) ну, а зачем так? Т.е. это типа защита сервера 1С от возможности его "завалить" левыми запросами? Если уж падать, то пусть падает прослойка в виде RAS?
Оставьте свое сообщение

См. также

Тонкий конструктор СКД (Infostart Toolkit)

Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Реализация конструктора СКД с нуля для управляемых форм. Контекстная подсказка для языка выражений СКД и другое.

01.09.2021    3031    Evg-Lylyk    13    

Загрузи это.... или Консольная утилита для загрузки пакетов с releases.1c.ru

Прочие инструменты разработчика Бесплатно (free)

Зайду на сайт releases.1c.ru введу логин/пароль, найду нужную версию и еще пти раза ткну мышкой, чтобы скачать нужный файлик.. и это повторить 3 раза... Надоело?... Мечтаете об одной кнопке? Вам сюда.

26.08.2021    1228    khorevaa    31    

Infostart Toolkit – инструмент, в котором сделано то, что давно просят от 1С

Прочие инструменты разработчика v8 Бесплатно (free)

Лауреат Infostart Awards-2019, ведущий разработчик инструментов Infostart Toolkit Евгений Люлюк рассказывает о том, как развивается, какие задачи закрывает и какие проблемы решает представляемый им набор инструментов разработчика.

09.06.2021    6154    Evg-Lylyk    5    

Редактор кода, запроса, ... Infostart Toolkit (интеграция с MS Monaco)

Консоль запросов Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Бесплатно (free)

Контекстная подсказка, подцветка синтаксиса в тонком клиенте. В платформе 1С редактор кода на управляемых формах обладает нулевой функциональностью, интеграция с MS Monaco позволяет запустится просто в космос.

28.05.2021    5718    Evg-Lylyk    14    

re: Flowcon

О жизни Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Flowcon возвращается.

28.04.2021    2317    1c-intelligence    26    

10 полезных, но малоизвестных возможностей IS Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

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

23.04.2021    2992    Evg-Lylyk    0    

Редактор схемы компоновки для тонкого клиента

Прочие инструменты разработчика v8 Бесплатно (free)

Аналог платформенного конструктора схемы компоновки данных для работы в тонком клиенте. Входит в состав набора "Универсальные инструменты 1С"

08.03.2021    3998    cprit    26    

Структура запроса (Infostart Toolkit)

Консоль запросов Прочие инструменты разработчика v8 v8::Запросы 1cv8.cf Бесплатно (free)

Описание механизма разбора запроса на части (дерево), используемого в IS Toolkit и Управляемой консоли отчетов

02.03.2021    2501    Evg-Lylyk    7    

Работа с СКД в продукте "Infostart Toolkit"

Прочие инструменты разработчика v8 v8::СКД Бесплатно (free)

Infostart Toolkit обладает большим количеством уникальных возможностей для работы с СКД – это анализ исполняемых текстов запросов, работа с внешними источниками в схеме СКД, получение данных в отладке и многое другое. Обо всех этих возможностях рассказал разработчик продукта Евгений Люлюк.

24.12.2020    3153    Evg-Lylyk    2    

Отладка в Infostart Toolkit

Консоль запросов Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Отладка запросов, схем компоновки данных, просмотр содержимого менеджера временных таблиц.

05.11.2020    4394    Evg-Lylyk    16    

paste1c.ru - сервис для обмена кодом для 1С:Предприятия

Прочие инструменты разработчика v8 Бесплатно (free)

Paste1C.ru - сервис для обмена кодом для 1С:Предприятия c подсветкой синтаксиса и подсказками.

21.08.2020    6849    salexdv    52    

Редактор HTML

Инструментарий разработчика Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Инструмент из состава набора "Универсальные инструменты 1С" для быстрой адаптации html страниц для корректного отображения в Поле HTML документа

03.08.2020    3357    cprit    3    

Консоль кода и зачем она нужна

Прочие инструменты разработчика v8 Бесплатно (free)

Когда использовать, обзор консолей кода: плюсы - минусы.

27.07.2020    7235    Evg-Lylyk    50    

Шпаргалка. Автоматическое тестирование внешних отчетов и обработок в нескольких информационных базах

Прочие инструменты разработчика v8 Бесплатно (free)

Используем Автоматизированное тестирование на практике. Простой код для обновления и запуска внешних отчетов и обработок в нескольких ИБ. Создаем рабочее решение с нуля.

02.05.2020    5540    pparshin    21    

Управляемая консоль отчетов – новый функциональный инструмент для работы с запросами и СКД в управляемых формах

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    12325    Evg-Lylyk    2    

Фреймворк для создания бизнес web-приложений

Прочие инструменты разработчика Бесплатно (free)

Для создания систем, решающих узкие бизнес задачи, использовать 1С бывает нецелесообразно. Хочу представить альтернативу - web фреймворк katejs. Будет интересно также тем, кто интересуется web разработкой на современном javascript.

15.10.2019    6007    nep_i    25