Редагуємо rc.conf
# vim /etc/rc.conf
snmptrapd_enable="YES" snmptrapd_flags="-On -A -Lf /var/log/snmptrapd.log -c /usr/local/etc/snmptrapd.conf"
Створюємо конфіг для snmptrapd
# vim /usr/local/etc/snmptrapd.conf
pidFile /var/run/snmptrapd.pid format1 %y-%02.m-%02.l %02.2h:%02.2j %b %N %v\n format2 %y-%02.m-%02.l %02.2h:%02.2j %b %N %v\n ignoreauthfailure yes disableAuthorization yes
Створюємо файл під лог
# touch /var/log/snmptrapd.log # chmod 777 /var/log/snmptrapd.log
Запускаємо
# /usr/local/etc/rc.d/snmptrapd restart
Для гнучкого відстеження трапів, що відбуваються, існує відповідний модуль “Це пастка!” (It`s a trap!). Вмикається відповідною опцією в alter.ini:
ITSATRAP_ENABLED=1
Налаштування модуля просте й очевидне за своєю суттю:
1. Вказуємо джерело даних у вигляді файлу або HTTP URL віддаленого джерела даних (про це трохи далі) 2. У разі локального шляху (думаємо, в 99.5% випадків це буде наш /var/log/snmptrapd.log) вказуємо кількість рядків для обробки 3. Дивимося очима в “Raw Дані” і визначаємо рядок, входження якого ми будемо використовувати як фільтр отриманої трапи. 4. Усе, можемо тепер дізнаватися, які “Події” відбувалися і на якому обладнанні.
У разі якщо у вас вже є snmptrapd, який збирає трапи на якомусь віддаленому хості, ви також можете вказати “Шлях до файлу або URL джерела даних” у вигляді http://somehostname/remotetraps/. Реалізувати вивалювання вашого snmptrapd.log у веб із мінімізацією переданого трафіку, ви можете за допомогою скрипта на кшталт такого:
<?php set_time_limit(0); $command='tail -n 200 /var/log/snmptrapd.log'; print(shell_exec($command));
Для цього ми можемо використовувати скажімо такий ось One-Punch скрипт
$itsatrap = new ItSaTrap(); $watchdogCallbackResult=$itsatrap->getLastTraps(2, 4); // 2 - ID трапи, 4 - кількість останніх.
А якщо потрібно ловити кілька різних ID трап у межах одного завдання собаки? Припустимо, це все якісь різні види loopguard? Дуже просто і так само, просто вказавши ID типів, але вже у вигляді масиву:
$itsatrap = new ItSaTrap(); $watchdogCallbackResult=$itsatrap->getLastTraps(array(2,6,10), 4); // ID трап у вигляді масиву, кількість останніх.