The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"лезем в дебри SNMP"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (Сеть. проблемы, диагностика)
Изначальное сообщение [ Отслеживать ]

"лезем в дебри SNMP"  +/
Сообщение от Eytukan (ok) on 01-Авг-12, 13:15 
Добрый день.

Нужна помощь знатоков по SNMP. Имеем snmp manager, net-snmp agent и сетевой узел в виде *nix системы. Прошу описать в деталях алгоритм работы запроса. От начала и до конца. То как я это вижу сейчас:

Даем менеджеру OID и адрес хоста -> он ломится на 161 порт, передает OID агенту -> ??????? -> ??????? -> после "секретных" манипуляций агент эту инфу откуда-то достал, и выслал ответ на хост:порт менеджера.

1) как он обрабатывает запросы?
2) и какую роль здесь играют MIBы?
3) откуда он знает куда ломиться чтобы снять значения этих переменных?
4) как взаимодействует snmp agent и mib файл?

а если мне надо достать значение датчика температуры возле первого кулера. я могу достать MIB с сайта вендора, вытащу OID этой переменной. но я уверен, что net-snmp не знает как обработать такой OID. как его научить?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "лезем в дебри SNMP"  +/
Сообщение от Анонимус42 on 02-Авг-12, 09:51 
1) как он обрабатывает запросы?
молча, читаем доки, если действительно нужно
2) и какую роль здесь играют MIBы?
роль справочника
3) откуда он знает куда ломиться чтобы снять значения этих переменных?
это реализация сервера, часто сервер не знает
4) как взаимодействует snmp agent и mib файл?
агент читает огромный справочник mib и по нему можно спрашивать у сервера. Но сервер не обязан знать, то что знает клиент.

Если вы знаете как на сервере посмотреть температуру куллера справа от процессора, то нет проблем. В snmp сервере (в одном из них точно) можно добавить свой oid, по вызову которого запускается скрипт и результат работы этого скрипта можно забрать.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "лезем в дебри SNMP"  +/
Сообщение от Eytukan (ok) on 03-Авг-12, 12:53 
Спасибо за ответ.

> 1) как он обрабатывает запросы?
> молча, читаем доки, если действительно нужно

     я бы с радостью, только какие доки? я бы и RFC почитал, только какой именно?
     man snmpd не блещет информативностью.

> 3) откуда он знает куда ломиться чтобы снять значения этих переменных?
> это реализация сервера, часто сервер не знает

  если реализация сервера = реализация snmpd(snmp agent), то тогда именно в нем должны
  быть заложены алгоритмы обработки различных OIDов, то есть если он не знает как
  обрабатывать OID температуры шестого кулера матери SuperMicro, то все что в моих силах
  это сделать\скачать патч и собрать сурсы заного. Я правильно понимаю?
  если нет, то что имеется ввиду?

> 4) как взаимодействует snmp agent и mib файл?
> агент читает огромный справочник mib и по нему можно спрашивать у сервера.
> Но сервер не обязан знать, то что знает клиент.

    здесь Вы противоречите самому себе, Вам следует называть вещи нормальными именами.
    агент - snmp-agent? сервер - freebsd? клиент - snmp manager? если да, то ваше
    заявление лишено логики

> Если вы знаете как на сервере посмотреть температуру куллера справа от процессора,
> то нет проблем. В snmp сервере (в одном из них точно)
> можно добавить свой oid, по вызову которого запускается скрипт и результат
> работы этого скрипта можно забрать.

    что значит добавить свой OID? куда добавить? в бинарный код утилиты что этот OID
    обрабатывает? =)

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "лезем в дебри SNMP"  +/
Сообщение от anonymous (??) on 04-Авг-12, 15:00 
> Добрый день.

Добрый.  Почитайте еще http://bog.pp.ru/work/SNMP.html

>[оверквотинг удален]
> передает OID агенту -> ??????? -> ??????? -> после "секретных" манипуляций
> агент эту инфу откуда-то достал, и выслал ответ на хост:порт менеджера.
> 1) как он обрабатывает запросы?
> 2) и какую роль здесь играют MIBы?
> 3) откуда он знает куда ломиться чтобы снять значения этих переменных?
> 4) как взаимодействует snmp agent и mib файл?
> а если мне надо достать значение датчика температуры возле первого кулера. я
> могу достать MIB с сайта вендора, вытащу OID этой переменной. но
> я уверен, что net-snmp не знает как обработать такой OID. как
> его научить?

В очень сильно упрощенном виде:

Для начала менеджер (= snmp client) транслирует человеческое имя в OID, т.е. например: sysDescr.0 в .1.3.6.1.2.1.1.1.0.  Для этой трансляции нужны файлы MIB.

Процесс на сервере (= snmp agent) во-первых, сверяется с конфигурацией (можно ли этому клиенту дать ответ на запрос этого OID), затем пробует найти в себе модуль, отвечающий на запросы к этому OID (или целому дереву), и передает запрос этому модулю.

Если вы желаете странного, то есть два варианта:
- для этого уже есть готовая MIB, и нужно написать новый модуль к агенту, который будет как-то доставать нужные данные и заполнять ими OID
- готовой нет, нужно описывать свою и выбирать для нее место в иерархии OID (это стоит делать аккуратно, например в enterprises.9999).

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру