Closed tiresias0din closed 1 year ago
Все сервисы ras работают на разных портах? Центральные сервера указанных кластеров на одном физическом сервере?
Когда устанавливал ras, сажал все версии в пул портов, под каждый кластер отдельно.
Выглядит так .......................................... @echo off rem %1 - полный номер версии 1С:Предприятия set CtrlPort=1540 set AgentName=localhost set RASPort=1545 set SrvcName="!ras_1545" set BinPath="\"C:\Program Files\1cv8\8.3.13.1513\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%" set Desctiption="!ras_1545_8.3.13.1513" sc stop %SrvcName% sc delete %SrvcName% sc create %SrvcName% binPath= %BinPath% start= auto displayname= %Desctiption% ........................................... @echo off rem %1 - полный номер версии 1С:Предприятия set CtrlPort=2540 set AgentName=localhost set RASPort=2545 set SrvcName="!ras_2545" set BinPath="\"C:\Program Files\1cv8\8.3.18.1520\bin\ras.exe\" cluster --service --port=%RASPort% %AgentName%:%CtrlPort%" set Desctiption="!ras_2545_8.3.18.1520" sc stop %SrvcName% sc delete %SrvcName% sc create %SrvcName% binPath= %BinPath% start= auto displayname= %Desctiption% ........................................... И так далее
Центральные сервера на которых БД, на других серверах в той же сети, у каждого такого сервера настроено обращение к центральному серверу лицензий
Что-то в этой схеме меня смущает, возможно я что-то не понимаю до конца ...
При таком подходе, у вас все получится без каких-либо усилий, если RAS работает на одинаковом порту (например 1545) на всех центральных серверах!
Именно из такой логики исходит скрипт собирающий информацию о лицензиях. Он из списка процессов формирует список центральных серверов кластеров, в которых участвует сервер лицензирования, и потом обращается по имени найденного сервера и порту, указанному в макросе {$RAS_PORT}
к сервису RAS, "обслуживающему" данный центральный сервер.
Для того чтобы иметь сбоор метрик в "разрезе" кластеров, необходимо включить обнаружение кластеров на узле наблюдаения в zabbix
С ras я мог не до конца изучить вопрос. Службы я подготовил, но на сервере лицензирования пока не ставил.
Мне надо уточнить.
Серверов у нас много, и на каждом развернут свой кластер в кол-ве от 1 до 5шт.
Все центра. кластеры обращаются к одному серверу лицензирования.
На сервере лицензирования подняты кластеры. Если нацеливаю шаблон на него, с одного кластера вижу общее кол-во отданных лицензий. Но это с одного, так ведь?
Что сейчас я могу сделать? Я зашел на центральные сервера, служба ras здесь развернута в единственном экземпляре. Каким шаблоном целить в узел? И в какой? Например я сначала пробовал нацелить на центральный сервер шаблон 1C Enterprise License Server, и включить в правилах обнаружения [1С/Лицензии] Кластеры По умолчанию я вижу график, который показывает только с одного кластера, и не берет в расчет другие
Далее я проделал туже операцию на сервере лицензирования
При добавлении кластерной, в узле центрального сервера появляется такой график, использованные лицензии не показывает, а при активации [1С/Лицензии] Кластеры на сервере лицензии, график не рисуется вовсе
Настройки макросов, служба запущена от самой ОС
Как результат мне бы хотелось видеть общее кол-во лицензий, что отдает сервер лицензирования на узле сервера лицензий
Каким шаблоном целить в узел? И в какой? Например я сначала пробовал нацелить на центральный сервер шаблон 1C Enterprise License Server, и включить в правилах обнаружения [1С/Лицензии] Кластеры
Шаблон 1C Enterprise License Server надо "вешать" на узел, который является сервером лицензирования (вроде логично из названия)!
На центральных серверах должны быть RAS для своих кластеров со своей версией платформы! На всех центральных RAS должен работать на одинаковом порту.
В заббиксе для сервера лицензирования вы в макросе {$RAS_PORT}
указываете порт на котором запущен RAS на центральных серверах. Если он стандартный 1545, то ничего менять не надо!
После того, как отработает обнаружение по кластерам на сервере лицензирования, в zabbix-е будут "собираться"/отображатся данные в разрезе кластеров ...
Серверов у нас много, и на каждом развернут свой кластер в кол-ве от 1 до 5шт.
Упустил этот момент ... Если у вас на одном центральном сервере несколько служб 1С разных версий, то простого решения ситуации у меня пока нет, увы ...
Будут ли какие-то в принципе предложения? До этого ограничивался подсчетом смотря в самом кластере, сколько идет обращений к серверу лицензий
Будут ли какие-то в принципе предложения?
Нужны архитектурные изменения "шаблона", полагаю ... Для такого сценария "малой кровью" не обойдешься :/
Можно попробовать создать несколько узлов для сервера лицензирования и указывать у них разные значения макроса {$RAS_PORT}
, но, наверное, такое себе "решение" ...
Мне в принципе любой вариант подойдет которым удобно просматривать было бы именно кол-во задействованных лицензий с сервера лицензирования с такого-то порта
Чтобы понимать, как скоро упремся в потолок.
Раньше я пробовал завести один и тот-же узел меняя макрос, но он ничего не добавляет
Другой вариант несколько агентов, но тут я ограничен двумя агентами.
Раньше я пробовал завести один и тот-же узел меняя макрос, но он ничего не добавляет
Тогда надо все эелементы данных и обнаружения перевести с активного агента на обычного
Попробовал сделать следующее
а после создать доп несколько узлов таких-же, поменял порт макроса на каждом
в качестве примера
но он отображает 0левое значение за все время существования на этих узлах.
Кроме первого, 1ый продолжает исправно функционировать.
если вы на севере лицензировния запускаете скрипт по типу
$ 1c_license_server.sh used 1545 1.5
$ 1c_license_server.sh used 2545 1.5
$ 1c_license_server.sh used 3545 1.5
...
Каков вывод в каждом из случаев?
1ый продолжает исправно функционировать.
С каким значеним макроса?
По порту 2545 иногда тоже значения по 0м, выдает. Он и работает исправно, имеет только унаследованные макросы, в нем я выставлял порт 2545.
Сразу оговорюсь, что лицензии он с этого сервера точно берет и по другим портам, о чем свидетельствуют центральные кластеры, где в сессиях пользователей прописан этот сервер лицензирования.
Все, я понял в чем "косяк" В текущей реализации данная схема работать не будет, так как кэш кластеров будет один для всех вариантов и будет постоянно затираться данными полученными для разных ras Надо подумать как исключить такую "коллизию"
К сожалению самому мозгов пока не хватит и времени в это вникнуть, и как это все переделать. Так что буду ждать обновлений от Вас, если они предвидятся конечно.
В дополнение к #72
Я по итогу сделал мониторинг сессий в разрезе разных RAS основываясь на старом шаблоне из интернета. Дописал скрипт на питоне и перевел. Если кому надо, пишите, поделюсь.
Вот был этот проект. Инструкция тут не полная и работает только на одном порту. https://github.com/kulpin74/zabbix-1c
Я по итогу сделал мониторинг сессий в разрезе разных RAS основываясь на старом шаблоне из интернета. Дописал скрипт на питоне и перевел.
А модель работы какая? Несколько узлов наблюдения в zabbix?
Один агент на узле. Заббикс запускает и дергает данные из скрипта, поправил скрипт, чтобы он опрашивал все интересующие меня порты, опция динамична. Да поправил шаблон на корректное отображение данных в более понятном формате. Я пока гит еще не веду, по этому проекта не отразил.
Оставил управление динамикой со стороны скрипта, чтобы не ковырять сильно шаблон. Опрос идет по командам в ras.
А графики по быстрому наваял, есть возможность просматривать по формуле суммирования
А так-же отдельно вывел себе по значениям для удобства подсчета между кластерами на одном узле
Понял, спасибо!
Функционал наблюдения за несколькими службами на одном хосте в рамках данного проекта в процессе реализации, надеюсь скоро порадую "страждущих" :)
Это хорошо, посмотрю потом обязательно
Шаблон 1C Enterprise License Server надо "вешать" на узел, который является сервером лицензирования (вроде логично из названия)!
Вот это должно быть описано в документации. Поскольку это совсем не очевидно и ниоткуда логически не вытекает.
На центральных серверах должны быть RAS для своих кластеров со своей версией платформы! На всех центральных RAS должен работать на одинаковом порту.
Типичная ситуация- когда на одном сервере находится несколько кластеров разнесенных по разным портам. Соответственно несколько RAS на разных портах. Условность которую привносит желание иметь автоконфигурирование делает эти конфиги просто неработоспособными. Поскольку данный пункт невыполним. Вы же не думаете что пользователь будет менять архитектуру инфраструктуры под шаблон скрипта мониторинга? :)
Можно ли (какой-то опцией?) убрать вообще вот это:
Он из списка процессов формирует список центральных серверов кластеров,
И использовать как исходные данные для подсчета лицензий и кластеров просто список вида: сервер_с_полным_ДНС_именем:порт_RAS ?
Этот список не меняется годами... зачем каждую минуту автопроверять список RAS, которые не меняются годами??
это совсем не очевидно и ниоткуда логически не вытекает.
это "логически вытекает" из названия, разве нет?
Поскольку данный пункт невыполним.
На текущий момент это решается указанием используемых портов RAS в макросе {$RAS_PORTS}
через запятую!
Вы же не думаете что пользователь будет менять архитектуру инфраструктуры под шаблон скрипта мониторинга? :)
Коллега, Вы пользуетесь бесплатным продуктом, который создавался на определенной инфраструктуре, и не претендует на универсальность! Хотите добавить функциональности? Пожалуйста, включайтесь в процесс, дорабатывайте!
Этот список не меняется годами... зачем каждую минуту автопроверять список RAS, которые не меняются годами??
У вас такой сценарий применения, у нас другой ... Инструмент создан отталкиваясь от имеющегося у нас сценария применения. Да, он не универсален и не покрывает все возможные варианты испльзования ... О чем спор то?
Повторю еще раз, хотите что-то изменить, все в ваших руках! ;)
Здравствуйте, подскажите пожалуйста как лучше подойти к вопросу и сделать возможным следующее
У меня развернут в организации отдельный сервер лицензирования и с него бы я хотел получать информацию о лицензиях На нем есть 5 кластеров разных версий 8.3 и ras в том же кол-ве Мне бы хотелось видеть, сколько лицензий выдал каждый кластер, в дефолтной настройке мне доступна эта возможность для одного кластера А как побыстрее и менее затратно сделать тоже самое и для остальных