Чтение онлайн

на главную - закладки

Жанры

Linux-сервер своими руками

Колисниченко Денис Николаевич

Шрифт:

Файл /proc/net/dev содержит информацию о работе сетевых устройств. На этом и основывается данный метод подсчета трафика. Для самого же подсчета удобнее использовать нижеприведенный сценарий stat:

#!/bin/sh

/bin/grep "$1" /proc/net/dev | /bin/awk –F ":" '{ print $2 }' | \

 /bin/awk '{ print "In: " $1 "\nOut: " $9 ; }'

Символ \ используется как перенос в обычном тексте. Его обычно используют для повышения удобочитаемости сценариев. Интерпретатором он будет воспринят как пустой символ.

Скопируйте данный сценарий в каталог /usr/bin и сделайте его выполнимым:

ср ./stat /usr/bin

chmod 755 /bin/stat

Использовать данный сценарий можно так:

/bin/stat eth0

где eth0 — это нужный вам интерфейс.

Можно было бы добавить проверку на правильность указания сценариев, но это не касается самого подсчета трафика. Попробуйте пропинговать интерфейс eth0 по его IP-адресу и снова выполните сценарий.

Честно говоря, это самый простой способ и, скорее всего, для вас он окажется совершенно бесполезным. Я привел его лишь в демонстрационных целях — это как своеобразная программка "Hello, world!".

Теперь перейдем к более традиционному методу. В данном методе для подсчета трафика используется IpChains. Чтобы глубже понимать, о чем пойдет речь, я рекомендую прочитать сначала гл. 14, а потом вернуться к этой главе. Думаю, читатель меня простит за это неудобство — так уж получилось. Впрочем, я постараюсь объяснить все как можно подробнее и в этом разделе, во всяком случае, все должно быть понятно, а за разъяснениями опций ipchains читатель может обратиться к гл. 14.

Предлагаемый мною способ является не самым лучшим, но с его помощью я надеюсь подтолкнуть читателя на создание своего фундаментального продукта для подсчета трафика. Для того чтобы данный способ работал, необходимо включить опцию IP: accounting в конфигураторе ядра и перекомпилировать его. В большинстве случаев эта опция уже включена. Затем нужно установить IpChains. Когда все будет готово, установите следующее правило IpChains:

ipchains –A output –d AAA.ААА.АAА.ААА –j ACCEPT

Данное правило нужно установить для каждого адреса, учет которого вы хотите вести. А просмотреть статистику можно с помощью команды:

ipchains –L –v

Chain input (policy ACCEPT: 4195746 packets, 1765818402 bytes):

Chain forward (policy ACCEPT: 142999 packets, 29941516 bytes) :

Chain output (policy ACCEPT: 4182597 packets, 1309541595 bytes) :

pkts bytes target prot opt tosa tosx ifname source destination

4 308 ACCEPT all 0xFF 0x00 any anywhere AAA.AAA.AAA.AAA

Как вы заметили, это не полный листинг. Я выбрал основное, пропустив поля mark, outsize и ports, которые не представляют для нас интереса.

Здесь видно, что клиент ААА.ААА.ААА.ААА получил 308 байт или 4 пакета. В данном случае в качестве пакетов вступали пакеты протокола ICMP. Правило установлено таким образом, что учет ведется по всем интерфейсам (ifname=any), из любого источника, то есть адреса (source=anywhere) и учитываются все протоколы (prot=all). Аналогично можно установить правило для учета данных, полученных от клиента. Только в этом случае необходимо будет использовать цепочку input. Вам нужно установить это правило, потому что обычно считается не только исходящий, но и входящий трафик клиента, если ваш сервер, например, выступает в роли шлюза.

Можно также использовать данные, взятые из аппаратного маршрутизатора Cisco. Кстати, через Cisco работает популярная программа tacacs+. Эта программа используется для учета времени работы пользователей в системе. И именно эта программа используется рядом провайдеров при организации dialin-доступа. Программа доступна по адресу ftp.vsu.ru/pub/hardware/cisco/tacacs/tac+ia-0.96pre9.3.tar.gz

Очень полезна также программа useripacct. Она позволяет узнать о трафике каждого пользователя.

Считать трафик можно также программой trafshow, которую вы найдете на прилагаемом компакт-диске. Эта программа считает только локальный трафик (сколько байтов принял и передал данный компьютер и от кого он принял и кому передал). Поэтому, установив ее на шлюзе, можно вполне контролировать трафик всей сети (см. рис. 8.8). Кроме того, немного изменив исходный код trafshow, можно заставить ее отображать не только IP-адреса или доменные имена компьютеров вашей сети, но и МАС-адреса. Исходный код этой программки вы также найдете на компакт-диске.

Рис. 8.8. Программа trafshow

Как я уже писал, можно привести сотни способов учета трафика, а пользоваться вы все равно будете одним. Причем, в большинстве случаев, это будет способ, который вы «изобретете» сами, написав сценарий для обработки данных статистики.

К другим способам учета трафика можно отнести учет с использованием протокола SNMP. Именно по этому протоколу работает программа MRTG . Программа MRTG предоставляет очень удобные средства для подсчета трафика: подсчет для всей сети и для отдельного узла, генерирование отчетов и диаграмм в формате HTML и многое другое.

Программа MRTG (The Multi Router Traffic Grapher) предназначена для мониторинга загрузки канала за сутки, неделю, месяц и год. Программа MRTG умеет рисовать красивые картинки в формате PNG, которые отображают состояние канала за определенный период времени.

Пример использования вы можете увидеть на сайте: http://www.stat.ee.ethz.ch/mrtg/

Для работы mrtgнам потребуется маршрутизатор, поддерживающий протокол SNMP. В этой же главе будет рассмотрен пример, позволяющий обойтись без маршрутизатора и вообще не использовать протокол SNMP. Общая конфигурация сети должна выглядеть примерно как на рис 8.9.

Рис. 8.9. Конфигурация сети

Из рисунка видно, что наша сеть получает доступ к Internet через SNMP-маршрутизатор. Компьютер MRTG — это узел локальной сети, на котором установлена программа MRTG. Программа MRTG будет периодически запускаться на узле MRTG, обновляя информацию о трафике. Пользователи локальной сети могут ознакомиться с этой информацией по протоколу HTTP. Естественно, на узле MRTG должен быть установлен Web-сервер.

Перед установкой программы убедитесь в наличии следующих библиотек:

1. gd ;

2. libpng ;

3. zlib .

Загрузить последнюю версию MRTG можно по адресу: http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/pub.

Если вы используете операционную систему RedHat версии 7 или выше, программа MRTG, скорее всего, будет уже у вас установлена. Мы не будем скачивать исходные тексты программы, а сразу воспользуемся уже собранным пакетом rpm. Установим mrtg командой:

rpm –ih mrtg*

После установки нужно подготовить программу к первому запуску, то есть указать, откуда получать сведения о трафике.

Поделиться:
Популярные книги

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Я уже барон

Дрейк Сириус
2. Дорогой барон!
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Я уже барон

Андер Арес

Грехов Тимофей
1. Андер Арес
Фантастика:
рпг
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Андер Арес

Мастер 6

Чащин Валерий
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 6

Идеальный мир для Лекаря 26

Сапфир Олег
26. Лекарь
Фантастика:
аниме
фэнтези
5.00
рейтинг книги
Идеальный мир для Лекаря 26

Путешественник по Изнанке

Билик Дмитрий Александрович
4. Бедовый
Фантастика:
юмористическое фэнтези
городское фэнтези
попаданцы
мистика
5.00
рейтинг книги
Путешественник по Изнанке

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Последний Паладин. Том 9

Саваровский Роман
9. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Последний Паладин. Том 9

На обочине 40 плюс. Кляча не для принца

Трофимова Любовь
Проза:
современная проза
5.00
рейтинг книги
На обочине 40 плюс. Кляча не для принца

Камень. Книга восьмая

Минин Станислав
8. Камень
Фантастика:
фэнтези
боевая фантастика
7.00
рейтинг книги
Камень. Книга восьмая

Старый, но крепкий 7

Крынов Макс
7. Культивация без насилия
Фантастика:
рпг
уся
фэнтези
5.00
рейтинг книги
Старый, но крепкий 7

На границе империй. Том 7

INDIGO
7. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
6.75
рейтинг книги
На границе империй. Том 7

Двойник короля 12

Скабер Артемий
12. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 12

Двойник короля 14

Скабер Артемий
14. Двойник Короля
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Двойник короля 14