Serg79
|
|
« : 10-01-2010 18:18 » |
|
В связи с тем что TrafStat обзавелся своей "Системой Управления Проектом", всю информацию о развитии проекта теперь можно получить на сайте http://redmine.shelek.su/projects/trafstat.
В связи с этим событием, обновление данной страницы более не будет осуществляться.10-03-2010 Краткое описаниеСистема TrafStat предназначена для учета и хранения информации о Internet трафике. Накопленная статистика хранится в SQL сервере, визуализация накопленной статистики осуществляется через WEB-интерфейс. TrafStat на данный момент не имеет единой установочной последовательности. Необходимо проводить конфигурацию под каждую отдельную систему.Комплекс состоит из следующих компонентов- Коллектор информации о проходящем трафике.
- Периодически запускающиеся скрипты для сбора информации у коллектора и служебного обслуживания базы данных. Запуск скриптов производится системным демоном crond.
- Хранилище информации о трафике база данных MySQL
- WEB-интерфейс реализован на PHP. В качестве WEB-сервера используется HTTP сервер Apache.
Реализовано следующееСтатистика по месяцам: Статистика за месяц: Статистика за месяц по пользователю: Статистика запросов к удаленному серверу пользователем за месяц: Руководство по развертыванию системыРазработка комплекса видеться под операционную систему Linux, но он так же будет работать под любой UNIX подобной системой. Загрузить проект можно с SVN сервера форума http://svn.shelek.su/ .
|
img1.PNG (29.32 Кб - загружено 3321 раз.)
img2.PNG (47.04 Кб - загружено 2936 раз.)
img3.PNG (46.63 Кб - загружено 3426 раз.)
img4.PNG (40.97 Кб - загружено 3253 раз.)
|
« Последнее редактирование: 09-03-2010 21:02 от Serg79 »
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #1 : 15-01-2010 21:42 » |
|
Извечный вопрос: что делать? Заданий нет. Если нужны идеи, то нужно обозначить цели проекта и требования к разрабатываемой системе.
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Sla
|
|
« Ответ #2 : 15-01-2010 21:47 » |
|
У меня вопрос другого порядка, а сейчас это кому-то нужно? И это при сегодняшних мегабитных каналах и анлим трафиках?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #3 : 15-01-2010 22:29 » |
|
Для начала хочу построить WEB-интерфейс аналогичный SARG. Отличие от SARG в учете трафика проходящего через маршрутизатор и хранение информации в базе данных, SARG работает с логами Squid и формирует статические HTML-ки. Далее хочу прикрутить ограничение на трафик для пользователей, думаю реализовывать через iptables. Ну а также добавить прокси Squid и так же отображать статистику по нему. Для рисования графиков использую JpGraph, с его помощью нарисовать можно много чего. Подскажите, какие еще графики можно добавить?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #4 : 15-01-2010 22:34 » |
|
Serg79, посмотри в сторону lightsquid, так же настраивается на логи squida. Соответственно, можно написать свой скрипт добавления в таблицу файрвола правил для ограничения трафика.
И все же ты не ответил на вопрос - кому это нужно? Хотя да, помню. Ты жаловался на "короткий" интерент канал.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #5 : 15-01-2010 22:35 » |
|
Вот такие две диаграммы хочу прикрутить к каждой таблице: Только пока не знаю какую информацию на них повесить.
|
img.PNG (5.02 Кб - загружено 3223 раз.)
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #6 : 15-01-2010 22:40 » |
|
Sla, да много где нужно. Мне например нужно. Хочу уточнить, что я не хочу делать подобие билинговой системы. Это прежде всего будет визуализация статистики по пользованию Internet, ну а далее ограничение его использования.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #7 : 15-01-2010 22:46 » |
|
понятно что squide'е биллинг не построишь. Посмотри в сторону lightsquid. Намного легче sarg, отчеты текстовые, привязаться можно к ip-адресам.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #8 : 23-02-2010 09:39 » |
|
Обновил описание проекта. Требуется идея)))На странице статистики ( смотри первый пост) два раза отображается одна и та же круговая диаграмма, это сделано для заглушки пустого места в строке графиков. Подскажите, какую информацию еще можно отобразить с помощью круговой диаграммы или иного графика, что бы заменить дублирующую картинку?
|
|
« Последнее редактирование: 23-02-2010 09:41 от Serg79 »
|
Записан
|
|
|
|
Sla
|
|
« Ответ #9 : 23-02-2010 09:48 » |
|
Serg79, а почему в требованиях не сказано что требуется trafd? или я не понял откуда берутся логи?
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #10 : 23-02-2010 09:51 » |
|
Sla, убрал при редактировании так как он находиться в проекте и сторонней его инсталляции не требуется.
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #11 : 23-02-2010 10:14 » |
|
Кстати, а чем ты рисуешь русские буквы на графиках? чесслово - лень лезть в проект - проще спросить.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Serg79
|
|
« Ответ #12 : 23-02-2010 10:31 » |
|
JpGraph плюс TrueType шрифты.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #13 : 23-02-2010 12:54 » |
|
Повторюсь: Обновил описание проекта. Требуется идея)))На странице статистики ( смотри первый пост) два раза отображается одна и та же круговая диаграмма, это сделано для заглушки пустого места в строке графиков. Подскажите, какую информацию еще можно отобразить с помощью круговой диаграммы или иного графика, что бы заменить дублирующую картинку? Нужна идея для еще одного графика. Подскажите, что еще можно отобразить в картинке?
|
|
|
Записан
|
|
|
|
baldr
|
|
« Ответ #14 : 23-02-2010 13:02 » |
|
* Ошибки? * Отношения разного трафика (HTTP/SSL, Text/images/stream/etc)?
|
|
|
Записан
|
Приличный компьютер всегда будет стоить дороже 1000 долларов, потому что 500 долларов - это не вполне прилично
|
|
|
Serg79
|
|
« Ответ #15 : 23-02-2010 13:06 » |
|
В принципе можно на одной диаграмме отображать топ входящего а на другой топ исходящего трафика. Перегружая их при выборе соответствующих столбцов, статистика по UDP, по TCP и по суммарному.
Но хочется добавить визуализацию какого то другого параметра, так как круговые диаграммы и так перерисовываются при выборе сортировки по разным параметрам.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #16 : 23-02-2010 13:13 » |
|
* Ошибки?
Не понял какие ошибки имеются ввиду... * Отношения разного трафика (HTTP/SSL, Text/images/stream/etc)?
Отношение трафика показывается при выборе статистики пользователя при доступе к удаленному серверу, показываются порты к которым направлялся трафик. На счет ' Text/images/stream/etc', коллектор не снифит трафик (для этого пришлось бы собирать все потоки) он только ведет учет проходящего IP трафика.
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #17 : 09-03-2010 21:03 » |
|
В связи с тем что TrafStat обзавелся своей "Системой Управления Проектом", всю информацию о развитии проекта теперь можно получить на сайте http://redmine.shelek.su/projects/trafstat.
В связи с этим событием, обновление данной темы более не будет осуществляться.10-03-2010
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #18 : 09-03-2010 22:01 » |
|
Вопрос: если хочу оставить комментарий к проекту (скажем, критику или предложение), то как это сделать? Создавать новую задачу?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Serg79
|
|
« Ответ #19 : 09-03-2010 22:42 » |
|
Вопрос: если хочу оставить комментарий к проекту (скажем, критику или предложение), то как это сделать? Создавать новую задачу?
Здесь на форуме (в теме) можно (и нужно) обсуждать общие вопросы касающиеся проекта и его дальнейшего развития. Все вопросы касающиеся разработки, комментарии по реквестам и тому подобное лучше конечно оставлять в Redmine. Там они будут, можно так сказать, более близки к обсуждаемой теме.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #20 : 10-03-2010 07:19 » |
|
Я посмотрел в репозитории директорию /trunk/sql/ и на основе запросов пытался проанализировать корректность индексов. Индексы плохие. Особенно при использовании GROUP BY - без индекса это работает очень медленно. Когда данных будет много, тормоза будут хорошо ощущаться. Единственный индекс, который там работает - по дате. Индесы по proto и srcPort имеют плохую cardinality и выбор будет в пользу даты. Вообще, правильнее было бы сделать один-два составных индекса. Например: INDEX by_src (proto, srcPort, `date`, dstIp), INDEX by_dst (proto, dstPort, `date`, srcIp) (!!! Рекомендую после создания индексов сделать ANALYZE TABLE - соберется статистика по составным индексам и оптимизатор будет работать лучше.) Эти индексы должны подойти (точнее покажет только отладка с EXPLAIN) для statistic.sql. Не ясно, как они подойдут для period.sql (используется (srcPort, date) и (dstPort, date)), для server.sql и для user.sql (добавляется srcIp и dstIp). Индексы dstPort и protoID можно смело удалять. Если конечно не скрываются от глаз другие запросы, где они - основной выбор, но я сомневаюсь, т.к. от даты никуда не уйдешь. Значит, универсальный индекс только: Для оптимизации GROUP BY лучше иметь набор составных индексов, где первый будет - дата, а второй - поле группировки. INDEX sort_dstIp (date, dstIp), INDEX sort_srcIp (date, srcIp), INDEX sort_dstPort (date, dstPort), INDEX sort_srcPort (date, stcPort)
На чем остановиться, покажет только EXPLAIN на значительном объеме данных.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Kivals
|
|
« Ответ #21 : 10-03-2010 07:28 » |
|
Вопрос: если хочу оставить комментарий к проекту (скажем, критику или предложение), то как это сделать? Создавать новую задачу?
Я посмотрел .... ИМХО это можно написать через новую задачу с трекером "Улучшение"
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #22 : 10-03-2010 07:30 » |
|
Не знал что можно делать составные индексы. Я так понимаю, что они обязуют MySQL использовать сразу два поля в качестве индексов? Погоняю сегодня вечером (по возможности) все перечисленные группы индексов из под EXPLAIN-a и можно будет определяться со структурой индексов.
RXL, знаешь еще с какой проблемой столкнулся. При добавлении большого количества индексов, служебный файл MySQL для хранения индексированных значений (traffic.MYI) начинает занимать больше места на жестком диске чем сам файл содержащий данные (traffic.MYD).
|
|
|
Записан
|
|
|
|
Serg79
|
|
« Ответ #23 : 10-03-2010 07:37 » |
|
Вопрос: если хочу оставить комментарий к проекту (скажем, критику или предложение), то как это сделать? Создавать новую задачу?
Я посмотрел .... ИМХО это можно написать через новую задачу с трекером "Улучшение" Согласен. Все вопросы связанные с улучшением, замечания и т.п. которые могут потребовать внесения изменений в исходный код проекта желательно оставлять в Redmine.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #24 : 10-03-2010 08:55 » |
|
Переношу тему туда. Рост индексов - это нормальное явление. При правильно составленных запросах объем просматриваемых индексов ограничен (к тому же это дерево). В случае же сканирования по данным могут быть выбраны все данные, что существенно напряжнее, особенно с переходом объемов на гигабайты. По части индексов скажу здесь: 1. Для каждого запроса или подзапроса используется только один индекс выбираемый оптимизатором или назначаемый программистом. Исключение - слияние индексов на OR: http://dev.mysql.com/doc/refman/5.0/en/index-merge-optimization.html2. Составные индексы. Не обязательно использовать все поля в запросе. Т.к. это двоичное дерево, то работает любое количество левых полей. Кроме ON и WHERE, индекс используется для GROUP BY и ORDER BY в следующем порядке: сперва условия выборки, потом группировка, а в конце - сортировка. INDEX (a, b, c)
WHERE a = 1 AND b = 2 AND c = 3 /* OK */ WHERE a = 1 AND b = 2 /* OK */ WHERE a = 1 /* OK */ WHERE a = 1 AND c = 3 /* OK. Только для "a". */ WHERE b = 2 AND c = 3 /* Индекс не используется. */
WHERE a = 1 AND b = 2 GROUP BY c /* Используется полный индекс. */ WHERE a = 1 GROUP BY c /* Используется только для "a". */
WHERE a = 1 ORDER BY b /* Используется для "a" и "b". */ WHERE a = 1 GROUP BY b ORDER BY c /* Используется полный индекс. */ GROUP BY b ORDER BY c /* Индекс не используется. */
3. Оптимизации для диапазонов (здесь по диапазону выбирается поле date): http://dev.mysql.com/doc/refman/5.0/en/range-optimization.html4. Полезно знать тонкости оптимизации, т.к. они, в общем то, простые. http://dev.mysql.com/doc/refman/5.0/en/optimization.html
|
|
« Последнее редактирование: 10-03-2010 08:58 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Serg79
|
|
« Ответ #25 : 10-03-2010 09:37 » |
|
Да RXL, запости реквест там. С SQL-запросами давно назрела необходимость разобраться.
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #26 : 10-03-2010 09:46 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|