Расширение возможностей SNMP агента в Windows

Протокол SNMP (англ. Simple Network Management Protocol — простой протокол управления сетями) давно зарекомендовал себя как простое и удобное средство сбора информации о работе различных устройств и систем. Агенты SNMP реализованы для множества операционных систем что даёт возможность строить масштабируемые системы мониторинга функционирования инфраструктуры.
К сожалению, штатный агент Windows, несмотря на кажущуюся информативность, ограничен в вариантах доступной информации о работе системы и в особенности сторонних приложений, работающих на сервере. В этой статье описано как получать по SNMP больше данных о работе сервера, в частности значения счётчиков производительности ОС и любые другие данные, которые могут предоставлять приложения работающие на сервере, например количество подключённых пользователей к серверу приложений 1С 8 или любую другую информацию, которую Вы захотите получить.
SNMP Агент Windows позволяет расширить охват данных при помощи подключения дополнительных библиотек, что дает возможность получить доступ к нужным данным. Информацию по написанию таких расширений можно найти в MSDN, но мы воспользуемся одним из готовых, а именно — snmptools. Эта библиотека позволяет передавать информацию полученную из счетчиков произовдительности Windows или результат выполнения консольной программы/скрипта в ответах SNMP агента.
snmptools поддерживает все современные версии Windows, начиная с XP и заканчивая 2008R2 и имеет функционал, достаточный для решения большинства задач по мониторингу.
Качаем архив с библиотекой.В нем лежат:
- snmptools.dll и snmptools64.dll — собственно библиотеки расширения SNMP Агента. 32-х и 64-х битная версии соответственно
- counters.sample и traps.sample — файлы с примерами конфигурации
- .reg файлы с примерами регистрации расширения в системном реестре
- .reg файлы с примерами регистрации расширения в системном реестре
- perf32.exe — программка для доступа к значениям счетчиков производительности из командной строки
- папки с примерами скриптов
Для установки копируем библиотеку нужной архитектуры в системную папку Windows. Рядом создаем ini файл с конфигурацией (по умолчанию предлагается его ложить в корень диска С:). После чего изменяем путь к библиотеке и конфигурации в .reg файле и импортируем ключи в реестр. Вуаля — после перезапуска службы SNMP библиотека будет загружена, и будет возвращать данные описанные в файле конфигурации.
Файл конфигурации представляет собой ini-файл с простой структурой. Заголовок раздела задает обрабатываемый oid. Параметры которых всего 2 — type и counter — указывают какую информацию возвращать.
;Значение счетчика производительности
[1.3.6.1.4.1.15.2]
counter = LogicalDisk\Free Megabytes\_Total
;Результат выполнения консольной команды.
[1.3.6.1.4.1.15.3]
type = exec
counter = cmd /c ver
;Результат выполнения VB скрипта
[1.3.6.1.4.1.15.4]
type = exec
counter = cscript /nologo c:\1c_sessions.vbs
; Описательные поля
[1.3.6.1.4.1.15.10.1]
type = string
counter = 2
[1.3.6.1.4.1.15.10.1.1]
type = string
counter = Available Bytes
[1.3.6.1.4.1.15.10.1.2]
type = string
counter = Committed Bytes
; Информационные поля
[1.3.6.1.4.1.15.10.2]
type = string
counter = 2
[1.3.6.1.4.1.15.10.2.1]
counter = memory\Available Bytes
[1.3.6.1.4.1.15.10.2.2]
counter = memory\Committed Bytes
;Необходимо указывать конец для корректной работы последовательного обхода с помощью snmp_get_next
[1.3.6.1.4.1.15.9999]
type = string
counter = EOF
> snmpwalk — v 2c — c public — O a 192 . 168 . 1 . 1 1 . 3 . 6 . 1 . 4 . 1 . 15
SNMPv2 — SMI :: enterprises . 15 . 1 = STRING: «this is a test»
SNMPv2 — SMI :: enterprises . 15 . 2 = INTEGER: 160922
SNMPv2 — SMI :: enterprises . 15 . 3 = STRING: «Microsoft Windows [. 5.2.3790]»
SNMPv2 — SMI :: enterprises . 15 . 4 = INTEGER: 4
SNMPv2 — SMI :: enterprises . 15 . 10 = INTEGER: 2
SNMPv2 — SMI :: enterprises . 15 . 10 . 2 = INTEGER: 2
SNMPv2 — SMI :: enterprises . 15 . 10 . 2 . 1 = STRING: «Available Bytes»
SNMPv2 — SMI :: enterprises . 15 . 10 . 2 . 2 = STRING: «Committed Bytes»
SNMPv2 — SMI :: enterprises . 15 . 10 . 3 = INTEGER: 2
SNMPv2 — SMI :: enterprises . 15 . 10 . 3 . 1 = INTEGER: 427024384
SNMPv2 — SMI :: enterprises . 15 . 10 . 3 . 2 = INTEGER: 522661888
SNMPv2 — SMI :: enterprises . 15 . 9999 = STRING: «EOF»
End of MIB
Если что-то не заладилось можно включить отладку работы библиотеки установив в единицу параметр HKEY_LOCAL_MACHINE\SOFTWARE\snmptools\currentversion\debug. При этом отладочные сообщения будут сохранятся в файл c:\log.txt
Также можно настроить отправку трапов. Для этого нужно в настройках SNMP Агента Windows указать адрес получателя трапов, и в реестре в ветке HKEY_LOCAL_MACHINE\SOFTWARE\snmptools\currentversion создать строковой параметр traps с путем к файлу конфигурации трапов. Опционально можно добавить параметр trap_delay типа DWord для указания периодичности отправки трапов в миллисекундах.
Как видим snmptools это простой и удобный инструмент который может немного помочь в контроле увеличения энтропии вселенной и селекции зеленых хомячков.;-)
Если же Вам недостаточно функциональности предоставляемой snmptools, например требуются расширенные возможности протокола SNMP, типа управления сервером — можете попробовать использовать более продвинутые аналоги например, SNMPInformant
И в дополнение пример скрипта на VBScript для получения количества подключенных пользователей к серверу приложений 1Сv82.
Set Connector = CreateObject(«V82.COMConnector»)
Set Connection = Connector.ConnectAgent(«tcp://localhost»)
Clasters = Connection.GetClusters()
Set Cluster = Clasters (0)
Connection.Authenticate Cluster , «user», «password»
WScript.StdOut.WriteLine ( UBound (Sessions)+1)
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Установка службы SNMP в ОС Windows
Чтобы установить службу SNMP:
1. Откройте мастер компонентов Windows. Для этого в меню Пуск выберите пункт Панель управления, дважды щелкните значок Программы и компоненты.
2. Нажмите ссылку Включение или отключение компонентов Windows.
3. В списке Компоненты Windows установите галочку в пункте Компонент SNMP и нажмите OK.
4. Откройте службы компьютера: контекстное меню значка Мой компьютер на рабочем столе -> Управление -> Службы и приложения -> Службы. Найдите в списке Служба SNMP и запустите её, если она не была запущена. Иногда для того, чтобы эта служба появилась в списке, необходимо после действий 1-3 перезагрузить компьютер. Если сразу после этих действий вам не удалось удалённо из программы подключиться к компьютеру по SNMP, то выполните действия из раздела Настройка свойств безопасности SNMP (см. ниже).
Примечания
- Для выполнения данной процедуры необходимо входить в группу «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». При этом по соображениям безопасности рекомендуется использовать команду Запуск от имени.
- Некоторым компонентам Windows перед использованием требуется настройка. Если один или несколько таких компонентов были установлены, но не были настроены, при нажатии кнопки Установка компонентов Windows отображается список компонентов, требующих настройки. Для запуска мастера компонентов Windows нажмите кнопку Компоненты.
- После установки SNMP запускается автоматически.
Настройка свойств безопасности SNMP
Настройка свойств безопасности SNMP
- Откройте окно «Управление компьютером».
- В дереве консоли щелкните узел Службы (Службы и приложения / Службы).
- В области сведений выберите Служба SNMP.
- В меню Действие выберите команду Свойства.
- На вкладке Безопасность установите флажок Посылать ловушку проверки подлинности, если требуется отправлять ловушку при каждом сбое проверки подлинности.
- В группе Приемлемые имена сообществ нажмите кнопку Добавить.
- В поле Права сообщества выберите уровень доступа данного узла для обработки запросов SNMP от выбранного сообщества (рекомендуется значение READ ONLY).
- В поле Имя сообщества введите имя сообщества с учетом регистра символов и нажмите кнопку Добавить. Именем сообщества может быть любое слово. Этот параметр используется в качестве пароля доступа к SNMP этого компьютера. Обычно именем сообщества является слово public, однако в целях безопасности рекомендуется задать другое. Запомните введенное имя сообщества — его нужно будет указать при создании сенсора.
- Укажите, следует ли принимать пакеты SNMP от узла:
- чтобы принимать запросы SNMP от любого узла сети независимо от удостоверения, выберите параметр Принимать пакеты SNMP от любого узла;
- чтобы ограничить прием пакетов SNMP, выберите Принимать пакеты SNMP только от этих узлов, нажмите кнопку Добавить, введите имя, IP-адрес или IPX-адрес соответствующего узла и снова нажмите кнопку Добавить.
Важно!
- По умолчанию SNMP не будет отвечать ни на одно из представленных имен сообществ.
Примечания
- Для выполнения данной процедуры необходимо входить в группу «Администраторы» на локальном компьютере или получить соответствующие полномочия путем делегирования. Если компьютер присоединен к домену, эту процедуру могут выполнять члены группы «Администраторы домена». При этом по соображениям безопасности рекомендуется использовать команду Запуск от имени.
- Чтобы открыть компонент «Управление компьютером», нажмите кнопку Пуск, выберите пункт Панель управления, дважды щелкните значок Администрирование, затем дважды щелкните значок Управление компьютером.
- Имена сообществ и узлов можно добавлять по необходимости.
- Для изменения записи следует выделить ее и нажать кнопку Изменить. Для удаления выделенной записи нажмите кнопку Удалить.
- Изменения существующих настроек SNMP вступают в силу немедленно. Перезапускать службу SNMP для ввода настроек в силу не требуется.
- Протокол IPX/SPX недоступен в Windows XP 64-bit Edition (Itanium) и 64-разрядных версиях семейства Windows Server 2003.
Программа учёта трафика работает в среде Windows XP/Vista/7/8.1/10; Server 2003/2008/2012/2016/2019. Вы можете скачать и попробовать 30-дневную пробную версию бесплатно.
Как включить SNMP в Windows10, Windows 7, Windows Server.
На первый взгляд задача “включение SNMP на Windows” не должна быть сложной.
Как включить SNMP на Windows и как ее настроить будем разбираться по пунктам.
Способ №1 Включение SNMP в Windows.
Стандартным, идеальным для пользователя считается следующий способ, он работает в Windows 7 и некоторых сборках Windows 10:
1. Заходим в Панель Управления.
2. Находим меню “Установка и удаление программ” или “Программы и компоненты”.
3. В открывшемся окне слева в списке переходим по ссылке “Включение или отключение компонентов Windows”.
4. В списке “Компоненты Windows” ищем строчку “Компонент SNMP” и отмечаем галочкой – Нажимаем “ОК”.
5. Осталось перейти в Службы (Панель управления – Администрирование – Службы) где выбираем среди всех служб “Служба SNMP” и запускаем.
Способ №2 Включение и настройка SNMP в Windows 10.
Если первый способ не увенчался успехом, то второй нам поможет:
1. Для начала нам нужно будет в меню Пуск найти и запустить WindowsPowerShell “ЗАПУСК ОТ ИМЕНИ АДМИНИСТРАТОРА”.
2. Вводим команду для проверки доступности SNMP – службы :
Вывод команды будет следующим:
Как видим в строке состояния указано, что SNMP-протокол не представлен.
P.S. Бывали случае, когда в строке состояния указано Installed, но все равно службы SNMP нет. В этом случае все равно переходим к следующему 3 пункту.
3. Устанавливаем службу SNMP командой:
Видим процесс установки и получаем ответ:
4. Снова проверим состояние службы SNMP командой из пункта 2:
5. Обязательно перезагружаем компьютер.
После запуска переходим в Службы и находим “Служба SNMP”.
Заходим в свойства службы SNMP. Если состояние службы остановлена, нужно запустить ее кнопкой “Запустить” и в меню “Тип запуска” выбираем “Автоматически”.
Способ 3. Как установить SNMP на Windows Server.
1. Включить SNMP можно в “Параметры” – раздел «Приложения и возможности»- ссылка «Дополнительные возможности».
2. В окне “Дополнительные возможности” нажимаем “Добавить компонент” и выбираем в списке “SNMP-протокол” – Установить.
3. Перезагружаем систему.
Как настроить SNMP в Windows.
Необходимо найти службу “Служба SNMP” и открыть свойства службы.
– На вкладке “Безопасность” установим флажок “Посылать ловушку проверки подлинности”.
– Нажмем кнопку “Добавить” для настройки “SNMP Community”.
– Выбираем уровень доступа (None, Notify, READ ONLY, READ WRITE, READ CREATE). Для мониторинга состояния сервера достаточно выбрать Read Only.
– По-умолчанию community чаще всего указывается public для уровня READ ONLY или private для Read Write.
– Ниже есть пункт “Принимать пакеты SNMP от любого узла” и “Принимать пакеты SNMP от следующих узлов”. Здесь вы можете указать конкретный адрес вашего сервера мониторинга, который будет собирать данные или оставить 1 вариант, если вы хотите, что бы не было ограничений по ip-адресу.
– Сохраняем изменения и перезапускаем службу SNMP.



