Простой мониторинг трафика во FreeBSD

Как всегда, коротко и чётко! команды, freebsd, настройка, установка, сервер, serverБудем использовать net-snmp, mrtg и конечно же правильную ОС — FreeBSD. Вставлено 2-е сетевые карты, один из адресов которой, для наглядности возьмём 192.168.1.2
Задача:
1) смотреть трафик одного из интерфейсов сервера (IP 192.168.1.2)
2) смотреть трафик точки доступа
Ставим mrtg из портов конечно же:

cd /usr/ports/net-mgmt/mrtg
make install clean

После того как установилось, ставим из портов snmp:

cd /usr/ports/net-mgmt/net-snmp
make install clean

Не встало:

snmptrapd_log.c: In function 'realloc_handle_ent_fmt':
snmptrapd_log.c:876: warning: passing argument 5 of 'sprint_realloc_objid' from incompatible pointer type
snmptrapd_log.c: At top level:
snmptrapd_log.c:1877: internal compiler error: Segmentation fault: 11
Please submit a full bug report,
with preprocessed source if appropriate.
See for instructions.
*** Error code 1
Stop in /usr/ports/net-mgmt/net-snmp/work/net-snmp-5.4.2.1/apps.
*** Error code 1
Stop in /usr/ports/net-mgmt/net-snmp/work/net-snmp-5.4.2.1.
*** Error code 1
Stop in /usr/ports/net-mgmt/net-snmp.

Обновил порты по статье, после этого опять:

make install clean

Вываливается окно, где ставим галочки только напротив:

[X] PEPL
[X] PERL EMBEDDED
[X] DUMMY

и жмём «ОК».
Вот теперь встало.
Для примера я взял wi-fi точку D-Link 2100 AP, её трафик и будем смотреть, но можно смотреть и трафик нашего сервера по IP. Для просмотра статистики, устройство должно поддерживать snmp, D-Link 2100 AP поддерживает, настроим её. Нужно зайти на точку с правами администратора (в инструкции к устройству написан логин и пароль), и настроить snmp следующим образом:

команды, freebsd, настройка, установка, сервер, server, snmp

Теперь настраиваем snmp на freebsd посредством запуска утлиты:
snmpconf -i -f

После запуска выбираем пункт 1 (1: snmpd.conf), потом пункт 2 (2: Access Control Setup), а затем пункт 3 (3: a SNMPv1/SNMPv2c read-only access community name).
На вопрос «The community name to add read-only access for:» отвечаем именем community на которое будет отзываться наш сервер, в нашем случае это «любые лтински буквы №1″(см рисунок выше).
На вопрос «The hostname or network address to accept this community name from [RETURN for all]:» у нас есть возможность выбора:
1.нажать ENTER, все в сети могут смотреть показания нашего сервера используя «любые латинские буквы №1».
2.указать IP-адрес хоста откуда будут приходить запросы. (как вариант-хост 127.0.0.1)
На последний вопрос про ограничениях жмем ENTER.
Всё, печатаем букву f, жмем ENTER, печатаем f жмем ENTER, печатаем q, жмем ENTER и утилита по окончанию конфигурирования пишет:

The following files were created:
snmpd.conf installed in /usr/local/share/snmp

Посмотрим как выглядит /usr/local/share/snmp/snmpd.conf
Должно быть что то вроде(исправьте, если у вас не так):
rocommunity любые латинские буквы №1

Добавляем в /etc/rc.conf:
snmpd_enable="YES"

Запускаем демон snmpd:
/usr/local/etc/rc.d/snmpd start

Смотрим, запустилось ли:
ps -ax | grep snmp

Ответ на команду должен быть примерно такой:
927 ?? S 0:23.01 /usr/local/sbin/snmpd -p /var/run/snmpd.pid
76815 p0 S+ 0:00.00 grep snmp

Проверяем слушается ли порт:
sockstat | grep :161

Ответ на команду должен быть примерно такой:
root snmpd 927 13 udp4 *:161 *:*
snmpwalk -v2c -c любыелатинскиебуквы№1 127.0.0.1

здесь:
любые латинские буквы №1 -это Public Community String (см картинку выше)
127.0.0.1 — IP адрес хоста, чьи данные мы хотим узнать.
Если после запуска команды snmpwalk побежало много строчек в терминале — значит всё в порядке.
Теперь время конфигурирования mrtg.
Конфиг MRTG находится в /usr/local/etc/mrtg/mrtg.conf . Приведу пример файла mrtg.conf для рисования графиков использования сетевого интерфейса сервера freebsd с IP 192.168.1.2 и вышеупомянутой точки доступа, IP адрес её для примера будет 10.36.1.5. Итак конфиг:

Language: russian
# место где хранятся формируемые файлы
# желательно чтобы оно было в директории веб сервера
WorkDir: /usr/local/www/data/stat
background[_]: #FBEDD0
Options[_]: Bits
Forks: 4
# описание для серевой карты сервера с IP 192.168.1.2
Pagetop[srv01_net1]:
<h1>Сетевая карта с IP 192.168.1.2</h1>
Title[srv01_net1]: Сетевая карта с IP 192.168.1.2
PNGTitle[srv01_net1]: Сетевая карта с IP 192.168.1.2
MaxBytes[srv01_net1]: 250000000
Target[srv01_net1]: -/192.168.1.2:любыелатинскиебуквы№1@192.168.1.2
RouterUptime[srv01_net1]: любыелатинскиебуквы№1@192.168.1.2
#описаниие для точки доступа
Pagetop[D-Link2100AP]:
<h1>D-Link2100AP с IP 10.36.1.5</h1>
Title[D-Link2100AP]: D-Link2100AP с IP 10.36.1.5
PNGTitle[D-Link2100AP]: D-Link2100AP с IP 10.36.1.5
MaxBytes[D-Link2100AP]: 250000000
Target[D-Link2100AP]: -/10.36.1.5:любыелатинскиебуквы№1@10.36.1.5
RouterUptime[D-Link2100AP]: любыелатинскиебуквы№1@10.36.1.5

Поясню, что надпись любыелатинскиебуквы№1 означаетлюбое слово или буквосочетание латинскими буквами, это что то типо пароля для доступа к данным, вписывайте его без ковычек в тех местах, где я указывал выше.
На этом редактирование /usr/local/etc/mrtg/mrtg.conf мы закончили. Запускаем:

rehash
/usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.conf

Первые 2-а раза при запуске будет вываливаться ошибка, но на третий раз должно быть без ошибок. Ставим это всё дело в cron:
ee /etc/crontab
добавляем в самый низ строчку:
*/5 * * * * root /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.conf

И каждые 5 мин будет обновляться картинка статистики, на которую можно будет взглянуть на сервер по веб интерфейсу http://IP_сервера/stat/ и запустив любой из 2-ух сформировавшихся html файлов.

Добавить комментарий