Возможно вы искали: 'Devil May Cry 2'

May 15 2025 19:26:34
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96111483
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18357
• Обзор The Walking ... 18801
• Обзор DMC: Devil M... 19879
• Обзор на игру Valk... 15877
• Обзор на игру Stars! 17764
• Обзор на Far Cry 3 17948
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17508
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16619
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14721
• Превью Firefall 13479
• Превью Dead Space 3 16334
• Превью о игре SimC... 14730
• Превью к игре Fuse 15442
• Превью Red Orche... 15542
• Превью Gothic 3 16343
• Превью Black & W... 17354
Главная » Статьи » Разное » Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp billing linux)

Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp billing linux)

Ключевые слова: squid, traffic, mysql, isp, billing, linux, (найти похожие документы)

From: Осипов Станислав <demofly at mail ru>
Newsgroups: email
Date: Mon, 16 Jan 2004 14:31:37 +0000 (UTC)
Subject: Подсчет трафика проходящего через Squid используя MySQL

Как сделать подсчет трафика Squid через MySQL в Linux
-------------------

Мой механизм был мной создан для организации, в которой я работаю. У нас
стоит сервер-шлюз Linux 2.6.0 через который по гигабитным интерфейсам
люди выходят в инернет через NAT.

Пару лет назад я мечтал разработать такой механизм для другой
организации, и вот сейчас вам представляю простейшую и наглядную схему.

Общая схема состоит из пяти составляющих:

1. Squid сервер, ведущий логи в native squid формате (родной формат,
несовместимый с форматом apache-логов)

2. MySQL сервер

3. iptables, которая на шлюзе весь HTTP трафик заворачивает на проксю Squid ()

4. Два сделанных мной скрипта. Один squid-to-mysql, для перегонки лога в
БД, второй - index.php для отображения статистики.

5. Apache+PHP - нужен для работы php-скрипта, отвечающего за отображение
трафика по WWW.

Для тех, у кого Squid используется не как прозрачный прокси, третья
составляющая системы (iptables) не обязательна и на остальное, здесь
описанное не влияет.

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

У меня это работает на: squid 2.5, MySQL 4.0.14, iptables 1.27a, Apache
1.3.27, PHP 4.3.2.

Итак, чтобы приступить к самому созданию всего, что может понадобиться,
я полагаю, что у вас уже установлен mysql, squid и все настроено.

Далее я буду полагать, что лог посещений squid лежит в
/var/log/squid/access.log

Делаем скрипт squid-to-mysql следующего содержания:

#!/bin/bash

cp /www/logs/squid/access.log /tmp/squidforparse.log
>/www/logs/squid/access.log
awk '{print "INSERT INTO squid (ip,bytes,link,trans,time) VALUES(""$3"","$5",""$7"",""$9"",from_unixtime("$1"));"};' < /tmp/squidforparse.log | mysql -D traffics -u root --password=my_sql_passwd
rm -f /tmp/squidforparse.log

и размещаем его, например, в папке с нашими скриптами /scripts/

После того, как мы подготовим MySQL-структуры, не забудьте его повесить
в расписание crontab с частотой выполнения на ваше усмотрение
(оптимально - раз в сутки в 2-3 часа ночи).

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

Третья строка - собственно перегон лога в mysql запросы, и немедленная
передача сгенерированных запросов самой БД.

Четвертая - собссно, уборка за собой. Как видите, все проще простого.

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

Заходите:

mysql -u root -p

введите пароль доступа к БД (в вышеприведенном скрипте я полагал и буду
далее полагать, что он my_sql_passwd) далее в mysql консоли вводим такие
команды:

mysql>create database traffics;
mysql>use traffics;
mysql>create table squid(ip varchar(16), bytes bigint unsigned, link text, trans varchar(65), time datetime);

все, с БД мы справились. Выходим из mysql.

Теперь надо сделать скрипт для чтения статистики в HTML. Я полагаю, что
когда вы набирали в поиске squid+mysql, это значит, что вы стремитесь
использовать mysql для упрощения работы с данными, и, следовательно,
используете PHP для работы с MySQL в скриптах веб-сервера. Исходя из
предположения, что у вас с Apache+PHP все ок (а если нет, ищите тут
доки, их тут много), я напишу свой скрипт отображения ежемесячной
статистики на PHP.

Пусть у нас корень документов веб-сервера apache в /www/htdocs/.
создадим в нем папку reports:

#mkdir /www/htdocs/reports

в папке /www/htdocs/reports создаем файл index.php следующего содержания
(если просто скопировать, ничего не пострадает, так как скрипт делает
только самое необходимое - соединияется с БД, запрашивает отчет,
конструирует HTML, и отдает клиенту):

<?

$color=""; $year = ""; $ipv4=getenv("REMOTE_ADDR");
$res = mysql_connect("127.0.0.1", "root", "my_sql_passwd") or die("Fatal PHP 'MySQL CONNECT' error.");
$res = mysql_select_db("traffics") or die("Fatal database query 'USE' error");
if ($HTTP_GET_VARS["month"]=="list") {
$res = mysql_query("SELECT DISTINCT(LEFT(time,7)) AS month,LEFT(time,4) AS year FROM squid ORDER BY year DESC,month DESC;");
while ($rw=mysql_fetch_array($res)) {
if ($year<>$rw["year"]) {
$year=$rw["year"];
$table.="<H3>$year год:</H3>";
};
$table.="<a href=$PHP_SELF?month=".$rw["month"].">".$rw["month"]."</a> ";
}; $otherlink="<a href=$PHP_SELF?>За текущий месяц</a>";
} else {
system("./squid-to-mysql");
if ($HTTP_GET_VARS["month"]=="") {
$res = mysql_query("SELECT LEFT(NOW(),7) as month");
$rw=mysql_fetch_array($res);
$cur_month=$rw["month"];
} else $cur_month=$HTTP_GET_VARS["month"];
$res = mysql_query("SELECT round(sum(bytes)/10000)/100 as trf,ip FROM squid WHERE (LEFT(time,7)='$cur_month') AND (trans<>'NONE/-') GROUP BY ip ORDER BY LENGTH(ip),ip;");
while ($rw=mysql_fetch_array($res)) {
if ($ipv4 == $rw["ip"]) $color=" bgcolor='#FFDDDD'";
else $color='';
$table.="
<tr$color><td>&nbsp;".$rw["ip"]."&nbsp;</td><td align=right>&nbsp;".gethostbyaddr($rw["ip"])."&nbsp;</td><td align=right> ".$rw["trf"]." МБ&nbsp;</td></tr>";
};
$res = mysql_query("SELECT round(sum(bytes)/10000)/100 as trf FROM squid WHERE (LEFT(time,7)='$cur_month') AND (trans<>'NONE/-');");
$rw=mysql_fetch_array($res);
$extwwwtrf=$rw["trf"];
$table.="<tr><td colspan=2>&nbsp;Итого: </td><td align=right>&nbsp;".$extwwwtrf." МБ&nbsp;</td></tr>";
$res = mysql_query("SELECT round(sum(bytes)/10000)/100 as trf FROM squid WHERE (LEFT(time,7)='$cur_month');");
$rw=mysql_fetch_array($res);
$locwwwtrf=$rw["trf"];
$econtrf=$locwwwtrf-$extwwwtrf;
$table.=" <tr><td colspan=3 align=center bgcolor=#DDFFDD>Статистика прокси-кэша за $cur_month:</td></tr>
<tr><td colspan=2>&nbsp;Скачано локально: </td><td align=right>&nbsp;$locwwwtrf МБ&nbsp;</td></tr>
<tr><td colspan=2>&nbsp;Скачано из интернета: </td><td align=right>&nbsp;$extwwwtrf МБ&nbsp;</td></tr>
<tr><td colspan=2>&nbsp;Сэкономлено системой: </td><td align=right>&nbsp;$econtrf МБ&nbsp;</td></tr>";
$table="<table align=center cellspacing=0 border=1 bordercolor='#777777'>
<tr><td align=center colspan=3 bgcolor=#DDFFDD>Статистика за $cur_month:</td></tr>$table
</table>";
$otherlink="<a href=$PHP_SELF?month=list>Другой месяц</a>";
};
echo "
<HTML>
<HEAD>
<TITLE>Трафик</TITLE>
</HEAD>
<BODY>
<table align=center cellspacing=0 border=0 cellpadding=0 height='100%' width='100%'>
<tr height='100%'><td width='100%' valign=top colspan=2>
$otherlink
<CENTER>
$table
</CENTER>
<BR>
</td></tr>
<tr><td width='100%'></td>
<td valign=bottom align=right bgcolor='#FFDDDD'>&nbsp;&copy;&nbsp;<a href='mailto:demofly@mail.ru'>Осипов&nbsp;С.С.</a>,&nbsp;2004.&nbsp;</td></tr>
</table>
</BODY>
</HTML>";

?>

Предположим, что веб-сервер работает с правами пользователя apache. Делаем

chmod 644 -R /www/htdocs/reports
chown apache.apache -R /www/htdocs/reports
chmod +s /scripts/squid-to-mysql
ln -s /scripts/squid-to-mysql /www/htdocs/reports/squid-to-mysql
chmod 666 /var/log/squid/access.log

Это сделано для полноценной работы скрипта php. Механизм несовершенен с
точки зрения безопасности, можете искать обходные пути для правильного
(полностью безопасного) рефрешинга логов из native squid в mysql по той
причине, что последней командой мы открыли на запись файл логов прокси
группе "others".

Далее, если я хочу, чтобы только нужные мне IP-адреса могли иметь доступ
к этому скрипту, я делаю в httpd.conf (конфиг веб-сервера Apache, эта
настройка необязательна):

<Location /reports/>
order allow,deny
allow from 192.168.3.0/24 127.0.0.0/8
</Location>

Где 192.168.3.0/24 - моя локальная сеть. 24 - это маска, она заменяет
маску 255.255.255.0
598 Прочтений •  [Подсчет трафика проходящего через Squid используя MySQL (squid traffic mysql isp billing linux)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Подсчет трафика проходящего через S... Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка