Зміст

Налаштування snmptrapd на FreeBSD

Редагуємо rc.conf

  # vim /etc/rc.conf
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
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

Ввімкнення в Ubilling

Для гнучкого відстеження трапів, що відбуваються, існує відповідний модуль “Це пастка!” (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 трап у вигляді масиву, кількість останніх.