Передайте пакет ловушки SNMP демону php в Ubuntu

У меня есть сервер Ubuntu, который собирает входящие SNMP-ловушки. В настоящее время эти ловушки обрабатываются и регистрируются с использованием сценария PHP.

файл /etc/snmp/snmptrapd.conf

traphandle default /home/svr/00-VHOSTS/nagios/scripts/snmpTrap.php

Этот скрипт довольно длинный и содержит много операций с базой данных. Обычно сервер получает тысячи прерываний в день, и поэтому этот сценарий отнимает слишком много процессорного времени. Насколько я понимаю, это связано с высокой стоимостью запуска php-скрипта каждый раз, когда ловушка получена.

Я получил запрос переписать это, и я думал о запуске этого скрипта в качестве демона. Я могу создать демон Ubuntu. У меня вопрос, как я могу передать trap-обработчик этому демону, используя snmptrapd.conf файл?

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

2

Решение

Одно из предложений — использовать поддержку mysql, встроенную в 5.5 snmptrapd. Таким образом, вы можете использовать mysql в качестве очереди и массово обрабатывать ловушки.

подробности об этом на странице snmptrapd: http://www.net-snmp.org/wiki/index.php/Snmptrapd

Если не используется mysql, другой вариант — использовать именованный канал.

Делай mkfifo snmptrapd.log
Теперь измените snmptrapd для записи в этот журнал. Это не файл, но выглядит как один. Затем вы пишете другого демона, чтобы наблюдать за именованным каналом на наличие новых данных.

1

Другие решения

Вероятно, вы можете использовать php-fpm / php-fcgi, чтобы минимизировать стоимость запуска PHP-скрипта.

Хотя вам, вероятно, нужно написать сценарий оболочки-оболочки для пересылки запроса из snmptrapd в протокол fcgi.

Но сначала я бы порекомендовал проверить скрипт PHP. Стоимость запуска PHP не так высока, что несколько запросов в минуту должны значительно увеличить загрузку процессора.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector