Расширение возможностей 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 10?
В предыдущих версиях Windows я мог установить SNMP-функцию, которая позволяла программному обеспечению мониторинга сети удаленно собирать основную системную информацию из Windows. Я не смог найти что-либо подобное в Windows 10. Я что-то упустил или Microsoft окончательно отказалась от SNMP в пользу WMI?
1 ответ
Вики-страница Microsoft TechNet под названием « Как установить SNMP удаленно » автор Андрей Кармаданов имеет невероятное количество деталей о том, как установить службу SNMP. Этот ответ является копией и вставкой соответствующих частей вики-страницы Эндрю.
1. Установить
1.1 Установка — Графический
Пуск -> Панель управления -> Программы и функции -> Включить или отключить Windows-функции -> Простой протокол сетевого управления (SNMP) -> WMI SNMP Provider> Включить флажок.
1.2 Установка — Командная строка
Запустите cmd.exe как администратор. В командной строке с повышенными правами введите:
2 Конфигурация — Пользовательский интерфейс
В Windows 10 пользовательский интерфейс «скрыт» в services.msc Свойства самой службы SNMP . Для получения дополнительной информации см. Эту базу знаний компании Paessler «Сетевая мониторинг» страница .
3 Конфигурация — реестр Windows
Все настройки SNMP хранятся в реестре, что делает эту задачу немного проще. Настройки, которые нам нужно настроить, показаны ниже.
EnableAuthenticationTraps, NameResolutionRetries, sysContact и sysLocation — это только значения реестра. Мы можем оставить их нетронутыми. ValidCommunities, PermittedManagers и TrapConfiguration являются более важными. Они определяют, какие системы могут связываться с хостом через SNMP
3.1 ValidCommunities
Ключ ValidCommunities содержит список сообществ SNMP и разрешений. Он выглядит как
Права доступа имеют следующие значения:
3.2 Разрешенные менеджеры
Ключ PermittedManagers содержит список хостов, которые могут запрашивать или обновлять хост через SNMP. Это пронумерованный список имен или IP-адресов. Например:
3.3 Трапконфигурация
Ключ TrapConfiguration — это список подразделов, по одному на имена сообществ. В свою очередь каждый подраздел содержит список хостов, на которые будут отправляться ловушки. Например:
Примечание. Имена сообществ чувствительны к регистру
Как включить snmp windows 10
Служба SNMP (протокол сетевого управления системой) обрабатывает запросы протокола SNMP. Однако некоторые пользователи, которые обновили Windows 10 до версии 1809, сказали, что SNMP отсутствует в последней версии сборки. Это неудивительно, поскольку SNMP является дополнительной функцией в Windows 10 1809. Пользователи не могут использовать SNMP в Windows 10, когда эта служба отсутствует.
Как включить протокол управления сетью системы (SNMP) в Windows 10? Во-первых, установите SNMP с PowerShell. Это должно восстановить недостающую функцию Windows. Или добавьте SNMP через Настройки или через Панель управления.
Прочитайте инструкции ниже.
Вот как пользователи могут восстановить отсутствующий SNMP в Windows 10
- Установите SNMP с PowerShell
- Добавить SNMP через Настройки
- Как включить SNMP в Windows 10 1803
1. Установите SNMP с помощью PowerShell
- Пользователи подтвердили, что они восстановили SNMP в Windows 10 1809, установив его через PowerShell. Для этого откройте Cortana, нажав кнопку «Введите здесь для поиска» на панели задач.
- Введите «PowerShell» в качестве ключевого слова в поле поиска.
- Щелкните правой кнопкой мыши Windows PowerShell и выберите « Запуск от имени администратора» .
- Сначала введите Get-WindowsCapability -Online -Name «SNMP *» в PowerShell, как показано на приведенном ниже снимке, и нажмите «Return».
Введите Add-WindowsCapability -Online -Name «SNMP.Client
0.0.1.0» и нажмите Enter.
Затем введите Get-WindowsCapability -Online -Name «SNMP *» в PowerShell и нажмите клавишу возврата.
2. Добавьте SNMP через Настройки
- Кроме того, пользователи могут включить SNMP в Windows 10 1903 через приложение «Настройки». Сначала нажмите кнопку «Пуск»; а затем нажмите кнопку Настройки .
- Выберите Приложения, чтобы открыть параметры, показанные ниже.
Затем нажмите « Управление дополнительными функциями», чтобы открыть страницу «Настройки» в снимке экрана ниже.
Нажмите кнопку Добавить функции .
3. Как включить SNMP в Windows 10 1803
- Пользователи, которым необходимо включить отсутствующий SNMP в Windows 10 1803 или более ранних версиях сборки, могут сделать это с помощью функций Windows. Для этого откройте аксессуар Run.
- Откройте «Программы и компоненты», введя appwiz.cpl в «Выполнить» и нажав « ОК» .
Нажмите « Включить или отключить функции Windows», чтобы открыть окно на изображении ниже.
Таким образом, пользователи могут восстановить отсутствующую службу SNMP в Windows 10 1903 и более ранних версиях сборки. Затем пользователи могут использовать SNMP в Windows 10.