2009-09-08 6 views
8

Я пытаюсь сделать сайт PHP отправлением информации через SNMP. Я читал о SLOT, но я все еще немного не знаю, с чего начать.Сделать сайт PHP отправить информацию SNMP в приложение для управления сетью

Я считаю, что мне нужно создать MIB со всеми OID, которые мой сайт будет использовать для отправки информации. Это верно? Как и где я могу определить эти переменные (OID)? Может ли кто-нибудь указать мне в правильном направлении?

Я использую FreeBSD на сервере.

Заранее спасибо.

+0

Вы пытаетесь, чтобы ваш процесс PHP прослушивал запросы SNMP-объекта, или вы пытаетесь отправить его SNMP-ловушки? – derobert

+0

На самом деле я пытаюсь установить значения и отправить ловушки. Например, я хотел бы взять время выполнения запрошенной страницы и установить ее в OID SNMP и отправить ловушку. Тогда приложение сетевого менеджера получит ловушку и будет знать, что был запрошен запрос страницы, и потребовалось n секунд для загрузки. – rogeriopvl

ответ

4

Что вы пытаетесь сделать, это отправить «SNMP trap». Вам не нужно обязательно определять MIB. MIB просто переводит «полу-дружеское» имя в OID, например SNMPv2-MIB :: sysContact.0 в .1.3.6.1.2.1.1.4.0. Для частного приложения теоретически можно использовать любой OID, который вы хотите, так же, как теоретически можно использовать любой IP-адрес, который вы хотите для частной сети, которая не связана с другими. Я не уверен, есть ли предпочтительная «частная» ветвь OID. Есть некоторая хорошая информация, чтобы вы начали с http://www.paessler.com/support/kb/questions/49/. Похоже, что PHP не поддерживает прямую отправку SNMP-ловушек, но вы можете вызвать команду «snmptrap».

+0

Ваш ответ дал мне ценную информацию, чтобы попасть по правильному пути. Благодарю. – rogeriopvl

0

Что я знаю, так это то, что протокол SNMP является протоколом, где хост посылает запрос на значение определенного OID на устройство, а затем получает ответ.

Я не уверен, что вы можете иметь веб-сайт php, отвечающий на эти пакеты.

Единственная информация, которую я нашел, что PHP есть клиент класс SNMP PHP SNMP

И википедия дает вам подробную информацию о SNMP link text

Но я по-прежнему уверен, что сайт не может выступать в качестве сервера SNMP.

+0

PHP имеет функции сокетов, поэтому его можно использовать для прослушивания запросов SNMP путем создания UDP-сокета с socket_create. – derobert

+0

Я знаю, что PHP имеет функции сокетов ... но «веб-сайт», заданный в вопросе, не может создать цикл ожидания для приема пакета UDP. Если вопрос был о программе php, которая работает в поле. ОК! –

1

Есть несколько вопросов:

  • Чтобы получить свой собственный идентификатор верхнего уровня, я думаю, что вы на самом деле должны просить его где-нибудь, однако есть экспериментальный диапазон, который вы можете (и, вероятно, платить деньги?) использовать для тестирования. (это не проблема php, это проблема/функция snmp)

  • Насколько я знаю, протокол предполагает процесс прослушивания порта, который полностью отличается от порта http, а также не использует TCP но UDP. Просто создание php-страницы обычным способом не сработает.

Возможным решением может быть использование модуля SNMP в апача (или любой другой веб-сервер вы используете), что позволяет программировать логику ответа на PHP. Я чувствую, что большинство PHP-файлов snmp, с которыми вы сталкиваетесь в Интернете, - это не часть агента, а часть менеджера.

+0

Да, я уже использую модуль snmp на Apache. Мне просто нужно иметь возможность писать значение OID каждый раз, когда запрашивается страница. Но для этого я считаю, что мне нужно создать «структуру» в MIB. – rogeriopvl