Немного статей про *nix
 

Мониторинг сетевой подсистемы FreeBSD (swi1:net)

06.07.2009
Написать данную статью меня побудило падение интернета на нашей техплощадке. То есть иногда 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
<?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

Партнеры проекта
Хостинг от RU-Life.NET - надежно, выгодно, проверено!
 

Все права защищены. © Unix66.ru, 2009

Допускается полное, либо частичное цитирование размещенной информации,
при условии размещения ссылки на Unix66.ru в качестве источника.