Тотальный просчет Докучаев Дмитрий aka Forb Спецвыпуск Xakep, номер #043, стр. 043-068-3 Доверься модулю Бывает так, что тебе совершенно незачем знать информацию обо всех твоих клиентах, а достаточно иметь сведения о прокачанном трафике. Для этого также существуют свои программы. Первое, что приходит в голову – установка модуля для Apache, который имеет гордое имя mod_accounting. Последняя его версия 0.5, ее я и поставил в качестве теста на свой Web-проект. Надо сказать, что модуль требует установки базы данных (либо PostgreSQL, либо MySQL). Я думаю, mySQL-база у тебя имеется (если нет, бегом на www.mysql.com :)). Модуль может обрабатывать как единичный хост, так и несколько виртуалхостов, что еще раз доказывает его профпригодность. Сразу скажу, что для установки модуля необходимо, чтобы ты имел рутовые права. Это возможно в двух случаях: либо ты являешься хозяином сервера (jail-серверы я не отбраковываю), либо сговариваешься с админом, и он предоставляет тебе рутовый пароль на некоторое время. Итак, у тебя имеется рут и желание поставить mod_accounging для своего Web-сервера Apache. Замечательно! Беги на http://switch.dl.sourceforge.net/sourceforge/mod-acct/mod_accounting-0.5.tar.gz, выкачивай mod_accounting, распаковывай и приступай к установке. В установке нет ничего сложного, она состоит из двух частей. Первая часть – редактирование. Сначала ты должен подправить Makefile и удалить из него флаг –DNEED_POSTGRES (если юзаешь mySQL). Затем редактируй sql-базу schema.sql, в которой измени все дефолтовые данные на собственные (а именно виртуалхост). Теперь слегка поменяй httpd.conf. В нем необходимо вписать следующие важные данные: Таблица: Измененный httpd.conf AccoungingQueryFmt «UPDATE ipaccounting SET bytesin = bytesin + %r, bytesout = butesout + %s WHERE LOWER(host) = LOWER(‘%h’)» AccountingDatabase ipaccounting AccountingDatabaseDriver mysql AccountingDBHost localhost 3306 AccountingLoginInfo root passwd Это дефолтовая информация. Обязательно измени значения всех директив, кроме первой. Думаю, понятно, за что отвечает каждая опция, поэтому не буду на этом останавливаться. Итак, все файлы отредактированы. Теперь удели время установочной части. Откомпилируй и заинсталь модуль. Если все в порядке – ты не получишь никаких ошибок. Теперь осуществи экспорт файла schema.sql в свою БД. Это просто: залогинься с помощью клиента mysql, затем создай базу ipaccounting и набирай ‘\q’. После этого набирай команду «mysql –uroot –ppasswd ipaccounting < schema.sql», и вся структура таблицы запишется в базу. Теперь рестартни апач командой apachectl restart и зацепись телнетом на 80 порт. Шли запрос HEAD / HTTP/1.0 и жми два раза Enter. Если в ответе сервера присутствует строка mod_accouting, значит, установка прошла успешно, и можно тестировать работу модуля. Если строчки нет – еще раз перечитай статью и найди ошибку в своих действиях. По крайней мере, у меня все заработало с первого раза. Следует сказать, что mod_accounting поддерживает несколько виртуалхостов одновременно. Все хосты следует аккуратно занести в файл schema.sql, который ты уже редактировал. |