![]() ![]() |
| wein72 |
Сообщение #1
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
Внимание!!! Форум глючный, поэтому НИКАКОГО КОПИПАСТИНГА! В текстах конфигов и прочих местах возможны артефакты в виде слэшей и прочей непотребщины, так что будьте бдительны!!! Если вы новичок в Linux, то могу предугадать какие ответы вы получите от сообщества, заяви вы что у вас что-то не работает: 1. Кривые руки Эти три фразы покрывают 90% всех проблем с которыми пользователи сталкиваются при использовании Linux.
Данные заметки не претендуют на звание какой-либо официальной документации и т.д. :-) Официальное руководство по установке и настройке имеется на сайте, более того – оно ОБЯЗАТЕЛЬНО к прочтению, а моя статья ни в коем случае не является его заменой или альтернативой, тем более что кое-где я буду даже на него ссылаться. Также разработчики заранее и неоднократно предупреждают что нормальная работа под другими, «не заявленными», дистрибутивами НЕ ГАРАНТИРОВАНА! Т.е. она не то чтобы невозможна, но и в то же время никто ничего не обещает - вот так вот хитро! :-) А «заявленных» дистрибутивов по сути всего два - это Fedora и Centos, естественно, я не говорю про коммерческие. Чем же чревато использование других дистрибутивов? Да элементарно хотя бы тем, что в случае кривой работы Траффпро разработчик вам вежливо скажет у вас «дистрибутив не тот» (одна из трёх отмазок линугсойдов на все случаи жизни!) и придётся самостоятельно бороться с глюками, либо же ставить «тот» дистрибутив. Ну а если проблема Ваша повторится и на «том» дистрибутиве - тогда уже это будут «кривые руки» %). Так что тут решать только Вам стоит ли вообще связываться с «не заявленным» дистрибутивом. Зачем это надо было мне? Сложно сказать :-) Ну наверное прежде всего потому что сузя - это мой любимый дистрибутив, тут никакой религии, просто симпатии. Потом, я придерживаюсь мнения что нормальный, правильный продукт должен работать под любыми дистрибутивами без привязки к каким-то конкретным их особенностям (а ТраффПро ведь такой продукт, верно?) Да и если всё легко и сразу установится и заработает - тогда это будет уже не линугз, но ведь мы же не ищем лёгких путей, верно? :-) Ну да ладно, с философией и религией закончили, теперь немного лирики. В данной заметке будет описана одна из самых распространенных примитивных конфигураций, если чего-то того, что Вам необходимо я не описал - значит я этого не реализовывал и соответственно как это делается я скорее всего не знаю. К примеру, pppd, vpn и прочее я не настраивал за ненадобностью. Также перед тем как обращаться ко мне с вопросами типа «у меня не работает траффпро под сузей, как быть?» убедительная просьба ещё раз внимательно перечитать предисловие - скорее всего в нем содержатся ответы на все Ваши вопросы :-) Я описываю лишь то, что делал я. А мои действия ни в коем случае не являются единственно возможными правильными и безошибочными, особенно если учесть что мы заведомо работаем под «не заявленной» ОС. Но тем не менее оно у меня как-то работает и работает скорее стабильно, чем нет ;-) Я не ставлю перед собой цель создать хауту для ленивых, которые думают что всё сделается само по себе, а они лишь закопипастят строчки и будут потом всем говорить что они ниипатса крутые линугсойды :-) Прежде всего - должно быть хотя бы какое-то _элементарное_ представление и понимание своих действий, а также умение читать и АНАЛИЗИРОВАТЬ логи! Обычно последнее - это залог самостоятельного решения 90% всех возможных проблем. Если всего этого нету, то тут одно из двух: либо читать и изучать (тут обычно линугсойды высокомерно отсылают в man и гугль), либо таки не мучить себя и окружающих и юзать win-решения, которые понятны любому дауну и настраиваются в два-три щелчка мыши. Но стоят денег - палка о двух концах, однако ;-) Таким образом, в данной заметке я постараюсь лишь указать основные моменты, на которых стоит заострить внимание при установке под этим дистрибутивом. Пошаговых действий с разжевываниями (типа как открыть файл, отредактировать, сохранить и т.д.) не будет. Я в основном буду указывать лишь направление действий, а какие инструменты использовать - это личное дело каждого. Можно, например, настраивать всё это из «голой» консоли, даже не используя mc, а можно запустить «иксы» и делать всё под графикой - тут исключительно дело вкуса и религии. Как так? «Иксы» на сервере? Фи, да это ж моветон - скажут настоящие прожженые линугсойды. Тут не буду спорить или что-то советовать, скажу лишь что Траффпро успешно работает как с графикой на сервере, так и без неё.
Переходим наконец-то к техническим деталям :-) Примерная схема нашего окружения вполне типична: шлюз с двумя сетевыми интерфейсами, интернет приходит по обычному Ethernet и никаких дополнительных соединений (PPoE, VPN и т.д.) не поднимается. Один интерфейс смотрит в Интернет, другой - в локальную сеть. В локальной сети (адресация 192.168.0.0/24) находятся собственно клиенты Интернета и почтовый сервер (его ip 192.168.0.220), принимающий почту из внешнего мира и туда же её отправляющий. Все внешние адреса в примере вымышленные :-) Аутентификация клиентов происходит по связке ip+mac. AD, dhcp и прочие клиенты отсутствуют.
ip 12.34.56.78
mask 255.255.255.252 gateway 12.34.56.77 ns1 23.45.67.89 ns2 98.76.54.32 Все внешние адреса в примере вымышленные. Для удобства пользования моим руководством, а также чтобы не возникало проблем типа «я прописал всё 100% как там, а оно не работает», рекомендую скопировать весь текст в редактор и произвести там сквозную замену этих данных на свои, актуальные. :-)
E2180 - это какой-то самый дохлый DualCore, лучшее из того что попало под руку на момент установки :-)
Итак, начнём с установки системы. OpenSuse 11.1 х64, установка с DVD-носителя на чистый диск.
Их можно произвести как на этапе установки, так и позже любыми доступными способами - это не критично. В моём случае это было сделано так:
После установки системы подключаем следующие репозитарии сообщества: Ну и потом, когда все репы подключены, устанавливаем apache2, apache2-mod_php5, php5, php5-mysql, libmysqlclient15, mysql-client, mysql-tools, named, squid и т.д. И конечно же -devel и -source пакеты, если будем сами собирать демонов - это libmysqlclient-devel, iptables-devel, kernel-source и linux-kernel-headers. Некоторых из перечисленных пакетов на установочном DVD я не нашёл. По поводу сборки - лично я собирал, а не использовал уже собранные, поэтому мне эти пакеты таки понадобились. Все работы с репозитариями и установкой пакетов лично я выполнял через центр управления Yast, что на мой взгляд является самым удобным вариантом, даже при работе в текстовом режиме без графики. Ведь при наличии нескольких подключенных репозитариев (как в моём случае) он автоматически определяет в каком из них есть последняя версия нужного пакета и предлагает по умолчанию ставить именно оттуда.
С пакетами закончено, теперь проведём лёгкий тюнинг Apache :-)
В принципе, mysql можно и не трогать - работать будет и так. Однако в целях оптимизации производительности, а также удобства зачистки базы, лучше его немного «подпилить». Для этого открываем файлик /etc/my.cnf и смотрим что у нас там в секции mysqld. Вот выдержка из моего файла: [mysqld]
port = 3306 socket = /var/lib/mysql/mysql.sock skip-locking key_buffer = 256M max_allowed_packet = 16M table_cache = 2048 sort_buffer_size = 64M net_buffer_length = 16K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M default-character-set = utf8 record_buffer = 256M max_connect_errors = 100 connect_timeout = 300 innodb_file_per_table innodb_buffer_pool_size = 512M Тут, если сравнивать с дефолтными настройками, увеличены различные буфера, выставлена кодировка по умолчанию в utf-8 и т.д. Однако особое внимание следует обратить на последние два параметра. Ну и в завершении стартуем сервис: # service mysql start
<при первом запуске он что-то там создаёт, мусор поскипан> Starting service MySQL done Если сервис не поднялся (вывод последней строки отличен от вышеприведенного), разбираемся почему, чиним и идём дальше.
Считаем что сервис MySQL в предыдущем пункте мы успешно подняли, однако это не помешает лишний раз проверить. # service mysql status
Checking for service MySQL: running Всё отлично, запускаем установку ТраффПро из shell-скрипта. Тут предстоит ответить на ряд вопросов: Select language (just type the name of preferred language): russian Запустить установку в графическом режиме? [y/n] n Выберите свой Linux дистрибутив: 2 - SUSE Собрать демон контроля (y) или использовать уже собранный (n)? y На этом этапе в процессе сборки на экран будут вывалены тонны непотребного мусора, на который не следует обращать никакого внимания. Главное чтобы завершилось всё это как-то так: Finished building target: billing Если здесь вылезли какие-то ошибки - доставляем недостающие компоненты, перезапускаем установку (здесь продолжать её уже нет смысла!) и идём дальше Продолжить установку? [y/n] y Собрать демон маршрутизации (y) или использовать уже собранный (n)? y Тут сборка полностью аналогична предыдущей, в конце в случае успеха должны получить: Finished building target: routerd Продолжить установку? [y/n] y Сохранить предыдущие настройки TraffPro? [y/n] (/var/traffpro_back) n – поскольку мы ставим систему «с нуля», то сохранять как бы и нечего Обновляем систему (y) или устанавливаем (n)? n – поскольку у нас новая установка Настроить систему сейчас (y) или оставить настройки по-умолчанию (n)? n Настроить систему, кстати, можно и сейчас - это дело вкуса: либо ответить на несколько вопросов здесь и получить готовый конфиг согласно своему окружению, либо отказаться и подправить потом вручную дефолтный конфиг. Но в любом случае стоит заглянуть в официальную документацию, где подробно описаны все параметры файла конфигурации. Дальше интересный момент с базой, если она вдруг по каким-то непонятным причинам не создастся (а у меня такое вроде было), то это лечится повторным запуском установки - так, для справки, на всякий случай. End Install or Update DATABASE!
Продолжить установку? [y/n] это непонятная ошибка, но вроде всё работает :-) Запускать TraffPro при загрузке системы? [y/n]
y Тут очень интересный момент. Дело в том, что в сузе по умолчанию в скриптах запуска должны присутствовать некие теги, в которых содержится информация о сервисе, такая как его название, описание, зависимости от других сервисов итд. Поскольку мы работаем под «не заявленной» ОС, то и получаем тут (да и в дальнейшем теперь при каждом вызове chkconfig) какую-то матерную непотребщину типа: insserv: warning: script \'traffpro\' missing LSB tags and overrides
insserv: Default-Start undefined, assuming default start runlevel(s) for script `traffpro\' insserv: warning: script \'tp-router\' missing LSB tags and overrides insserv: Default-Start undefined, assuming default start runlevel(s) for script `tp-router\' traffpro 0:off 1:off 2:off 3:on 4:off 5:on 6:off insserv: warning: script \'K01traffpro\' missing LSB tags and overrides insserv: warning: script \'tp-router\' missing LSB tags and overrides insserv: Default-Start undefined, assuming default start runlevel(s) for script `tp-router\' insserv: warning: script \'traffpro\' missing LSB tags and overrides tp-router 0:off 1:off 2:off 3:on 4:off 5:on 6:off Это не критично, на работоспособность не влияет и лечится путём добавления в скрипты запуска соответствующих недостающих строчек, но об этом позже. Запустить TraffPro прямо сейчас? [y/n]
n – не будем пока этого делать, проверим ещё раз что у нас в конфигах Теперь, как и обещал, привожу конфиги траффпро, необходимые для работы: to_install_dir=/opt/traffpro
daemon=true db_url=localhost db_usr=root db_passwd= db_name=traffpro time_in=20 time_out=240 control_eth_addr=true net_number=0 ports_detail=true ss_enabled=true eth_out=eth0 url_detail=true out_ip=12.34.56.78 listen_addr=127.0.0.1 listen_port=9999 ip_queue_maxlen=2048 squid_connect=false timer=false Здесь сразу в глаза бросается то, что с базой mysql система работает от root и пароль у него пустой. Как показала практика последней установки – это лучше оставить именно так, как предлагают по умолчанию. Да, это не правильно, да, это не безопасно, но геммороя с работой от другого юзера будет гораздо больше. Последний раз пытался дать юзеру права на базу - так и не понял чего ему надо, но GRANT ALL PRIVILEGES WITH GRANT OPTION, с которым работают практически все приложения, явно не даёт достаточных полномочий и демон от такого юзера с базой не работает. Если есть желание - потом на досуге можно поиграться с этим и сообщить мне о результатах в случае успеха, пока же оставим как есть. Но это всё при условии опять же что пароль root для mysql у нас пустой (т.е. по умолчанию и его никто не менял), в противном случае тут надо указать пароль. traffpro_rule.cfg # всегда доступный ssh
iptables -A INPUT -m tcp -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -m tcp -p tcp --sport 22 -j ACCEPT # заворот на сквид 192.168.0.0/255.255.255.0 --dport 80 -j REDIRECT --to-ports 3128 # проброс портов для почтового сервера # загрузка модулей для поддержки ftp Будем считать что сама система ТраффПро у нас установлена и настроена.
Как и обещал, отмечу эту тему особо. Ибо в различных вариациях и комбинациях параметров поведение системы может быть самым разным и зачастую непредсказуемым :-) Можно, скажем, настроить так чтобы в отчётах учитывался только трафик, идущий через сквид, а весь остальной по прочим портам банально игнорировался. Вам такой вариант учёта нужен? :-) Лично мне не особо он приглянулся. Или, например, можно сделать так чтобы демон постоянно падал в связке со сквид – тоже малопривлекательная тема :-). Но тем не менее, в результате многочисленных экспериментов, заставить его работать как надо мне всё же удалось. Так вот собственно о самой настройке. В дефолтном конфиге надо проверить и поменять в случае необходимости ряд параметров. Отмечу сразу что в нашей конфигурации сквид работает самостоятельно, т.е. независимо от траффпро. Следовательно к нему можно прикручивать всё что угодно: различные сторонние парсеры логов, «режики» и т.д. Единственное условие – это не отключать прозрачный прокси. Прежде всего: http_port 192.168.0.1:3128 transparent Тут мы указываем где у нас будет слушать сквид, по какому адресу и на каком порту, а также включаем прозрачное проксирование. Далее надо обратить внимание на acl’ы. В моем примере имеет место быть блокировка некоторых нежелательных сайтов и запрет на загрузку некоторых типов файлов по расширению. Также присутствуют пользователи, которым открыт полный доступ без ограничений. Итак, для начала добавим следующие списки acl: acl blockurl url_regex -i \"/etc/squid/blocked\"
acl blockfiles urlpath_regex \"/etc/squid/blocked.files\" acl anonymizers url_regex -i \"/etc/squid/anonymizers\" Затем создадим acl, в котором перечислим ip-адреса клиентов, которым мы хотим открыть полный доступ без ограничений: acl no_limit src 192.168.0.3 192.168.0.4 192.168.0.5 Укажем весь диапазон адресов нашей локальной сети отдельным acl: acl localnet src 192.168.0.0/24 также я рекомендую закоментировать в дефолтном конфиге все остальные acl localnet Ну и теперь разруливаем уровни доступа (последовательность http_access важна!) http_access allow manager localhost
http_access deny manager http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow no_limit http_access deny blockurl http_access deny anonymizers http_access deny blockfiles http_access allow localnet http_access allow localhost http_access deny all Все остальные настройки сквида я не трогал, они остались по умолчанию. blocked.files: \\.[Aa][Vv][Ii]$ \\.[Mm][Pp][Gg]$ \\.[Mm][Pp][Ee][Gg]$ \\.[Mm][Pp]3$ Сообщение отредактировал wein72 - 21 октября 2009 04:27 -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| wein72 |
Сообщение #2
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
В этот файл можно добавить любое другое расширение по аналогии. odnoklassniki vkontakte loveplanet В этом файле мы прописываем регулярные выражения для блокировки, по одному в строке. И последний файл – это anonymizers. Он полностью аналогичен файлу blocked, просто я так сделал для собственного удобства, чтобы разделять анонимайзеры и прочие заблокированные ресурсы. Зачем это надо? Ну лично у меня, к примеру, настроены с помощью параметра deny_info различные сообщения при попытке просто зайти на запрещенный ресурс, либо же обойти его через анонимайзер :-) В последнем случае пользователь видит не простое «доступ к ресурсу запрещён», а «анонимайзером пользоваться не хорошо! ;-)». Но это уже косметика, никак не влияющая на работоспособность. Ах, да, ещё забыл сказать что актуальный список свежих анонимайзеров можно получить в гугле по запросу типа «уроды на работе закрыли доступ к одноклассникам» %) Настройка кэширующего named На что надо обратить внимание в его конфиге (/etc/named.conf). Во-первых, прописатьднс-сервера провайдера: forwarders { 23.45.67.89; 98.76.54.32; } Затем на всякий случай ограничим адреса, на которых он будет слушать, мы же делаем исключительно кэширующий сервер для нормальной работы траффпро. Следовательно слушать на внешнем интерфейсе, например, нам ни к чему. listen-on port 53 { 127.0.0.1; 192.168.0.1; } Ну и отключим ipv6: listen-on-v6 { none; } Все остальное оставляем по умолчанию. named настроен, проверим что у нас в /etc/resolv.conf. Там теперь достаточно всего одной строчки: nameserver 127.0.0.1
Однако если там забиты ещё и DNS провайдера, то их можно на всякий случай оставить, но первым всё равно должен идти 127.0.0.1. # ping www.ru PING www.ru (194.87.0.50) 56(84) bytes of data. 64 bytes from www.ru (194.87.0.50): icmp_seq=1 ttl=60 time=16.9 ms 64 bytes from www.ru (194.87.0.50): icmp_seq=2 ttl=60 time=16.2 ms Если интернета на сервере нет, клиенты тоже не могут получить доступ, да и вообще «ничего неработает» - ну что я тут могу посоветовать? Перечитайте всё ещё раз, особенно предисловие! :-D Если же инет на сервере работает и первый клиент из локальной сети также получил к нему доступ – просто замечательно. Значит установку и настройку можно считать почти завершенной. Почему почти? Ведь всё уже работает, спросите вы. Да потому что на самом деле осталась ещё масса вопросов. Как минимум, поднимутся ли все сервисы сами после перезагрузки? Да и что мы будем делать с базой когда она раздуется до нескольких десятков гигабайт? Сами разработчики в ответ на это тактично отсылают к документации mysql, прям как по Райкину :-) «К пуговицам у вас претензии есть?» - вот и тут также, мол наша система работает, а вопрос зачистки базы нас волнует мало ибо мускл это уже не наш продукт. Ну да лучше обо всём по порядку. Автозапуск сервисов Поскольку мы используем «не заявленный» дистрибутив, то это вопрос больной и он заслуживает особого внимания. Если мы тупо повключаем необходимые сервисы через chkconfig – я сильно сомневаюсь что после перезагрузки ОС у нас всё замечательно подымется. Как минимум потому что по умолчанию в OpenSuse включен параллельный запуск сервисов, а стартуют они по умолчанию хрен пойми в какой последовательности. Вот тут то и встаёт вопрос о зависимостях сервисов и об отсутствующих тегах в скрипте запуска, про которые я говорил где-то выше. Нет, сервисы то нужные используя chkconfig мы повключаем конечно, для этого используя синтаксис вида chkconfig имя on пройдёмся по следующим сервисам: mysql, apache2, named, traffpro, squid. После чего останется только отладить последовательность их запуска. Какие тут возможны варианты решения? Первый (и наверное правильный) – это разобраться через какую такую хитрую задницу этот механизм работает и правильно настроить зависимости, подобрав тем самым удачную комбинацию последовательности запуска. Для этого надо добавить в скрипты запуска траффпро недостающие теги и разрулить в них зависимости. Есть ещё любопытный файлик /etc/init.d/.depend.start, где явно указаны зависимости для каждой службы, но он как я понял формируется опять же после вызова chkconfig и на базе всё тех же тегов. По крайней мере после обновления траффпро у меня из этого файла вообще пропали все упоминания о его сервисах. Что добавлять в скрипты запуска? Да откройте любой штатный скрипт (например, /etc/init.d/squid) и найдите в нем вот такие строки (должны быть практически в самом начале): ### BEGIN INIT INFO # Provides: squid # Required-Start: $local_fs $remote_fs $network $time # Should-Start: apache $named # Required-Stop: $local_fs $remote_fs $network # Should-Stop: $null # Default-Start: 3 5 # Default-Stop: 0 1 2 6 # Short-Description: Squid web cache # Description: Start the Squid web cache, providing # HTTP, FTP and other proxy services ### END INIT INFO И вот такой кусок надо вставить во все скрипты запуска сервисов траффпро (я имею ввиду tprouter и сам traffpro) соответственно подправив их. Особое внимание при редактировании стоит уделить тегам Required-Start и Should-Start – как я понял именно они и отвечают у нас за зависимости. В общем, дерзайте – man и google вам в помощь :-) Лично я, признаюсь честно, такой вариант «ниасилил» и буду очень рад если кто-то более компетентный в этих вопросах опишет это решение. Ну а пока за неимением предложу свой, «не правильный» способ. Во-первых, отключим параллельный запуск, для этого в /etc/sysconfig/boot выставим RUN_PARALLEL=”no”. Ну и теперь будем разруливать последовательность запуска сервисов в /etc/init.d/rc3.d путём переименования симлинков там. :-) Последовательность должна быть примерно такая: первой стартует network, соответственно от него и начинаем плясать. Затем должны подгружаться mysql, named, squid, ну и в последнюю очередь traffpro и apache2. Т.е. например, если у Вас там имеется S05network, то надо посмотреть чтобы перед ним не было других зависимых от него сервисов, например, S03squid. В случае если такое всё же имеется – просто переименовываем зависимый сервис так, чтобы он следовал после необходимой ему для запуска службы, например, S10squid. И так далее до полного выстраивания всей очереди, траффпро я бы вообще в самый конец засунул, что-то типа S90traffpro. :-) Метод конечно дилетантский, но самый быстрый и без заморочек. Единственным недостатком такого метода является то, что при каждом запуске chkconfig наша выстроенная последовательность будет слетать. Следовательно необходимо перед обновлением траффпро или ещё какими-то манипуляциями, связанными с chkconfig, делать бэкап директории /etc/init.d/rc3.d чтобы потом опять вручную не строить последовательности. :-) Зачистка базы или «не сыпь мне соль на рану». :-) Как я уже говорил, проблема с зачисткой базы (если мы конечно не используем Win Admin, который заводится с отдельными плясками) действительно имеет место быть и для разработчика это судя по всему и в самом деле вопрос немножечко больной, иначе непонятно почему нас отсылают к документации на mysql. :-) Ведь в конце концов мы же не голый mysql используем, а комплексное решение для биллинга под названием траффпро! И почему в базовой его части «из коробки» нет средств для зачистки ЕГО же базы? Нелогично как-то. А то что уже через несколько месяцев работы база раздувается до нескольких гигабайт – исключительно Ваши проблемы :-) По мне так это всё равно что продавать автомобили без тормозной системы: да, наша машина отлично набирает скорость, до 100км/ч за несколько секунд – легко! Ну а как потом тормозить – это вы уж сами решайте, тормозная система в нашем авто штатно не предусмотрена :-D Но это всё опять же лирика, а проблему то тем не менее необходимо как-то решать. Угадайте, что будет если мы просто запустим траффпро в работу и забудем про него? Сам я на практике конечно этот эксперимент до конца так и не довёл ибо не являюсь любителем столь опасных авантюр. Но тем не менее база до 6гб у меня однажды таки раздулась. Более того, эти 6гб лежали одним файлом, который не уменьшался даже после зачистки таблиц! Помните, я упоминал при настройке mysql один параметр? ;-) Вот-вот! В итоге пришлось лечить пересозданием базы с последующей заливкой туда дампа. Дамп, кстати, после тотальной зачистки весил всего лишь порядка 100кб :-) Вот так мы и пришли к сути проблемы. Если пустить всё это дело на самотек, то база «раздувается» рано или поздно до нереальных размеров, что не есть очень здорово. Следовательно самый простой вариант избежания данной неприятной ситуации – это её предупреждение :-) Вот если подумать, за какой период нам реально может понадобиться детализация? Я сомневаюсь что кому-то в организации может приспичить посмотреть кто куда ходил, скажем, год назад. А база то тем временем «пухнет»! Тут на мой взгляд оптимальным является вариант с хранением детализации за какой-то относительно небольшой период, ну например, месяц-два, а то и ещё меньше. Получается что если мы будем запускать, скажем, раз в месяц скрипт, который будет удалять из базы все данные по посещениям старше одного месяца, то в базе у нас не будет скапливаться информации больше чем за два календарных месяца, и раздуваться она соответственно тоже особо не будет. И где же взять такой волшебный скриптик, спросите вы? Да вот он: #!/bin/sh MYSQL_COMMAND=\"mysql -D office --user=root -e \" DATETO=$(date --date \"1 month ago\" +%Y-%m-%d) echo Cleaning up TraffPro database up to: $DATETO $MYSQL_COMMAND \"DELETE FROM url_usr_serfing WHERE dates <= \'$DATETO\'\" $MYSQL_COMMAND \"DELETE FROM clients_traff WHERE dates <= \'$DATETO\'\" Как тут несложно заметить, вся зачистка базы – это две строчки в консоли mysql и почему этого функционала до сих пор нету в веб-админилке абсолютно не понятно. Я конечно понимаю что может быть через php это делается проблематично, но неужели это в принципе никак не реализуемо? Ну да ладно, оставим это на совести разработчиков, что нам, сложно чтоли скрипт в крон засунуть? %)) Кстати, значения DATETO и частота запуска скрипта могут быть установлены в индивидуальном порядке по вкусу. Ну и не стоит забывать что если мы работаем с базой от другого пользователя (не root) или root у нас имеет не пустой пароль, то необходимо внести соответствующие корректировки в MYSQL_COMMAND. Итак, скрипт для зачистки базы у нас есть, что с ним делать вроде тоже понятно, так что эту проблему будем считать решенной. А что делать если мне всё же могут понадобиться годовалые данные по посещениям, возможно спросит кто-то? Ну что я могу тут предложить? Первый вариант – это таки довести до конца эксперимент, полностью забив на зачистку базы. Только в этом случае не забудьте потом отписаться о результатах, а именно нам будут интересны: аппаратная конфигурация сервера, конечный размер базы, ну и сколько всё это у вас проработало ))) Либо же есть ещё вариант подправить скрипт зачистки, добавив в него перед непосредственно самой зачисткой снятие дампа базы. В результате будет таять лишь место на диске, а сама же база при этом расти не будет. Вместо заключения Ну вот вроде бы всё, если я что-то забыл - всяческие исправления и замечания и дополнения приветствуются. Также по мере возможности могу ответить на любые АДЕКВАТНЫЕ вопросы ПО ТЕМЕ. Естественно, адекватными не считаются вопросы типа «А у меня вообще ничего не работает, очень хочу поставить, помогите» :-) Для этого есть услуга «Удаленная установка» в интернет-магазине разработчика. Правда установка там производится только на «заявленные» дистрибутивы.Но ведь дистрибутив сузе не является «заявленным», что мне делать? Ответ очевиден – ставить Fedora/CentOS и заказывать удаленную установку. Ну а если всё же дистрибутив – это для Вас вопрос религии и менять его вы не собираетесь, тогда удаленную установку могу провести и я, но за те же деньги ;-) Для большей оперативности - почта для связи: wein72<на>gmail.com, либо ICQ UIN в профиле. Через личные сообщения этого форума лучше не связываться ибо заглядываю сюда раз в сто лет, а оповещений никаких нету (видимо не работают просто). Примечания: 1. Виртуалхосты Я уже упоминал про километровую ссылку на страницу входа админа. Мне это не понравилось и яподумал что с этим неудобством нужно как-то бороться :-). И было найдено элементарнейшее решение - виртуалхосты! Что это такое и как настраивается я рассказывать не буду, кто не знает – тот и в длинную ссылку потыкает :-) А вообще алгоритм такой: создаются и настраиваются два виртуалхоста. Один, например, stat.mydomain.ru, который ссылается непосредственно на веб-морду (а там по умолчанию вылезает авторизация пользователя) и второй, содержащий лишь одну страницу с переадресацией на авторизацию админа - всё. Пример страницы с переадресацией: <HTML> <HEAD> <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=http://stat.mydomain.ru/index.php/admin_login\"> </HEAD> <BODY> </BODY> </HTML> 2. Что делать если «самое страшное» всё-таки случилось? Без зачистки Ваша база Траффпро раздулась до нереальных размеров и серверу стало тяжелодышать, либо же банально закончилось место на диске. :-) Что делать в такой ситуации? Ну для начала убедиться действительно ли всё место сожрал злобный мускль: # du -sh /var/lib/mysql 1.4G /var/lib/mysql Если тут мы видим и в самом деле нехорошую цифру в несколько десятков гигабайт или даже приближающуюся к ёмкости жесткого диска, то «самое страшное» видимо у нас таки случилось. И очень вероятно что в /var/lib/mysql лежит один огромный файл *.idb такого размера, который не уменьшается при зачистке баз. Как теперь быть? Ну во-первых, поднастроить мускл так, как я описал выше. Во-вторых, пересоздать все базы. Ну и в дальнейшем не допускать такого раздутия. Я не утверждаю что это единственно возможный путь, однако мне это показалось самым быстрым решением, оно проверено лично и работает. Итак, алгоритм действий: 1. Остановить все сервисы, работающие с базами мускла (например traffpro) 2. Снять при помощи mysqldump дампы со всех рабочих баз, включая системную базу mysql, например: # mysqldump traffpro > ./traffpro.dmp и так для каждой рабочей базы. Перед снятием дампа с базы траффпро её желательно зачистить приведенным выше скриптом – это может значительно ускорить операции с перемещением базы, но делать так следует только в случае если статистика посещений не особо важна и сохранить её не критично. 3. Остановить сервис mysql 4. Переименовать директорию /var/lib/mysql. Пока именно переименовать, а не удалить, чтобы в случае чего вернуть всё как было. 5. Стартануть сервис mysql, он должен что-то там создать при запуске. 6. Создать в mysql все необходимые базы данных, например: mysql> create database traffpro; . Базу mysql создавать не нужно, она уже есть!7. Залить дампы всех баз обратно, например: #mysql -D traffpro --user=root -e < ./traffpro.dmp Не забыть залить также дамп системной базы mysql!!! 8. Проверять работоспособность и если всё пашет, то можно удалять старую копию /var/lib/mysql. Сообщение отредактировал wein72 - 10 августа 2009 09:24 -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| freeakk |
Сообщение #3
|
![]() Бывалый
Репутация: 3 ![]() Группа: В команде Сообщений: 243 Регистрация: 9.03.2009 ICQ:-- |
так правильней =) 1. Кривые руки 2. Кривое железо 3. Кривой дистрибутив классная статья ! |
| wein72 |
Сообщение #4
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
У правильных линугсойдов не бывает кривых и глючных дистрибутивов! Дистрибутив может быть "не тот", но никак не кривой или глючный -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| aleksdevro |
Сообщение #5
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 12 Регистрация: 9.06.2009 ICQ:-- |
Добрый день |
| Sly |
Сообщение #6
|
![]() Руководитель Проекта
Репутация: 26 ![]() Группа: Администраторы Сообщений: 1691 Регистрация: 15.02.2008 ICQ: |
У вас DNS не верно настроен |
| aleksdevro |
Сообщение #7
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 12 Регистрация: 9.06.2009 ICQ:-- |
усли не вулючать траффпро то все окей
как его настроить правельно ???? |
| wein72 |
Сообщение #8
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
точно ли ВСЁ делалось именно так и именно в такой последовательности? сервер на админской веб-морде заведён? маки/ип его внешнего интерфейса верно прописаны? если да, то тут либо неверно настроен ДНС (маловероятно), либо (вероятнее) порты могут блокироваться на сервере. надо проверить в система\\серверы есть ли в списках портов 53-й порт? рекомендую добавить его в оба поля для начала чтобы не гадать, потом уже можно поэкспериментировать (ибо о том какой логике там эта настройка подчиняется я писал) и оставить в одном, если оно конечно так будет работать. в официальном руководстве этого момента нету чтоль? тут всё логично по идее, если мы серверу зарезаем все порты, а на нём крутится кэширующий днс, то как он будет рекурсивные запросы то выполнять? 53 порт на сервере вовне должен быть открыт в таком случае. если это поможет - отпишитесь, я отмечу этот момент в своём посте. Сообщение отредактировал wein72 - 19 августа 2009 21:59 -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| aleksdevro |
Сообщение #9
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 12 Регистрация: 9.06.2009 ICQ:-- |
всем спасибо за содействие все ок в сервере не тот интерфейс прописал
|
| Tremere |
Сообщение #10
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 4 Регистрация: 11.08.2009 ICQ: |
Выпущена новая версия free системы TraffPro 1.3.1 Добален без NAT режим Стабильная версия Netflows v5 и v9 Добавлена возможность очистки базы разработчики услышили и добавили "Добавлена возможность очистки базы" |
| Tremere |
Сообщение #11
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 4 Регистрация: 11.08.2009 ICQ: |
установил, руководствуясь этой ветке версия SUSE SLES 10 sp.2 |
| wein72 |
Сообщение #12
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
Цитата: Tremere версияSUSE SLES 10 sp.2
вот это немного смущает :-) какой бы не казалась их близость и схожесть, но всё же open и sles - это два РАЗНЫХ продукта. соответственно в последнем могут присутствовать заморочки, которых нет в первом и наоборот. по сути этой проблемы - лучше спросить разработчика веб-морды, т.к. это видимо что-то связанное с настройкой apache/php: либо нехватка компонентов, либо особенности их дефолтной настройки именно в SLES (почему я и говорю что это разные системы). ну и не могу сдержать любопытство: а на какого хрена вам, простите, SLES? во-первых, это вроде как коммерческий продукт, если я не ошибаюсь. у вас он легально закуплен? или торренты - \"нашефсё\"? ;-) в случае последнего, что будете делать при проверке на легальность? :-) во-вторых, какие именно его специфичные фичи (которых нету в open я имею ввиду) вы планируете использовать? или это просто windows-like привычка что на сервере обязательно должен стоять \"сервер\"-дистрибутив? короче, если данный сервер будет использоваться исключительно как шлюз с траффпро, то зачем там SLES? -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| Tremere |
Сообщение #13
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 4 Регистрация: 11.08.2009 ICQ: |
скачал действительно с торента, дистрибутив комерческий, но скачать его можжно и оффициально, с пробным ключем, вся комерческая часть как я понял это тех поддержка, без техподдержки можно стпавить, т.е. просто онлайн дистрибутивы не будут работать, а только с двд, привычка да на сервер серверный дистрибутив, вроде как должен лучше работать, заточен именно под сервер |
| freeakk |
Сообщение #14
|
![]() Бывалый
Репутация: 3 ![]() Группа: В команде Сообщений: 243 Регистрация: 9.03.2009 ICQ:-- |
Так, наша недоработка. Ждите обновления или используйте PHP c PECL hash >= 1.1. PHP должен быть собран с ним http://pecl.php.net/package/hash |
| wein72 |
Сообщение #15
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
Цитата: Tremere скачал действительно с торента, дистрибутив комерческий, но скачать его можжно и оффициально, с пробным ключем, вся комерческая часть как я понял это тех поддержка, без техподдержки можно стпавить, т.е. просто онлайн дистрибутивы не будут работать, а только с двд,
уверен? я бы всё же уточнил это ;-) руководствуясь этой логикой и венду можно юзать более 30 пробных дней, не покупая её... Цитата: Tremere привычка да на сервер серверный дистрибутив, вроде как должен лучше работать, заточен именно под сервер а в чём это самое \"лучше\" то? факты какие-нибудь имеются или рабинович напел? :-) у меня вот, например, и open шикарно на серверах крутится. расскажи чтоль чем именно sles ловчее, может я тоже прикуплю его :-D кстати, а как там дела с обновлениями и репозиториями обстоят если не покупать? ;-) -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| aleksdevro |
Сообщение #16
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 12 Регистрация: 9.06.2009 ICQ:-- |
Привет всем помогите не могу настроить получение почты из инета прокси правильно указал настроил все как описано клиент Thunderbird что и где поправить на клиенте открыты все порты |
| wein72 |
Сообщение #17
|
![]() Участник
Репутация: 1 ![]() Группа: Администраторы Сообщений: 56 Регистрация: 17.09.2008 ICQ: |
Цитата: aleksdevro не могу настроить получение почты из инета прокси правильно указал настроил все как описаноклиент Thunderbird
не понятно как связаны почта и прокси. если речь идёт о pop/smtp то прокси не при чём тут вообще. для начала необходимо разобраться и понять что именно всё же вы хотите получить, ну а там может и вопрос сам исчезнет :-) -------------------- OpenSuse 11.2, Traffpro - хз, какой-то там самый новый и модный :-) |
| nekvit |
Сообщение #18
|
| Новичок
Репутация: 1 ![]() Группа: Посетители Сообщений: 2 Регистрация: 15.09.2009 ICQ: |
TO:Tremere & ALL Admin.SLES.х С подачи разработчиков :) 1. Ставим hash. С консоли сервера говорим: pecl install hash - ждем окончания процедуры... 2. В каталоге /etc/php5/conf.d создаем файлик с именем hash.ini c единственной строкой extension=hash.so 3. Ребут сервер... === Вуаля! Регистрация пользователей через веб-админку работает :) Сообщение отредактировал nekvit - 20 сентября 2009 01:23 |
| Troy |
Сообщение #19
|
| Новичок
Репутация: 0 ![]() Группа: Посетители Сообщений: 7 Регистрация: 20.09.2009 ICQ: |
SLES 10.2: Да без php5-hash юзеров не заводит. В репах диска нету... для php 5.2.5 скачал тут: http://rpm.pbone.net/index.php3?stat=26&dist=48&size=127819&name=php5-hash-5.2.5-18.1.i586.rpm Сообщение отредактировал Troy - 20 сентября 2009 23:14 |
| nekvit |
Сообщение #20
|
| Новичок
Репутация: 1 ![]() Группа: Посетители Сообщений: 2 Регистрация: 15.09.2009 ICQ: |
Я php полностью не менял. Все доставил командой pecl install hash. Он сам его подтянул :) |
![]() ![]() |
| Сейчас: 31 июля 2010 01:34 |