Расширение возможностей 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
Протокол Simple Network Management Protocol (SNMP) используется для мониторинга, оповещения о событиях и управления устройствами в сети. Протокол состоит из набора стандартов по управления сетью, в том числе протокол прикладного уровня (Application Layer protocol), схемы базы данных и набор объектов данных. SNMP может получать различную информацию (время аптайма, счетчики производительности, параметры устройств и т.д.) от любых сетевых устройств: коммутаторов, серверов, маршрутизаторов или простых компьютеров, на которых установлен агент SNMP.
В Windows 10 служба SNMP доступна в виде отдельного компонента Windows и по умолчанию не устанавливается. Рассмотрим, как установить и настроить SNMP в Windows 10.
Установка службы SNMP в WIndows 10
Вы можете проверить, установлена ли в вашей системе служба SNMP с помощью PowerShell командлета Get-Service:
Get-Service -Name snmp*
Вы можете установить службу SNMP через панель управления. Перейдите в Панель управления\Все элементы панели управления\Программы и компоненты\ Включение или отключение компонентов Windows).
В списке компонентов выберите Simple Network Management Protocol (SNMP)/протокол, и WMI SNMP Provider / Поставщик WMI для SNMP (обеспечивает доступ к информации SNMP через интерфейсы Windows Management Instrumentation) и нажмите Ок.
Также вы можете установить службы SNMP из командной строки PowerShell:
Enable-WindowsOptionalFeature -online -FeatureName SNMP
Настройка службы SNMP в Windows 10
После установки службы SNMP должны запустится автоматически. Откройте консоль управления Services (services.msc). В списке службы должны появится две новые службы:
- SNMP Service – это основная служба SNMP агента, которая отслеживают активность и отправляет информацию;
- SNMP Trap — получает сообщения ловушки (trap messages) от локальных или удаленных агентов SNMP, и пересылает сообщения в управляющие программы SNMP, которые работают на этом компьютере.
Откройте свойства службы SNMP. Если она остановлена, запустите ее, нажав кнопку Start и измените тип запуска (Startup type) на автоматический.
Перейдите на вкладку Agent. Заполните поля contact и location (здесь вы можете указать контактное имя пользователя и местоположение компьютера), и выберите список сервисов, данные которых нужно собирать и отправить устройству мониторинга.
Доступны следующие типы сервисов:
- Physical
- Applications
- Internet
- End-to-end
- Datalink and subnetwork
Перейдите на вкладку Security. Здесь вы можете настроить различные параметры безопасности для различных серверов SNMP.
В списке Accepted community names перечислены имена сообществ, чьи SNMP узлы проходят аутентификацию для отправки SNMP-запросов на этот компьютер.
Нажмите кнопку Добавить и укажите имя Community и один из пяти уровней доступа (None, Notify, READ ONLY, READ WRITE, READ CREATE). READ WRITE – это максимальный уровень доступа, при которых сервер управления SNMP может вносить изменения в систему. В системах мониторинга обычно достаточно выбрать READ ONLY, при этом сервер мониторинга может только опрашивать систему, но не вносить изменения.
В нашем примере мы добавили комьюнити public с разрешениями READ ONLY.
Далее добавьте список серверов системы мониторинга (по DNS имени или по IP адресам), от которых вы хотите разрешить получать SNMP пакеты.
Сохраните изменения и перезапустите службу SNMP.
На этом настройка службы SNMP в Windows 10 по сути завершена. Если вам нужно включить SNMP сразу на множестве компьютеров, вы можете удаленно установить и настроить службы с помощью PowerShell или GPO.
Как в Windows 10 включить сетевой протокол SNMP
Обновив Windows 10 до сборки 1809 или выше, вы можете столкнуться с проблемами управления подключенными к локальной сети устройствами. Это не баг, просто начиная с версии 1809, в Windows 10 разработчиками отключен SNMP — сетевой протокол, используемый для мониторинга и управления различными сетевыми устройствами, начиная от коммутаторов и заканчивая клиентскими компьютерами.
Сам компонент SNMP, тем не менее, присутствует в системе, и вы без особых усилий можете его включить, причем разными способами.
Проверить, задействован ли он в Windows 10 очень просто, для этого нужно открыть оснастку «Компоненты Windows» и посмотреть, установлена ли галочка в чекбоксе SNMP-протокол.
Если да, открываем оснастку управления службами, находим там службу SNMP и убеждаемся, что она запущена.
Если служба неактивна, запускаем ее и устанавливаем тип запуска «Автоматически».
Если вы работаете в Windows 10 1903 , включить SNMP можно в Параметрах через раздел «Приложения и возможности». Откройте его, нажмите ссылку «Дополнительные возможности».
А затем «Добавить компонент».
В открывшемся списке найдите SNMP-протокол, кликните по нему и нажмите появившуюся кнопку «Установить».
Настройки должны вступить в силу сразу, но не исключено, что понадобится перезагрузка компьютера.
Snmp client windows 10
Вопрос
ich habe vor kurzem einen neuen Windows 10 Enterprise Computer (virtuell) in unserem Netzwerk installiert (Build 1809).
Der Computer befindet sich in einem Netzwerk ohne Internetanbindung.
Nach meiner Recherche musste ich feststellen, dass der SNMP Dienst bei diesem Build nicht mehr über den gewohnten Weg als Feature hinzugefügt werden kann. (Eine Internetverbindung ist aus Sicherheitsgründen unmöglich)
Besteht die Möglichkeit den SNMP Service auf einen anderen Weg offline zu installieren?
Besten Dank
Daniel
Ответы
- Предложено в качестве ответа Yavor Tanev Microsoft contingent staff 15 октября 2019 г. 11:42
- Помечено в качестве ответа Daniel_SB 14 ноября 2019 г. 11:15
Все ответы
- Предложено в качестве ответа Yavor Tanev Microsoft contingent staff 15 октября 2019 г. 11:42
- Помечено в качестве ответа Daniel_SB 14 ноября 2019 г. 11:15
Am 11.10.2019 schrieb Evgenij Smirnov:
Was machen die User, die keinen Zugriff auf VLC oder MSDN haben? Hat
das Streichen, in diesem Fall SNMP, einen tieferen Sinn?
Was machen die User, die keinen Zugriff auf VLC oder MSDN haben? Hat
das Streichen, in diesem Fall SNMP, einen tieferen Sinn?
Mir fallen da mehrere Antworten ein:
- Wer weder MSDN noch VL hat, solte sich vielleicht mit «kein Internet-Zugriff für Clients, aber SAC installieren» auch nicht so haben? Und die Adressen von Windows Update sind bekannt, vielleicht kann man die explizit freischalten.
- Die aus dem Internet nachinstallierten Features überleben meiner Erfahrung nach SysPrep. Daher: Image auf einem internetbefähigten Standalone-PC machen und dann offline deployen. Wenn man Angst hat, dass der internetbefähigte PC irgendwie angegriffen wird, kann man ihn nutzen, um ein Image offline zu servicen und mit den gewünschten Features zu versehen.
- Jemanden suchen, der die DVD hat. Ich konnte nicht wirklich ein PUR-Dokument oder eine EULA dafür finden, vielleicht wäre es ja sogar legal. Allerdings muss man das mit jedem Release wiederholen — die DVD ist build-spezifisch.