Документация по ОС FreeBSD Вторник, 17.06.2025, 08:00
Приветствую Вас Гость | RSS
Меню сайта

Категории каталога
Apache [58]
DNS [25]
FTP [27]
Mail [74]
Samba [24]
Squid [46]
SSH [23]
VPN [35]
РРР [20]
Net [173]

Главная » Статьи » Сеть » Net

Мониторинг сетевой подсистемы FreeBSD [2008]
Написать данную статью меня побудило падение интернета на нашей техплощадке. То есть иногда 50-100 мегабитный поток внезапно превращался в 10 мегабитный, а то и вообще рвался. После долгих общений с вышестоящим провайдером и многочасовых изучений выводов различных команд было решено, что какой-то из компьютеров сети (всего около 1200) генерирует множество пакетов в направлении Интернета. Опытным путем, а именно выдергиванием джеков, злоумышленник, если его можно так назвать, был установлен и обезврежен. Причиной, как вы догадались, являлись банальные вирусы. Данный мануал поможет желающим представить важные параметры своей сетевой подсистемы в виде графиков для удобства мониторинга. Эта система работает у меня на FreeBSD 7.0-STABLE и четырехядерном Пентиум-4. На нем осуществляется подсчет трафика и nat всей сети.
   
Нам понадобится:

* Mrtg;
* Apache;
* Php (я для простоты написал на нем сам скрипт, но можно использовать любой язык по своему вкусу)
* Awk
* самописный скрипт на основе которого и будут строиться графики.
Основой скрипта является наблюдение при помощи команды top -S за загрузкой процесса swi1:net, отвечающей за сетевую подсистему;

Устанавливаем mrtg:

# cd /usr/ports/net-mgmt/mrtg && make install

Он сам вытянет за собой несколько библиотек, необходимых ему для работы.
В данном примере я буду получать информацию непосредственно с вывода команды top -S. Скрипт будет выглядеть следующим образом:

/home/ts/graph/swi.php

                //из вывода top-а выделяем относящееся к swi1:net и отсоединяем значение загруженности
        //(число)

        $swi = `top -S|grep swi1|awk '{print $11}'`;
        //убираем знак процента (%)
        $swi = substr($swi, 0, -2); 
        //Делаем вывод целым (необходимо для mrtg)
        $swi=intval($swi);\
        //вывод значения. Осуществляется дважды из-за капризности mrtg.
        echo $swi;
        echo "\n";
        echo $swi;
        ?>

То есть, мы отдаем 2 одинаковых строки - загрузка (в процентах) сетевой подсистемы FreeBSD.
   
Далее пишем конфигурационный файл mrtg:
   
        WorkDir: /usr/local/www/apache22/data
        Target[swi]: `/usr/local/bin/php /home/ts/graph/swi.php`
        Options[_]: gauge, noo,growright,nopercent
        MaxBytes[_]: 100
        WithPeak[_]: ymwd
        Title[swi]: Analysis of SWI:NET load averages
        PageTop[swi]: <H1>SWI:NET Load Averages</H1>
        ShortLegend[swi]: %
        YLegend[swi]: % of Load

Здесь WorkDir - каталог, где будут храниться html и рисунки, содержащие графики загрузки внешней сетевой карты. MaxBytes - максимальное значение параметров (в нашем случае -100, т.к. используются проценты.
Параметр Target является для нас самым важным, т.к. именно это есть источник данных о целевом процессе. Сюда мы просто впишем полный путь нашего скрипта, получающего данные. WithPeak - изображение пиков в графике (week, month, year).

Далее запускаем indexmaker для создания html-странички:
   
# indexmaker /usr/local/etc/mrtg/mrtg.cfg > /usr/local/www/apache22/data/index.html

Также поместим вызов mrtg под управление cron:

        */5 * * * * /usr/local/bin/mrtg /usr/local/etc/mrtg/mrtg.cfg --logging /usr/local/www/apache22/data/mrtg.log

После этого внимательно следим за адресом http://localhost/index.html на предмет выявления чрезвычайной загруженности сетевой подсистемы и принятия решительных мер по ее устранению.


Источник: http://www.opennet.ru/base/sys/freebsd_net_mon.txt.html
Категория: Net | Добавил: oleg (24.10.2008) | Автор: Виктор Цедрик aka TSYUHA
Просмотров: 983 | Рейтинг: 5.0/1 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Beastie

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
links

Copyright MyCorp © 2025