Скрипт сбора параметров текущих сеансов 1С с отправкой в Elastic search



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

Скрипт на oscript. Выполняет обращение к службе RAS, собирает информацию о текущих сеансах указанной информационной базы и отправляет их в Elasticsearch. 

Дальше можно агрегировать любую аналитику как по количеству сеансов, так и в других разрезах (тип клиента, длительность и пр.)

Пример запуска скрипта из командной строки: 
oscript ".srcСчиталкаСеансов.os" "C:Program Files1cv88.3.9.2170in
ac.exe" "myRASservice:1545" "infobaseName" elastic.server.local

Проверено на версии платформы 8.3.9.2170.

46 Comments

  1. fishca

    Звезданул 🙂

    Reply
  2. Evil Beaver

    НЯ!!!

    А за односкрипт — тройное НЯ (два коротких, одно длинное) !!!

    Reply
  3. sergey.novikov

    (2)спс, надо это дело до opm еще допилить, вчера уже лень было

    Reply
  4. sergey.novikov

    (4)это же бесплатный велосипед 😉

    Reply
  5. artbear

    (4) ЦКК? 🙁 ни о чем, трудно расширить, трудно доработать и т.п.

    Reply
  6. Silverbulleters

    (4) Напомни пожалуйста сколько денежков стоит этот ваш ЦКК.

    (0) злыдни — чего только не сделаешь чтобы beats не писать.

    Reply
  7. sergey.novikov

    (7) ЦКК 108 000 или в районе, но дело даже не в цене, это как из пушки по воробьям же стрелять

    Reply
  8. comol

    (6) Зачем расширять и дорабатывать средство МОНИТОРИНГА. Более того зачем его ПИСАТЬ? О_о…

    Reply
  9. comol

    (7) (8) Просто если уж заниматься то наверное полноценным чем-то…

    Reply
  10. artbear

    (9) Интересно, почему же так много средств мониторинга-то?

    и постоянно добавляются новые метрики, адаптеры и прочее?

    Reply
  11. sergey.novikov

    (10) Олег, это простой ответ на простой вопрос. Зачем писать для этого тысячи строк кода?

    Reply
  12. sergey.novikov

    (10)этот скрипт логично сравнивать с консолью, но не КИП. Что неполноценного в консоле-то?

    Reply
  13. comol

    (13) Ну согласен согласен… не велосипед а бесплатный и интересный скейтборд 🙂

    Reply
  14. blackhole321

    А в чем преимущество Вашего подхода, по сравнению с использованием COM объектов из 1С или PowerShell или vbs?

    Ведь это административные задачи, а знание PowerShell и vbs для администратора — must have. Хотелось бы понять, что получает администратор взамен времени, потраченного на изучение Вашего продукта?

    Reply
  15. sergey.novikov

    (15) Продуктом я бы не стал называть 300 строчек кода 😉

    А про преимущества оскрипта у авторов лучше почитать https://habrahabr.ru/post/301064/

    Ну про кибану и эластик мы тут не говорим, верно?

    Reply
  16. blackhole321

    (16)

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

    Reply
  17. sergey.novikov

    (18) скажем, что мне нужен скрипт который будет работать одинаково как в windows, так и в linux.

    Ну и 1с у меня «родной» язык 😉

    Reply
  18. blackhole321

    Напишите ваше сообщение

    (16)

    Спасибо за ссылку, статью прочел. Как то несколько странно читать, что одноэсники не в состоянии чего либо освоить кроме 1С 🙂

    Reply
  19. artbear

    (20)Освоить можно все, весь вопрос в использовании этих знаний.

    Я сам периодически давно работал на VBS, JS и Powershell (много лет)

    у меня даже был завершенный спец.проект на Powershell по релизному управлению базами 1С на розничных точках по всей стране.

    Основная проблема — если пользоваться языком/средой периодически, то знания забываются.

    При возвращении к Powershell каждый раз приходится вспоминать как сам язык и его особенности, так и команды и объекты библиотек 🙁

    Это реально мешает в решении задач.

    Reply
  20. blackhole321

    (19) Ну если только Вы хотите иметь один и тот же скрипт на Linux и на windows, однако из за различий в системах в общем случае они по всей видимости будут различными, даже написанные на одном языке.

    Reply
  21. sergey.novikov

    (20) Артур ниже отлично ответил

    Reply
  22. TODD22

    (22)

    почему Вы выбрали именно этот продукт для решения задачи мониторинга сессий

    Общее владение кодом в команде если в ней все 1сники. Не нужно учить всем другие языки. Здесь дело не в том что кто то не сможет. А в том что если в команде 10 человек и VBA из всех владеет только один то как то не логично делать часть работы на VBA если есть общий инструмент.

    Хотя мне кажется тот же Python освоить не сложно, профита больше и не варишься в одной технологии. Пользовался Оскриптом, но перешёл на Python.

    Reply
  23. blackhole321

    (21)Не могли бы Вы кратко очертить круг задач, которые Вы решаете с использованием данного инструмента?

    Я правильно понимаю, что язык — это не копия 1С и там есть свои конструкции, расширения и библиотеки, основанные на классах .NET, и чтобы использовать его в более менее сложных задачах Вам необходимо создавать и использовать классы .NET?

    Reply
  24. artbear

    (25)Есть поддержка большинства типовых объектов библиотеки 1С — Массив, Соответствие и т.п.

    Нет поддержки прикладной модели 1С — справочники, документы и т.п., т.е. то, что мы видим в Конфигураторе

    т.е. в скриптах 1скрипт мы работает с теми же хорошо известными нам классами 1С.

    Есть и расширения библиотек — например, добавлены регулярные выражения и другое.

    Но это не расширения языка, а именно расширения библиотек.

    .NET-классы также можно юзать, если это нужно.

    Reply
  25. blackhole321
    Reply
  26. sergey.novikov

    (27) не очень понял про смешанные чувства, и чем пара строк powershella короче пары строк на 1с? )))

    Reply
  27. blackhole321

    (28)Дык в том то и дело, что там не пару строк (в скрипте из публикации). Если я правильно понял его содержание, там происходит запуск консольного приложения, отлавливается его вывод (stdout), а дальше происходит его парсинг. И 80% скрипта из 300 строк существуют для реализации этого функционала. Соответственно возникает вопрос, что быстрее и дешевле, написать и отладить 10 строк на PowerShell или vbs или 200 на 1Script. К тому же если я правильно понимаю, для более менее серьезного взаимодействия с внешним миром необходимо использовать .NET. Это приводит к тому, что необходимо изучать некие дополнительные библиотеки, встроенные в язык, либо библиотеки .NET или прикладные COM об’екты. Поэтому возникают смешанные чувства, от непонимания преимуществ, кроме как русскоязычный синтаксис похожий на синтаксис 1С (что при прямом использовании классов .NET скорее не плюс т.к. имена методов и свойств англоязычные). Конечно это мое сугубо личное мнение и оно не подвергает сомнению ценность проекта, однако по моим первым впечатлениям, эта ценность лежит в плоскостях отличных, от задач администрирования etc.

    Reply
  28. sergey.novikov

    (29) моя реализация не требует регистрации Com-компонент. Давайте усложним задачу, что если у вас на одной машине установлены серверы 1с 8.2 и 8.3 и вы хотите следить за потреблениями сеансами памяти, что бы проактивно определять проблему? Тогда пляски с comcntr.dll и коэффициэнт wtf перевесит чашу весов 😉

    Reply
  29. blackhole321

    (30)

    Ну давайте усложним. Я воспользуюсь методом, описанным https://infostart.ru/public/685924/ и поменяю тип при создании com об’екта.

    Reply
  30. sergey.novikov

    (31) желаю удачи

    Reply
  31. blackhole321

    (32)

    И Вам удачи, спасибо за уделенное мне время и извините если что не так :).

    Reply
  32. comol

    (21)

    При возвращении к Powershell каждый раз приходится вспоминать как сам язык и его особенности

    При возвращении к PowerShell Каждый раз хочется удариться головой об стенку и биться об неё пока все воспоминания об этом хм… «языке» не выйдут из головы. По синтаксису c PowerShell может сравниться разве что BrainFuck. Если мне нужно что-то тяжелое и сложное я проще на C# программку накидаю, если что-то простое — напишу bat-ник. Что-то среднее, заюзаю WSH. Но Microsoft усиленно впихивает нам в глотку PowerShell… Добавляю туда админки SQL и Exchange.

    Иногда так и хочется плюнуть и сказать — «стану …. линуксоидом» 🙂 (с)

    Reply
  33. blackhole321

    (34)Довольно мм… необычное на мой взгляд мнение для человека, который использует c# и wsh 🙂 Вы не сгущаете краски:)?

    Reply
  34. Labotamy

    Хочу собирать статистику по сеансам/соединениям в ELK. Варианты?

    Reply
  35. Evil Beaver

    (34) Олег, может ты все-таки перейдешь уже на односкрипт? 😉

    Reply
  36. asved.ru

    (4) ЦКК по сравнению со специализированными инструментами довольно плохой визуализатор. Я оттуда все, что хочу видеть на графиках, кидаю в Zabbix.

    Reply
  37. comol

    (37) Да я что-то смотрю какое-то засилье OneScript на Infostart-e :). Даж потроллить хочется 🙂

    Нет! Я не 1С-ник 🙂 я это могу сделать на C#, bat, wsh.

    А недавно я тут сортировку пузырьком на haskell написал :))) Теперь мне даже 1С не страшен :)))

    Reply
  38. ImHunter

    Какие-то непонятки:( В elastic’е в итоге вижу значительно меньше записей о сеансах. По консоли 1С и по логу скрипта — их >50, а в elastic’е до 10, не более…

    Будет время — поразбираюсь.

    Reply
  39. ImHunter

    А, нет. Почти норм. Дело в смещении времени.

    Reply
  40. ImHunter

    (0) А проконсультируй плз — как сделать в Кибане чарт с видами приложений (как в картинке публикации).

    Там ведь типа «Срез последних» нужно получить и по нему вывести данные. Сходу не осилил…(

    Reply
  41. sergey.novikov

    (42)А в кибане есть отдельный регулятор периода, крутишь его (за какой период необходимо агрегировать данные, и все ок)

    Reply
  42. ImHunter

    (43) Направление понял. Но сходу опять не получилось;) Ладно, разберусь позже.

    Наверное, доделаю еще скрипт, чтобы индекс по месяцам разбивал.

    Reply
  43. user634257_mryzhov

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

    Reply
  44. sergey.novikov

    (45) Использую графану для графиков и диаграмм, в кибану хожу только, если надо сырые данные посмотреть.

    Reply
  45. ImHunter

    Обновил OScript. И считалка малость поломалась. В ней написана своя ф-ия ЗаписатьJSON, а появилась встроенная процедура ЗаписатьJSON.

    Переименовал ф-ию скрипта ЗаписатьJSON -> ВнутрЗаписатьJSON и поправил два места использования этой функции.

    Reply
  46. sergey.novikov

    (47) Да, тоже на это натыкался, спасибо

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *