gifts2017

Мониторинг количества сеансов 1С на базе PRTG

Опубликовал Амир Фарукшин (farukshin) в раздел Администрирование - Статистика базы данных

В данной статье показано как получить информацию о количестве сеансов 1С с историей на базе PRTG сенсором SNMP

Какую информацию нужно получить:
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_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]
"snmptools"="SOFTWARE\\snmptools\\CurrentVersion"

[HKEY_LOCAL_MACHINE\SOFTWARE\snmptools\currentversion]
"Pathname"="%systedrive%\\SNMP_1C\\snmptools.dll"
"debug"="0"
"counters"="c:\\SNMP_1C\\counters.ini"

regagentWow6432.reg

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP\Parameters\ExtensionAgents]
"snmptools"="SOFTWARE\\snmptools\\CurrentVersion"

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\snmptools\currentversion]
"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:\windows\system32\cscript.exe /nologo c:\SNMP_1C\1c_sessions.vbs /Platform:"V83"

[1.3.6.1.6.2.7.16.12.15.16.1]
type=exec
counter=c:\windows\system32\cscript.exe /nologo c:\SNMP_1C\1c_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 инфраструктуры, так и при внесении критических изменений в конфигурации.

Спасибо за внимание.

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

Наименование Файл Версия Размер Кол. Скачив.
SNMP
.rar 61,57Kb
31.08.16
5
.rar 61,57Kb 5 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антон Стеклов (asved.ru) 01.09.16 05:41
А почему не Zabbix? Он SMNP мониторит не хуже, но бесплатный и платной ОС под себя не требует.
2. Амир Фарукшин (farukshin) 01.09.16 08:59
(1) asved.ru,
Да, на Zabbix можно развернуть подобный сервис, также, как и на любой другой системе мониторинга сети, поддерживающая протокол SNMP. В этой статье использовалась система PRTG.
3. Oleg (inside2016) 02.09.16 16:14
(2) farukshin,
а не подскажете, почему не получается прочитать OID?
Сделал все как тут, при проверке - No such object (SNMP error # 222)
4. Амир Фарукшин (farukshin) 02.09.16 16:33
(3) inside2016,
у вас служба SNMP не тюнит ini файл.
Нужно убедиться, что snmptools.dll лежит в C:\SNMP_1C\, выполнить корректировку регистра (два reg файла). Для теста в 1c_sessions.vbs оставьте одну строку: "wscript.Echo(16)"
5. Oleg (inside2016) 03.09.16 12:15
(4) farukshin,

VBS скрипт работает - возвращает число сеансов.
В реестре данные есть. Библиотека snmptools лежит по указанному пути. Права на папку выставлены.
И тем не менее - не работает...
6. Амир Фарукшин (farukshin) 03.09.16 23:00
(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 (можно в ЛС).
7. Амир Фарукшин (farukshin) 03.09.16 23:07
(5) inside2016,
+ вас нет в списках скачивавших файл этой статьи. Возможно, отличается snmptools.dll
8. Михаил Максимов (МихаилМ) 08.09.16 14:58
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа