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

Администрирование - Системное

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

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

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

Пример запуска скрипта из командной строки: 
oscript ".\src\СчиталкаСеансов.os" "C:\Program Files\1cv8\8.3.9.2170\bin\rac.exe" "myRASservice:1545" "infobaseName" elastic.server.local

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

49

Скачать файлы

Наименование Файл Версия Размер
Скрипт сбора параметров текущих сеансов 1С с отправкой в Elastic search
.os 15,46Kb
02.11.17
21
.os 15,46Kb 21 Скачать

См. также

Комментарии
Сортировка: Древо
1. fishca 1112 30.10.17 13:12 Сейчас в теме
Звезданул :)
dj_serega; sergey.novikov; +2 Ответить
2. Evil Beaver 5183 30.10.17 13:15 Сейчас в теме
НЯ!!!

А за односкрипт - тройное НЯ (два коротких, одно длинное) !!!
sergey.novikov; +1 Ответить
3. sergey.novikov 30.10.17 13:47 Сейчас в теме
(2)спс, надо это дело до opm еще допилить, вчера уже лень было
4. comol 3624 31.10.17 01:07 Сейчас в теме
Велосипед? ЦКК не пробовали для этого использовать?
mitia.mackarevich; +1 3 Ответить
5. sergey.novikov 31.10.17 04:39 Сейчас в теме
(4)это же бесплатный велосипед ;)
Labotamy; +1 Ответить
6. artbear 1048 31.10.17 10:23 Сейчас в теме
(4) ЦКК? :( ни о чем, трудно расширить, трудно доработать и т.п.
Bronislav; sergey.novikov; +2 Ответить
9. comol 3624 31.10.17 19:27 Сейчас в теме
(6) Зачем расширять и дорабатывать средство МОНИТОРИНГА. Более того зачем его ПИСАТЬ? О_о...
11. artbear 1048 31.10.17 20:08 Сейчас в теме
(9) Интересно, почему же так много средств мониторинга-то?
и постоянно добавляются новые метрики, адаптеры и прочее?
sergey.novikov; +1 Ответить
36. Labotamy 03.12.17 00:27 Сейчас в теме
Хочу собирать статистику по сеансам/соединениям в ELK. Варианты?
7. Silverbulleters 31.10.17 11:13 Сейчас в теме
(4) Напомни пожалуйста сколько денежков стоит этот ваш ЦКК.

(0) злыдни - чего только не сделаешь чтобы beats не писать.
sergey.novikov; +1 Ответить
8. sergey.novikov 31.10.17 14:25 Сейчас в теме
(7) ЦКК 108 000 или в районе, но дело даже не в цене, это как из пушки по воробьям же стрелять
viptextil1; artbear; +2 Ответить
10. comol 3624 31.10.17 19:30 Сейчас в теме
(7) (8) Просто если уж заниматься то наверное полноценным чем-то...
12. sergey.novikov 31.10.17 21:22 Сейчас в теме
(10) Олег, это простой ответ на простой вопрос. Зачем писать для этого тысячи строк кода?
13. sergey.novikov 31.10.17 21:27 Сейчас в теме
(10)этот скрипт логично сравнивать с консолью, но не КИП. Что неполноценного в консоле-то?
14. comol 3624 01.11.17 00:03 Сейчас в теме
(13) Ну согласен согласен... не велосипед а бесплатный и интересный скейтборд :)
sergey.novikov; +1 Ответить
38. asved.ru 35 16.01.18 16:49 Сейчас в теме
(4) ЦКК по сравнению со специализированными инструментами довольно плохой визуализатор. Я оттуда все, что хочу видеть на графиках, кидаю в Zabbix.
15. blackhole321 727 01.11.17 13:41 Сейчас в теме
А в чем преимущество Вашего подхода, по сравнению с использованием COM объектов из 1С или PowerShell или vbs?
Ведь это административные задачи, а знание PowerShell и vbs для администратора - must have. Хотелось бы понять, что получает администратор взамен времени, потраченного на изучение Вашего продукта?
17. sergey.novikov 01.11.17 14:01 Сейчас в теме
(15) Продуктом я бы не стал называть 300 строчек кода ;)
А про преимущества оскрипта у авторов лучше почитать https://habrahabr.ru/post/301064/
Ну про кибану и эластик мы тут не говорим, верно?
18. blackhole321 727 01.11.17 14:13 Сейчас в теме
(16)
Да, про кибану и эластик не говорим, интерес представляет сам 1Script как среда автоматизации. Поскольку Вы ее используете, хотелось бы получить информацию из первых рук, почему Вы выбрали именно этот продукт для решения задачи мониторинга сессий из всего многообразия возможных вариантов.
19. sergey.novikov 01.11.17 14:28 Сейчас в теме
(18) скажем, что мне нужен скрипт который будет работать одинаково как в windows, так и в linux.
Ну и 1с у меня "родной" язык ;)
22. blackhole321 727 01.11.17 14:43 Сейчас в теме
(19) Ну если только Вы хотите иметь один и тот же скрипт на Linux и на windows, однако из за различий в системах в общем случае они по всей видимости будут различными, даже написанные на одном языке.
24. TODD22 17 01.11.17 15:17 Сейчас в теме
(22)
почему Вы выбрали именно этот продукт для решения задачи мониторинга сессий

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

Хотя мне кажется тот же Python освоить не сложно, профита больше и не варишься в одной технологии. Пользовался Оскриптом, но перешёл на Python.
20. blackhole321 727 01.11.17 14:36 Сейчас в теме
Напишите ваше сообщение
(16)
Спасибо за ссылку, статью прочел. Как то несколько странно читать, что одноэсники не в состоянии чего либо освоить кроме 1С :)
21. artbear 1048 01.11.17 14:42 Сейчас в теме
(20)Освоить можно все, весь вопрос в использовании этих знаний.
Я сам периодически давно работал на VBS, JS и Powershell (много лет)
у меня даже был завершенный спец.проект на Powershell по релизному управлению базами 1С на розничных точках по всей стране.

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

При возвращении к Powershell каждый раз приходится вспоминать как сам язык и его особенности, так и команды и объекты библиотек :(
Это реально мешает в решении задач.
sergey.novikov; +1 Ответить
25. blackhole321 727 01.11.17 15:24 Сейчас в теме
(21)Не могли бы Вы кратко очертить круг задач, которые Вы решаете с использованием данного инструмента?
Я правильно понимаю, что язык - это не копия 1С и там есть свои конструкции, расширения и библиотеки, основанные на классах .NET, и чтобы использовать его в более менее сложных задачах Вам необходимо создавать и использовать классы .NET?
26. artbear 1048 01.11.17 15:49 Сейчас в теме
(25)Есть поддержка большинства типовых объектов библиотеки 1С - Массив, Соответствие и т.п.
Нет поддержки прикладной модели 1С - справочники, документы и т.п., т.е. то, что мы видим в Конфигураторе

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

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

.NET-классы также можно юзать, если это нужно.
sergey.novikov; +1 Ответить
27. blackhole321 727 01.11.17 17:34 Сейчас в теме
(26)
Скачал скрипт, посмотрел. Честно говоря чувства смешанные :) т.к. 90% скрипта на PowerShell уложатся в десяток строк.
Чтобы не мудрствовать лукаво, взял за основу https://infostart.ru/public/202805/ , скопипастил, подрихтовал и оттестировал.

Как пример - соединение с сервером и получение данных о сессиях:
$V8XCom = New-Object -COMObject "V83.COMConnector"

$СтрокаПодключения = "tcp://localhost:1540"
$АгентСервера = $V8XCom.ConnectAgent($СтрокаПодключения)

$Кластеры = $АгентСервера.GetClusters()
$ВыбранныйКластер = $Кластеры[0]

$ИмяПользователя = "Администратор"
$Пароль = "123456"
$АгентСервера.Authenticate($ВыбранныйКластер, $ИмяПользователя, $Пароль) 

$Сессии = $АгентСервера.GetSessions($ВыбранныйКластер)

# Группируем, анализируем, сохраняем в БД etc.
# ...
Показать


Я понимаю, что это не кроссплатформенно и все же.

Посмотрел функцию ЗапуститьПроцесс (надеюсь, Вы не будете возражать, если я скопирую ее в сообщение)

Функция ЗапуститьПроцесс(Знач СтрокаВыполнения)
	Перем ПаузаОжиданияЧтенияБуфера;
	
	ПаузаОжиданияЧтенияБуфера = 1;
	
	Процесс = СоздатьПроцесс(СтрокаВыполнения,,Истина);
	Процесс.Запустить();
	
	Текст = Новый ТекстовыйДокумент;

	Пока Истина Цикл

		ВывестиДанныеПроцесса(Процесс, Текст);

		Если Процесс.Завершен Тогда
			Процесс.ОжидатьЗавершения(); // финальный сброс буферов
			ВывестиДанныеПроцесса(Процесс, Текст);
			Прервать;
		КонецЕсли;

		Приостановить(ПаузаОжиданияЧтенияБуфера);
		
	КонецЦикла;

	Если Процесс.КодВозврата = 0 Тогда
	Иначе
		Текст.ВставитьСтроку(1, "Сообщение от RAS/RAC: "); 
		ВызватьИсключение Текст.ПолучитьТекст();
	КонецЕсли;	
	
	Возврат Текст;

КонецФункции
Показать


Я правильно понимаю, что СоздатьПроцесс() и дальнейшие манипуляции - это и есть расширения библиотеки т.е. фактически создание класса .NET System.Diagnostics.Process (https://msdn.microsoft.com/ru-ru/library/system.diagnostics.process(v=vs.110).aspx) и мне необходимо изучать все эти расширения?
28. sergey.novikov 01.11.17 21:24 Сейчас в теме
(27) не очень понял про смешанные чувства, и чем пара строк powershella короче пары строк на 1с? )))
29. blackhole321 727 01.11.17 22:41 Сейчас в теме
(28)Дык в том то и дело, что там не пару строк (в скрипте из публикации). Если я правильно понял его содержание, там происходит запуск консольного приложения, отлавливается его вывод (stdout), а дальше происходит его парсинг. И 80% скрипта из 300 строк существуют для реализации этого функционала. Соответственно возникает вопрос, что быстрее и дешевле, написать и отладить 10 строк на PowerShell или vbs или 200 на 1Script. К тому же если я правильно понимаю, для более менее серьезного взаимодействия с внешним миром необходимо использовать .NET. Это приводит к тому, что необходимо изучать некие дополнительные библиотеки, встроенные в язык, либо библиотеки .NET или прикладные COM об'екты. Поэтому возникают смешанные чувства, от непонимания преимуществ, кроме как русскоязычный синтаксис похожий на синтаксис 1С (что при прямом использовании классов .NET скорее не плюс т.к. имена методов и свойств англоязычные). Конечно это мое сугубо личное мнение и оно не подвергает сомнению ценность проекта, однако по моим первым впечатлениям, эта ценность лежит в плоскостях отличных, от задач администрирования etc.
30. sergey.novikov 01.11.17 23:03 Сейчас в теме
(29) моя реализация не требует регистрации Com-компонент. Давайте усложним задачу, что если у вас на одной машине установлены серверы 1с 8.2 и 8.3 и вы хотите следить за потреблениями сеансами памяти, что бы проактивно определять проблему? Тогда пляски с comcntr.dll и коэффициэнт wtf перевесит чашу весов ;)
31. blackhole321 727 02.11.17 08:28 Сейчас в теме
(30)
Ну давайте усложним. Я воспользуюсь методом, описанным https://infostart.ru/public/685924/ и поменяю тип при создании com об'екта.
32. sergey.novikov 02.11.17 09:56 Сейчас в теме
33. blackhole321 727 02.11.17 11:38 Сейчас в теме
(32)
И Вам удачи, спасибо за уделенное мне время и извините если что не так :).
34. comol 3624 03.11.17 23:34 Сейчас в теме
(21)
При возвращении к Powershell каждый раз приходится вспоминать как сам язык и его особенности

При возвращении к PowerShell Каждый раз хочется удариться головой об стенку и биться об неё пока все воспоминания об этом хм... "языке" не выйдут из головы. По синтаксису c PowerShell может сравниться разве что BrainFuck. Если мне нужно что-то тяжелое и сложное я проще на C# программку накидаю, если что-то простое - напишу bat-ник. Что-то среднее, заюзаю WSH. Но Microsoft усиленно впихивает нам в глотку PowerShell... Добавляю туда админки SQL и Exchange.
Иногда так и хочется плюнуть и сказать - "стану .... линуксоидом" :) (с)
35. blackhole321 727 05.11.17 11:13 Сейчас в теме
(34)Довольно мм... необычное на мой взгляд мнение для человека, который использует c# и wsh :) Вы не сгущаете краски:)?
37. Evil Beaver 5183 16.01.18 15:19 Сейчас в теме
(34) Олег, может ты все-таки перейдешь уже на односкрипт? ;)
39. comol 3624 16.01.18 19:48 Сейчас в теме
(37) Да я что-то смотрю какое-то засилье OneScript на Infostart-e :). Даж потроллить хочется :)
Нет! Я не 1С-ник :) я это могу сделать на C#, bat, wsh.
А недавно я тут сортировку пузырьком на haskell написал :))) Теперь мне даже 1С не страшен :)))
23. sergey.novikov 01.11.17 15:15 Сейчас в теме
(20) Артур ниже отлично ответил
40. ImHunter 21 24.04.18 08:18 Сейчас в теме
Какие-то непонятки:( В elastic'е в итоге вижу значительно меньше записей о сеансах. По консоли 1С и по логу скрипта - их >50, а в elastic'е до 10, не более...
Будет время - поразбираюсь.
41. ImHunter 21 24.04.18 09:55 Сейчас в теме
А, нет. Почти норм. Дело в смещении времени.
sergey.novikov; +1 Ответить
42. ImHunter 21 25.04.18 19:11 Сейчас в теме
(0) А проконсультируй плз - как сделать в Кибане чарт с видами приложений (как в картинке публикации).
Там ведь типа "Срез последних" нужно получить и по нему вывести данные. Сходу не осилил...(
43. sergey.novikov 26.04.18 19:05 Сейчас в теме
(42)А в кибане есть отдельный регулятор периода, крутишь его (за какой период необходимо агрегировать данные, и все ок)
44. ImHunter 21 27.04.18 06:47 Сейчас в теме
(43) Направление понял. Но сходу опять не получилось;) Ладно, разберусь позже.
Наверное, доделаю еще скрипт, чтобы индекс по месяцам разбивал.
45. user634257_mryzhov 07.06.18 11:52 Сейчас в теме
А может есть у кого готовые визуализации для кибаны по этому набору данных?
46. sergey.novikov 07.06.18 17:20 Сейчас в теме
(45) Использую графану для графиков и диаграмм, в кибану хожу только, если надо сырые данные посмотреть.
Оставьте свое сообщение