пятница, 26 февраля 2010 г.

Mikrotik - Анализ трафика - NetFlow Analyzer

Своим мини обзором хочу рассказать об одном программном продукте, который очень хорошо помогает при анализе трафика. Да, продукт коммерческий, но по моему он того стоит.

Это web приложение, написанное на Java, в качестве http сервера выступает Apache, для хранения данных используется MySQL.
Используя NetFlow Analyzer возможно собственноручно конструировать функциональные «приборные панели», пригодные для мониторинга наиболее важных участков сетевой инфраструктуры. Каждая такая панель создается с учетом специфической роли отдельного администратора и может состоять из многочисленных элементов (виджетов), отвечающих за извлечение информации из различных источников.
Благодаря наглядности приборных панелей NetFlow Analyzer можно с первого взгляда оценить сложившуюся ситуацию, получить представление о текущей нагрузке на различные участки сети и изучить показатели производительности, не тратя времени на поиски и просмотр разрозненных отчетов. В комплект поставки NetFlow Analyzer включено более полусотни «виджетов».
Приблизительно так :)
Начнем с самого начала, т.е. установки и начальной настройки.

Установка NetFlow Analyzer.

Скачиваем под интересующую нас платформу (Windows, Linux), в нашем случае это Windows.
Запускаем.

Все компоненты ставятся в одну папку, по этому при желании можно выбрать любую.

Так же при установки запрашиваются порты, по которым будут работать сервисы. Порт web интерфейса и порт, на который будут приходить NetFlow пакеты.

Указываем, что бы запускалось как служба.


Указываем регистрационные данные


В общем все как всегда, "Далее", "Далее", "Согласен", "Опять Далее", "Финиш!".

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


Настройка микротика.

Тут все готово, теперь идем в консоль управления микротиком и направляем поток с данными на наш сервер.


Ну или все тоже самое, только из консоли:


/ip traffic-flow set enabled=yes
/ip traffic-flow target add address=192.168.1.78:9996 version=9


Первой командой активируем сервис, второй указываем принимающую точку, порт и версию протокола.

Начальная настройка NetFlow Analyzer.

Теперь войдем в NetFlow Analyzer и посмотрим что же у нас получилось.
Первое, куда попадаем, это список интерфейсов, за которыми ведется наблюдение, в данном примере интерфейсы с именами IfIndex* это входящие соединения по vpn, интерфейсы comgate* и vcraft* это провайдеры, local это интерфейс локальной сети.

Если что то не получилось, то имеет смысл проверить соответствие портов, по которым анализатор слушает и порт, который указали в микротике.
Перейдем в раздел Admin Operations, Product Settings.

Server Settings - Настройки сервера.
NetFlow / sFlow Listener Port - порт, на который принимаются потоки с устройств.
WebServer Port - порт веб интерфейса.
Count Of Top Records to Store - максимальное количество строк, выводимое в таблицах с данными.


DNS Settings - Настройки определения dns имен.
Resolve only when "Resolve DNS" link is clicked - По умолчанию выбрано, Определять имена по клику на "Resolve DNS".
Resolve DNS names automatically by default- Определять имена автоматически (замедляется работа)
Resolved DNS count in cache - Размер DNS кэша.
User defined DNS names - Здаесь можно задать статические dns записи.

Наверное вторым местом, куда стоит заглянуть в настройках, это настройки для отправки почты.

Нажмем на Test Mail.


DashBoard.

Как говорилось в самом начале интересной фишкой является DashBoard, который существует в некотором начальном состоянии.


Но администратор может сделать панель с виджетами "под себя". На пример сделать что то вроде этого (не надо сильно вникать в смысл :-) я просто вытащил максимально возможные виджеты)


Туда - сюда или кто куда ходит и что качает.

Вернемся на вкладку интерфейсов и посмотрим статистику по одному конкретному.


Вкладка Application выводит информацию по типу трафика.


Клик по конкретной строчке и мы получаем детальную информацию. На пример информацию по http трафику.


Можно сократить результаты вывода до (на пример) 10 и сделать преобразование ip в имена (помогает очень не всегда).


Так же можно запросить детальный график каждого соединения.


Во вкладке Source получаем отчет по источникам трафика, и так же выбрав конкретный элемент получаем детализацию по нему.


Группы адресов.

Иногда интересно рассматривать трафик нескольких пользователей одновременно, на пример серверов, выполняющих одну и туже роль.
В разделе Admin Operations есть подраздел IP Grouups, где можно объединить несколько адресов в группу, создать группу из целых подсетей и т.д.


Дальше уже можно получать все те же самые отчеты, но в разрезе адресов, объединенных в эту группу.


Для ленивых - отчеты по почте.

Наверное самая приятная вещь, которая мне понравилась, это возможность формировать отчеты и получать из по почте, не надо было каждое утро лезть в этот интерфейс и заказывать их, они просто приходили с утренней почтой.
Заходим в раздел Admin Operations, в подраздел Schedule Reports.


В результате утром придет письмо, приблизительно такого содержания.


Где будет лежать по pdf-у на каждый интерфейс приблизительно такого содержания.


Заключение.

За сим буду прощаться, тот кто что то искал, тот, я думаю нашел, и если начнет копаться все глубже, то познает тайную магию Alert-ов, которые буду тебя извещать о проблемах в сети, а кому то пригодятся мелочи в раздели Billing.
Напоследок скажу, что на сайте производителя Вы найдете бесплатную версию этого продукта, бесплатность там странная, 30 дней работает без ограничений, потом работает только с двумя интерфейсами, для простых конфигураций, где один локальный, а другой провайдер этого решения должно хватить.

Читать дальше...

вторник, 16 февраля 2010 г.

Happy birthday to me

Что можно подарить папе - мужу на день рождения?
Вариантов много, но все же лучшим подарком будет радость любимой дочи и жены, а значит надо сделать так, что бы подарок достался всем!
Вот, что мы придумали :)



Морозы маленько спали, -20 это не -35, февральские ветра тоже не помеха, так что, взяв санки, мы отправились на "птичий" рынок.


Вот он, заснеженный, 70-и литровый :)




Сумка камней, сумка с искусственной травой, сумка с "электроникой".


Камни промыты, трубки уложены.




Постепенно, банка за банкой, вода из ванной перекочевывает в аквариум.


За всем следит бдительный прораб.


Работа завершена.


Полосы остались после каждой банки воды.






Комиссия принимает работу.


Вода в аквариуме почти готова, сутки над ней трудился фильтр, прогонявший через себя 4-е раза за час весь ее объем. А тем временем в соседней банке появилась живность.


Не буду хвастаться красивыми названиями, в первый раз брали рыбок по проще и в основном тех, на которых показала доча. Два больших улитки (в последствии оказалось, что они весь день спят, а ночью бродят), три улитки среднего размера (уж очень им понравилось качаться на растениях), парочка мелких улиток, четыре сомика (до высадки дожило 3-и), два желтых сомика, которые с присоской на рту (один тоже ночь не пережил, видать все же подмерзли, пока мы их привезли), 3-и петушка и 5-ть странных существ, которые очень смахивают не червяка. Высаживать сразу не стали, вода в аквариуме еще не была готова.


Высадка происходила быстро, время 6-50 утра, в результате трудной ночи к верху брюхом всплыли два сома, остальных было решено пересадить в основное жилище, которое уже в принципе было готово.


Одни сразу занялись альпинизмом.




Другие начали исследовать транспорт на случай побега.


Знакомство с соседями.


Задник пока не придумали.



Несколько роликов:








Читать дальше...

четверг, 14 января 2010 г.

XAMPP + Python + Django

Без сомнения в сети существует множество инструкций по тому как настроить Python для работы с web сервером Apache и как туда прикрутить Django, но я хочу рассказать о несколько ином варианте настройки.

Во первых результат будет так сказать portable, т.е. может работать с любой флэшки.
Во вторых сам Django будет располагаться в рабочей папке самого сайта, основная причина этого, это хостеры, у которых как всегда с установкой новой версии пуговато. А так ты можешь пользоваться теми модулями, которые сам выберешь.

Начнем, пожалуй.

Нам понадобиться сам XAMPP для Windows, новые версии это хорошо, но остановимся на 1.7.1. Конечно же Python, тут уже я буду делать свой выбор исходя из того, что предоставляет мне хостер, а это версия 2.5. Сложим 1 + 1, т.е. Apache, а в данном комплекте это версия 2.2, и Python 2.5 в результате получим, что нам нужен mod_python, который называется mod_python-3.3.1.win32-py2.5-Apache2.2. Ну и конечно же сам Django, на момент написания это была версия 1.1.1.




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



2. Распакуем Python не устанавливая его, для этого выполним такую команду:
msiexec /a m:\download\python-2.5.msi /qb TARGETDIR=m:\xampp\python
где m:\download\python-2.5.msi пусть с дистрибутивом, а m:\xampp\python место, куда распаковываем. Результат:



3. Теперь настало время mod_python, но учитывая, что сам питон мы не устанавливали, а просто распаковали, то и этот компонент надо будет ставить так же через распаковку, если закрыть глаза, что это исполняемый файл, то WinRAR его прекрасно открывает как архив.



Тут Нам интересны две вещи, во первых модуль для web сервера Apache, а во вторых модуль для Python.
Ставим модуль для Python. Распаковываем папку mod_python-3.3.1.win32-py2.5-Apache2.2.exe\PLATLIB\mod_python в m:\xampp\python\Lib\site-packages.



Теперь модуль для Apache. Файл mod_python-3.3.1.win32-py2.5-Apache2.2.exe\PLATLIB\mod_python_so.pyd распаковываем в m:\xampp\python и переименовываем его в mod_python.so.



4. Теперь подготовим папку для проекта. В m:\xampp\htdocs создадим django_project.

5. Установим сам Django. Распакуем архив и выполним команду:
m:\xampp\python\python.exe m:\Download\Django-1.1.1\setup.py build
где m:\Download\Django-1.1.1 путь, куда распаковали архив с Django.
По завершению работы скрипта копируем папку m:\Download\Django-1.1.1\build\lib\django в папку с будущим проектом m:\xampp\htdocs\django_project, здесь можно его обновлять, и какая бы версия не стояла у хостера, будем использовать только свою, за одно скопируем все это же в папку m:\xampp\python\Lib\site-packages\django, по идее оно там должно лежать изначально, но понадобиться оно только для всего лишь одной команды создания сайта "Hello world!" с помощью мастера. Скрипт m:\Download\Django-1.1.1\build\scripts-2.5\django-admin.py в папку m:\xampp\python\Scripts, если ее нет, то создайте ее, это и есть тот скрипт, который по быстрому создаст тестовый проект.

6. Настало время настроить web сервер. В файл конфигурации Apache (m:\xampp\apache\conf\httpd.conf) добавляем строчку:
LoadModule python_module "/xampp/python/mod_python.so".
Теперь создадим виртуальный хост для нашего проекта. Предупреждаю сразу, в данной статье не ставится целью рассказать как правильно и красиво надо оформлять виртуальный хост, по этому я просто копирую имеющийся в конфигурационном файле шаблон и слегка его подправляю. Открываем m:\xampp\apache\conf\extra\httpd-vhosts.conf и добавляем:

<virtualhost test.django.localhost:80>
ServerAdmin admin@localhost
DocumentRoot /xampp/htdocs/django_project
ServerName test.django.localhost
ErrorLog logs/test.django.localhost-error_log
CustomLog logs/test.django.localhost-access_log common
</virtualhost>


Теперь нужно убедить наш web браузер, что адрес http://test.django.localhost/ находится на локальной машине, выполняем команду:
notepad %windir%\system32\drivers\etc\hosts
и добавляем строчку:
127.0.0.1 test.django.localhost

7. Создадим тестовый проект на Django. Тут все просто, выполняем команду:
cd m:\xampp\htdocs\django_project\
m:\xampp\python\python.exe m:\xampp\python\Scripts\django-admin.py startproject hello

В папке m:\xampp\htdocs\django_project\ появится папка hello с тестовым проектом.



8. Т.к. большинство настроек в виртуальном хостинге делается с помощью файла .htaccess, все остальное мы в нем и пропишем.

SetHandler python-program
AddHandler mod_python .py
PythonPath "['/xampp/htdocs/django_project'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE hello.settings
PythonDebug On

где '/xampp/htdocs/django_project' путь к проекту, где лежит django + hello,
а в hello.settings, hello это имя сайта.
Сохраняем файл в папку m:\xampp\htdocs\django_project.

9. Что бы Apache знал о том, что где то лежит Python нужно задать переменную PYTHONHOME.
Для этого создадим командный файл xampp.bat с таким содержимым:
set PYTHONHOME=%CD%\python
xampp-control.exe

Переменная %CD% содержит путь рабочей директории, значит запускать этот файл надо из самой папки xampp, при этом запускается панель управления, где можно управлять компонентами XAMPP, но тут есть один не красивый момент, а именно то, что окошко консоли постоянно показывается. Сделаем ему небольшой тюнинг.
Качаем утилиту bat2exe, которая умеет делать исполняемые файлы из командных. Запускаем ее, указываем путь к командному файлу, выбираем пункт "Invisible application", "Current directory", в последней вкладке можно выбрать файл иконки, жмем Compile, получаем из файла xampp.bat файл xampp.exe, который выставляет нужную переменную окружения для питона и запускает панель управления, при этом самого приложения не видно, оно будет запущено до тех пор, пока запущен xampp-control.exe.

10. Запускаем Apache, запускаем браузер, переходим по адресу test.django.localhost, видим:


Данный метод запуска опробован на хостинге SpaceWeb.
Надеюсь это кому то помогло. Возможно "продолжение следует"...

Читать дальше...