The OpenNET Project / Index page

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

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

"Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от медведдд email(ok) on 26-Июн-13, 10:41 
Здравствуйте!

Поставили передо мной задачку - на си ловить snmp-трапы и засовывать их в OracleSQL.
Долго пытался свой простенький велик изобрести, не выходит ничего путнего.

Сейчас ковыряюсь со стандартным net-snmp (www.net-snmp.org), в котором есть snmtrapd. И опять банан. Не могу найти в каком месте можно вклиниться. С либой для Оракла, как ни странно, всё в порядке. Несколько строчек кода и всё работает.

Но где перехватывать уже раскодированные и распарсенные данные в snmptrapd - хоть бей, хоть режь, не пойму... У сего демона есть ключ -d - дампить на экран пакеты. Именно то, что надо. Делаю make clean, вставляю в разных местах тестовые printf(, make и ничего не происходит. Голова скоро поломается.

Заранее спасибо за любые советы!

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

Оглавление

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


1. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от Аноним (??) on 26-Июн-13, 15:51 
Курим man snmptrapd.conf
Особенно в части traphandle.


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

2. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от медведдд email(ok) on 27-Июн-13, 05:10 
> Курим man snmptrapd.conf
> Особенно в части traphandle.

Оракля жирная и на каждый trap не успевает стартануть, потери трапов начинаются ОЧЕНЬ быстро (буквально при 3-4 одновременных событиях). Вариант с fork 1 тоже не нравится, если совпадет 10-15 трапов, это уже forkbomb будет :)

В общем, надо вклиниться в snmptrapd и поднимать коннект при старте проги. На каждый трап по insert-у и коммит раз в 10-20 вставок. Кто-нибудь поможет? :)

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

3. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от anonymous (??) on 27-Июн-13, 12:06 
>> Курим man snmptrapd.conf
>> Особенно в части traphandle.
> Оракля жирная и на каждый trap не успевает стартануть, потери трапов начинаются
> ОЧЕНЬ быстро (буквально при 3-4 одновременных событиях). Вариант с fork 1
> тоже не нравится, если совпадет 10-15 трапов, это уже forkbomb будет
> :)
> В общем, надо вклиниться в snmptrapd и поднимать коннект при старте проги.
> На каждый трап по insert-у и коммит раз в 10-20 вставок.
> Кто-нибудь поможет? :)

/etc/snmp
authCommunity execute,net trapcomm
doNotLogTraps yes
traphandle default /usr/local/bin/traps.tcl

traps.tcl - это мой скрипт, который обрабатывает трапы в соответствии с заданными правилами.
Получаю достаточно много трапов, но повышенной загрузки на сервере от этого не ловил никогда. Если планируете получать сотни трапов в секунду - для всех скриптовых языков общего назначения есть модули (tcl, perl, python как минимум), позволяющие напрямую получать трапы, запустив свой trapd прямо из скрипта.
Не хотите делать инсерт в бд каждый раз - пишите трапы в файл и раз в минуту вызывайте обработчик для этого файла, например.
Или вариант со своим trapd и хранением трап в памяти и инсертом при получении определенного количества трап.

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

4. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от медведдд email(ok) on 27-Июн-13, 12:22 
Скажу честно, и сам вижу несколько разных путей решения проблемы. И на перле мог бы написать демона за полчаса. Но задачу поставили именно так, как описано выше. Самому смешно.

p.s. В списках рассылки net-snmp у народа потери начинаются при 3000 трапов в минуту. То есть, запас у net-snmp колоссальный. Надо к нему Оракуль прикрутить как-то.... %-(

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

5. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от Andrey Mitrofanov on 27-Июн-13, 14:08 
> Скажу честно, и сам вижу несколько разных путей решения проблемы.

Так, "сделай" демона:

snmptrapd -$ключ_для_демона -F $формат_для_printfa | свой_демон_на_perle &

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

6. "Не могу найти нужное место в пакете net-snmp"  +/
Сообщение от igor (??) on 14-Июл-13, 22:36 
> Поставили передо мной задачку - на си ловить snmp-трапы и засовывать их
> в OracleSQL.
> Долго пытался свой простенький велик изобрести, не выходит ничего путнего.

Поймать на UDP трап, разобрать ASN.1 (BER) - ОЧЕНЬ несложно. Может все таки свой велосипед прикрутить?

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

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

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




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

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