Мониторинг 1С:Предприятие 8.3 с помощью Zabbix

Поступила просьба от 1С-ников организовать мониторинг  сервера 1С:Предприятие 8.3 с помощью Zabbix 5.0. В частности необходимо мониторить как общие показатели системы (CPU, RAM, HDD, Службы) так и параметры относящиеся непосредственно к серверу 1С — кол-во текущих сеансов, кол-во сеансов по типам подключения, блокировки СУБД.

 

С мониторингом общих показателей системы прекрасно справляется zabbix-agent и штатный шаблон, а вот со вторым уже нужно прибегать к функциям cервера администрирования кластера серверов 1С, который состоит из двух утилит: непосредственно самого сервера — программы ras.exe и  утилиты командной строки rac.exe, которая обращаясь к запущенному прежде серверу ras позволяет выполнять различные операции с кластером серверов 1С:Предприятия.

 

Перечитав кучу различных мануалов как мониторить кластер 1С я пришел к выводу что надо писать свое..

 

Как итог было написано две утилиты. Первая утилита запускает ras.exe как службу Windows, а вторая это утилита которая работает с rac.exe, выполняет запросы, обрабатывает и выдает результат, который в последующем может обрабатывать zabbix-agent и передавать на сервер Zabbix.

 

Итак скачиваем первую утилиту helper_ras_1c.exe и помещаем ее в какой-нибудь отдельный каталог (прим. C:\1c_ras).

Скачать “1C:Enterprise Monitoring (helper_1c_ras)” helper_1c_ras.exe – Загружено 1 раз – 2 MB

 

Теперь в каталоге размещения утилиты helper_ras_1c.exe создаем текстовый файл — cfg.conf со следующим содержанием:

ИНФОРМАЦИЯ: обращаю внимание что в параметре rasPath нужно указывать путь с учетом какая версия 1С у вас установлена. Остальные параметры оставляем без изменения!

 

Теперь нужно установить службу.. (да да, можно было бы и написать еще утилиту которая будет устанавливать по одному клику, но мы же не ищем легкий путей).

 

Запускаем командную строку Windows (cmd.exe), переходим в каталог размещения скачанной утилиты и выполняем команду:

 

После этого в диспетчере служб Windows появится новая служба — 1C:Enterprise 8.3 Remote Server. Запускаем ее.

ИНФОРМАЦИЯ: хочу обратить внимание что при обновление платформы, важно не забыть сделать изменения в параметре rasPath в файле cfg.conf на актуальный путь к платформе. После сделанных изменений не забываем перезапустить службу 1C:Enterprise 8.3 Remote Server!

 

Со службой разобрались, она будет работать в автономном режиме. Теперь скачиваем утилиту raccmd.exe и помещаем ее в каталог нахождения helper_ras_1c.exe (но это не принципиально, а чисто для удобства).

Скачать “1C:Enterprise Monitoring (1c_rac_console)” raccmd.exe – Загружено 14 раз – 1 MB

 

Ниже приведен справочник по ключам запуска утилиты raccmd.exe по которым получаются те или иные значения от cервера администрирования кластера серверов 1С (ras.exe). Для интереса можно через командную строку Windows запустить утилиту raccmd.exe с каким либо ключом и посмотреть результат выполнения.

-total — Общее кол-во сеансов
-ds — Designer
-bj — BackgroundJob
-tn — 1CV8C (Thin)
-tk — 1CV8 (Thick)
-wb— WebClient
-ccn — COMConnection
-ws — WSConnection
-cce — COMConsole
-tntk — 1CV8C & 1CV8 (Thin & Thick)
-hb — Hibernate
-bdbms — Блокировка СУБД
-bls — Блокировка
-tlist — T-E-R-M-I-N-A-T-I-O-N hibernate session

 

Теперь для того чтобы Zabbix мог запрашивать данные через zabbix-agent создадим файл 1c_info.conf (имя может быть произвольное) в каталоге установке Zabbix — zabbix_agentd.conf.d, со следующим содержанием:

 

Так же в в файле конфигурации zabbix_agentd.conf приводим параметры к виду (вместо 10.0.0.2 указываем свой):

 

Ну и подходим к кульминации процесса, скачиваем шаблон для Zabbix сервера и импортируем его (надеюсь с этим проблем не возникнет).

Скачать “1C:Enterprise Monitoring (ZABBIX Template)” Template_App_1C_Enterprise.yaml – Загружено 17 раз – 5 KB

 

Далее все по стандарту, создаем узел сети, добавляем параметр обнаружения Агент и указываем IP-адрес машины и указываем импортированный шаблон:

Как результат можно наблюдать получаемые параметры:

 

В дополнение в утилиту raccmd.exe была добавлена функция корректного завершения спящих сеансов. Для этого нужно запустить в командной строке Windows raccmd.exe  -tlist. В процессе будут определены ВСЕ спящие сеансы по ВСЕМ имеющимся на сервере кластерах и завершены.

Да, знаю что есть штатная система в самой 1С, но у нас она почему то не отрабатывает и спящие сеансы копятся большим кол-вом.. anyway я создал в планировщике Windows задание которое раз в сутки завершает все спящие сеансы.

 

Резюмирую по проделанной работе, да пока что наверное скудный набор параметром подвержен обработке, но задача была на текущей момент мониторить именно эти параметры. Так же в шаблоне нет никаких тригеров и тд., но это пока что тоже не нужно в моем случае.

 

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

 

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

 

ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОБЛАГОДАРИ АВТОРА

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

десять − девять =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика