Кто-нибудь знает, как отправить SNMP Trap с помощью php? Или как отправлять SNMP-ловушки в Linx? Я использовал Net-SNMP для отправки ловушек с терминала. Но это не говорит, где именно должен быть размещен MIB, и я не могу отправлять ловушки с помощью команды snmptrap. Мне нужно использовать его на сервере RedHat Linux.
Путь поиска в MIB: /home/user/.snmp/mibs:/usr/local/share/snmp/mibs
Не удается найти модуль (MY-MIB): в строке 1 (нет)
MY-MIB :: clientrap: неизвестный идентификатор объекта
Это ошибка, которую я получаю. Я уверен, что я положил файл MIB в /home/user/.snmp/mibs а также / USR / местные / доли / SNMP / MIBs как предполагает NET-SNMP. Тогда я не знаю, как возникла ошибка. Есть ли другой путь поиска MIB? Я не знаю.
Кажется, что в PHP нет прямых методов отправки SNMP-ловушек, и ответы на них тоже. И вот, наконец, я придумал свой путь, опираясь на сам Net-Snmp. Что я действительно хотел, так это отправить ловушку Snmp из программы php. Наконец-то я смог сделать это с помощью библиотеки Net-Snmp через терминал Linux. Ниже приведены шаги.
Установите Net-Snmp: есть два способа установить пакет net-Snmp на ваш Linux-компьютер
1) Загрузив пакет Net-Snmp с sourceforge.net, как указано в http://www.net-snmp.org/wiki/index.php/Net-Snmp_on_Ubuntu.
2) Установив модуль pysnmp — этот метод показался более простым. Также вы можете сделать это двумя разными способами.
оба метода описаны здесь — https://pynet.twb-tech.com/blog/snmp/python-snmp-intro.html
причина, по которой мы устанавливаем pysnmp, заключается в том, что пакет pysnmp автоматически устанавливает базовые библиотеки NET-SNMP, даже если он предназначен для программ на python.
подтвердите установку NET-SNMP, набрав команды snmpd — версия или же snmpget или же SNMPTRAP и т.п.
Найдите путь поиска MIB с помощью команды snmpget -Dparse-mibs 2>&1 | grep directory
, Он покажет пути, по которым Net-Snmp ищет файлы MIB. Обычно результаты таковы:
parse-mibs: каталог сканирования /var/www/html/User/.snmp/mibs
parse-mibs: невозможно открыть каталог MIB /var/www/html/User/.snmp/mibs
parse-mibs: каталог сканирования / usr / local / share / snmp / mibs
Скопируйте (Загрузите) файл MIB в ‘.текст’ отформатировать в один из доступных путей поиска MIB. Обычно это
/ USR / местные / доли / SNMP / MIBs
Отправить ловушку с помощью команды
snmptrap -v 2c -c public 192.168.1.1:162 «» MIBNAME-MIB :: trapname MIBNAME-MIB :: message1 s «Привет» MIBNAME-MIB :: message2 s «Это работает»
Теперь у нас есть команда оболочки. Мы можем запустить его в PHP, используя Exec () функция.
`
exec("snmptrap -v 2c -c public *192.168.1.1:162* '' MIBNAME-MIB::trapname MIBNAME-MIB::message1 s 'Hi' MIBNAME-MIB::message2 s 'It works'", $output, $result);
обратите внимание, что «192.168.1.1:162» — это IP-адрес менеджера вместе с номером порта. MIBNAME — это имя модуля MIB, указанное в файле MIB, а trapname — это имя trapname в файле MIB.
Предполагается, что у вас есть работающий SNMP Manger на данном IP, чтобы получать ловушки Snmp в формате, указанном в файле MIB в SNMP Manager.
Других решений пока нет …