Traffic Reg Software  
English version    С момента открытия сайта прошло: 22 лет 3 месяца 3 дня  auto
Статьи  Как считать трафик на FreeBSD. Часть вторая. Веб-интерфейс для сисадмина 
 

Как считать трафик на FreeBSD. Часть вторая. Веб-интерфейс для сисадмина

Автор TMeter

В предыдущей статье я рассмотрел вопрос о том, как заносить подсчитанный трафик в MySQL-таблицу вида:

Имя поляТип поляНазначение поля
dtdateДата в формате 2002-12-31
ipchar(16)IP адрес, например 192.168.3.2
sentbigintКоличество посланных байт для данного IP адреса
recvbigintКоличество принятых байт для данного IP адреса

Рис. 1. Таблица traffic

Цель данной статьи - рассказать, как соорудить веб-интерфейс для просмотра накопленных данных о трафике (из предыдущей статьи) для сисадмина. Задача сисадмина - узнать, сколько тот или иной IP адрес потребил трафика в определенный промежуток времени.

Все скрипты для данной статьи написаны на языке php, поэтому потребуется веб-сервер с поддержкой языка PHP (например Apache).

Шаг 1. Создание странички для подготовки SQL-запроса

Эта страничка должна вывести список всех имеющихся IP адресов в таблице traffic и позволить сисадмину выбрать временной интервал задания запроса. Список всех IP адресов можно подготовить командой:

SELECT distinct ip FROM traffic

А сама страничка будет выглядеть примерно следующим образом:

Шаг 2. Создание странички для отображения SQL-запроса

Эта страничка будет выводить счетчики трафика для адресов, выбранных на предыдущем шаге. Страничка имеет два режима. Первый режим отображает итоговую сумму по всем адресам за определенный интервал времени при помощи SQL-запроса:

SELECT ip, sum(sent), sum(recv) FROM traffic where ((dt>=$from_date) AND (dt<=$to_date)) group by ip

Второй режим будет выводить детализацию трафика конкретного IP адреса по дням:

SELECT dt, sent, recv from traffic where ((ip=$ip) AND (dt>=$from_date) AND (dt<=$to_date))

Параметры доступа к базе данных MySQL из PHP (имя хоста БД, имя БД, имя пользователя и пароль) заданы в заголовке скрипта inc/procs.inc. Ну, и, конечно, чтобы посторонний не имел доступа на сервер статистики, его необходимо запаролить. В Apache это можно сделать следующим образом:

<Directory /usr/local/virtual/tmeter2/htdocs>
AuthType Basic
AuthName LanAdminStat
AuthUserFile /usr/local/virtual/tmeter2/tmeter2.passwd
<Limit GET POST>
require valid-user
</Limit>
</Directory>

Загрузить набор скриптов из этой статьи ipacc_trafd2.tgz (1,5кбайт)

 
 

Как вы оцениваете эту статью?

Отлично
Хорошо
Так себе
Отстой