Какую информацию нужно получить:
1. Количество сеансов на кластере 1С, историю изменения количества сеансов;
2. Количество сеансов в конкретной базе 1С, историю изменения;
Для чего это нужно:
1. Планирование политики по лицензиям: какие лицензии нужны для конкретных серверов 1С, на каких серверах число пользователей подходит к критической величине и т.д.
2. Планирование работ по изменению IT инфраструктуры: при переносе одних баз на другие сервера 1С, создании тестового контура, перенос критических баз 1С на отдельный контур — расчет рисков
3. Планирование работ по изменениям/обновлениям конфигураций: на работу скольких пользователей может повлиять определенное изменение в конфигурации, когда лучше проводить обновление (в периоды минимального числа пользователей ИБ) и т.д.
В данной статье необходимая информация будет получена на базе PRTG с сенсором SNMP.
Подразумевается, что PRTG установлен на отдельном сервере мониторинга. С этого сервера отправляются SNMP запросы к серверам 1С (на Windows), по результатам которых возвращается число сеансов. При этом, необходимо анализировать не только общее количество сеансов на кластере 1С, но и число сеансов в отдельной информационной базе.
Установка службы SNMP
На серверах 1С необходимо установить службы SNMP (Панель управления — Компоненты Windows). В итоге запустятся службы «Служба SNMP» и «Ловушка SNMP». Важно! Запуск службы SNMP необходимо установить от имени учетной записи, обладающей правами на 1С кластере, community. А также в свойствах службы добавить разрешенные хосты — IP сервера сбора статистики (PRTG).
На анализируемом сервере 1С создадим папку C:SNMP_1C. В ней будем хранить конфигурационные файлы.
Корректировка службы SNMP
Создаем два файла реестра и выполняем их
regagent.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSNMPParametersExtensionAgents]
"snmptools"="SOFTWARE\snmptools\CurrentVersion"
[HKEY_LOCAL_MACHINESOFTWAREsnmptoolscurrentversion]
"Pathname"="%systedrive%\SNMP_1C\snmptools.dll"
"debug"="0"
"counters"="c:\SNMP_1C\counters.ini"
regagentWow6432.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSNMPParametersExtensionAgents]
"snmptools"="SOFTWARE\snmptools\CurrentVersion"
[HKEY_LOCAL_MACHINESOFTWAREWow6432Nodesnmptoolscurrentversion]
"counters"="c:\SNMP_1C\counters.ini"
"debug"="0"
"pathname"="%systemdrive%\SNMP_1C\snmptools.dll"
Библиотеку snmptools.dll (во вложенных фалах) необходимо положить в папку C:SNMP_1C
Создание ini файла
На сервере 1С в папке C:SNMP_1C создадим файл couners.ini. В нем пропишем действия при конкретном OID SNMP:
[1.3.6.1.6.2.7.16.12.15.16]
type=exec
counter=c:windowssystem32cscript.exe /nologo c:SNMP_1C1c_sessions.vbs /Platform:"V83"
[1.3.6.1.6.2.7.16.12.15.16.1]
type=exec
counter=c:windowssystem32cscript.exe /nologo c:SNMP_1C1c_sessions.vbs /BaseStr:"buh30" /PlatformStr:"V83"
Создание vbs скрипта
В корне диска C:SNMP_1C создаем файл 1c_sessions.vbs
BaseName = Wscript.Arguments.Named.Item("BaseStr")
Platform = Wscript.Arguments.Named.Item("PlatformStr")
If Platform = "" Then
Platform = "V83"
End If
Set Connector = CreateObject(Platform & ".COMConnector")
Set Connection = Connector.ConnectAgent("tcp://localhost")
Clasters = Connection.GetClusters()
Set Cluster = Clasters (0)
Connection.Authenticate Cluster,"",""
Sessions = Connection.GetSessions (Cluster)
If BaseName="" Then
wscript.Echo(Ubound(Sessions)+1)
Else
Amount = 0
For Each Session In Sessions
If Session.InfoBase.Name = BaseName Then
Amount = Amount + 1
End If
Next
wscript.Echo(Amount)
End If
Создание сенсора RPTG
В PRTG добавляем device (сервер 1С «corp-1c-server1»), в свойствах не забываем указать корректную версию и сообщество.
Добавляем новый сенсор «Число сеансов 1С». Указываем тип сенсора SNMP, операционная система Windows
OID Value указывали в ini файле. Для сенсора общего количества сеансов на кластере 1С указываем IOD 1.3.6.1.6.2.7.16.12.15.16
Аналогично создаем сенсор для мониторинга числа сеансов в базе buh30 (OID 1.3.6.1.6.2.7.16.12.15.16.1)
В тоге должна получиться следующая картина:
Не получилось завестись с первого раза? Основные нюансы настройки:
1) Службу SNMP запускаем от пользователя, имеющего административные права на кластере 1С (ни в коем случае не стоит ставить сетевую учетку администратора или программиста, лучше Managed Service Accounts MSA);
2) Необходимо проверить версию SNMP в настройках девайса PRTG (для Windows Server 2008/2012 — v2);
3) Проверить сообщество в настройках службы и девайса;
4) Проверить корректность IP адреса сервера мониторинга в настройках службы SNMP;
5) Установлена ли компонента V8xCOMConnector.
Вывод. Благодаря рассмотренному инструменту, мы всегда знаем сколько сеансов на отдельных кластерах 1С, в отдельных информационных базах 1С. Можем опираться на эти данные при планировании как политики лицензирования серверов, изменения IT инфраструктуры, так и при внесении критических изменений в конфигурации.
Спасибо за внимание.
Ссылка на оргинал статьи в личном блоге.
А почему не Zabbix? Он SMNP мониторит не хуже, но бесплатный и платной ОС под себя не требует.
(1) asved.ru,
системе мониторинга сети , поддерживающая протокол SNMP. В этой статье использовалась система PRTG.
Да, на Zabbix можно развернуть подобный сервис, также, как и на любой другой
(2)
а не подскажете, почему не получается прочитать OID?
Сделал все как тут, при проверке — No such object (SNMP error # 222)
(3) inside2016,
у вас служба SNMP не тюнит ini файл.
Нужно убедиться, что snmptools.dll лежит в C:SNMP_1C, выполнить корректировку регистра (два reg файла). Для теста в 1c_sessions.vbs оставьте одну строку: «wscript.Echo(16)»
(4)
VBS скрипт работает — возвращает число сеансов.
В реестре данные есть. Библиотека snmptools лежит по указанному пути. Права на папку выставлены.
И тем не менее — не работает…
(5) inside2016,
VBS скрипт работает — это хорошо. Чтобы быстрее разобраться, ответьте на следующие вопросы:
1) PRTG и Агент сервера 1С Предприятие на разных серверах? Версия ОС сервера 1С?
2) SNMP службу запустили на том сервере, где Агент сервера 1С?
3) Проверка PRTG — добавьте типовой сенсор Ping для девайса сервера 1С. Работает?
4) Корректно ли работает служба SNMP? Чтобы проверить — добавьте в PRTG типовой сенсор «SNMP CPU Load».
5) Настройки SNMP как в статье? (сообщество «snmp», Read Only, разрешенные хосты)
6) От какой учетки запускаете службу SNMP (локальная/доменная/MSA), от какой службу «Ловушка SNMP»?
7) Добавлена ли учетка в администраторы в консоли кластера и в администраторах конкретного кластера 1С?
Если на вопросы 2-5, 7 ответ «Да», то листинг C:SNMP_1C, скрин консоли кластера и службы SNMP (можно в ЛС).
(5) inside2016,
+ вас нет в списках скачивавших файл этой статьи. Возможно, отличается snmptools.dll
похоже статья написана по мотивам
https://habrahabr.ru/sandbox/39380/
(5) получилось разобраться?
После проверки оригинальными шаблонами автора библиотеки snmptools — все запустилось!
И да, еще:
— библиотеку я скопировал с system32, windows и syswol64
— учету использовал доменную, хотя это наверно не принципиально
— добавил права на работу с COM службой — иначе не отрабатывал vbs скрипт от имени новой учетки
(5)
snmptools во вложении статьи — для 32-х разрядной технологической платформы 1С
1. если запускаете от Managed Service Accounts (MSA) — данного пользователя нужно добавить в администраторы на сервере приложения 1С
2. библиотека