1. Konfiguracja IPFM --------------------------- Program IPFM powinien byc skonfigurowany mniej-wiecej w ten sposob:: FILENAME "/var/log/ipfm/ipfm-global-%Y-%m-%d.log" DUMP EVERY 30 minutes CLEAR EVERY 1 day SORT TOTAL #RESOLVE Opcja resolve musi byc wylaczona! phpTrafMon pracuje tylko na numerach ip Sciezka do plikow log moze byc inna, ale wzor nazwy plikow (ipfm-global-%Y-%m-%d.log) nie moze byc zmieniony 2. MySQL --------------------------- Musisz utworzyc baze MySQL i jej uzytkowika dla phpTrafMon. Uzytkownik powinien miec przynajmniej takie prawa dostepu: select, insert, update and delete. phpTrafMon wymaga 6 tablic w bazie, utworzysz je wydajac bazie te polecenia: CREATE TABLE `classification` ( `date` varchar(10) NOT NULL default '', `host` varchar(8) NOT NULL default '', `user_input` bigint(20) unsigned NOT NULL default '0', `user_output` bigint(20) unsigned NOT NULL default '0', `user_total` bigint(20) unsigned NOT NULL default '0', `net_input` bigint(20) unsigned NOT NULL default '0', `net_output` bigint(20) unsigned NOT NULL default '0', `net_total` bigint(20) unsigned NOT NULL default '0', `perc_input` tinyint(3) unsigned NOT NULL default '0', `perc_output` tinyint(3) unsigned NOT NULL default '0', `perc_total` tinyint(3) unsigned NOT NULL default '0', PRIMARY KEY (`date`) ) TYPE=MyISAM; CREATE TABLE `comments` ( `id` int(10) unsigned NOT NULL auto_increment, `host` varchar(8) NOT NULL default '', `type` varchar(20) NOT NULL default '', `event_time` int(10) unsigned NOT NULL default '0', `comment_time` int(10) unsigned NOT NULL default '0', `user` varchar(8) NOT NULL default '', `input` bigint(20) unsigned NOT NULL default '0', `output` bigint(20) unsigned NOT NULL default '0', `comment` text NOT NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=14 ; CREATE TABLE `global` ( `host` varchar(8) NOT NULL default '', `input` bigint(30) unsigned NOT NULL default '0', `output` bigint(30) unsigned NOT NULL default '0', `total` bigint(30) unsigned NOT NULL default '0', PRIMARY KEY (`host`) ) TYPE=MyISAM; CREATE TABLE `hosts` ( `host` varchar(8) NOT NULL default '', `name` varchar(50) NOT NULL default '', `gg` int(10) unsigned NOT NULL default '0', `tlen` varchar(25) NOT NULL default '', `mail` varchar(75) NOT NULL default '', `comments` int(6) unsigned NOT NULL default '0', PRIMARY KEY (`host`) ) TYPE=MyISAM; CREATE TABLE `hourly_traffic` ( `date` varchar(11) NOT NULL default '', `hour` tinyint(2) unsigned NOT NULL default '0', `host` varchar(8) NOT NULL default '', `input` bigint(20) unsigned NOT NULL default '0', `output` bigint(20) unsigned NOT NULL default '0', `total` bigint(20) unsigned NOT NULL default '0', UNIQUE KEY `data` (`date`,`hour`,`host`) ) TYPE=MyISAM; CREATE TABLE `points` ( `host` varchar(8) NOT NULL default '', `input` int(10) unsigned NOT NULL default '0', `output` int(10) unsigned NOT NULL default '0', `total` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`host`) ) TYPE=MyISAM; 3. Konfiguracja phpTrafMon --------------------------- Musisz ustawic pare rzeczy w pliku /inc/config.php Wszystko co jest do ustawienia jest tam opisane w komentarzach 4. Przygotowanie logow [jesli masz starsze logi IPFM] --------------------------- Wykonaj na shellu to polecenie jako root: chmod 666 [sciezka_do_logow]/* To pozwoli php na konwersje logow. Jesli miales wczesniej wlaczona opcje RESOLVEw w IPFM, musisz teraz zamienic nazwy hostow w logach na numery IP. Po prostu wpisz je do tools/convert.php i uruchom ten skrypt. W katalogu z logami musisz utworzyc katalog backup i dac php prawa do niego. mkdir backup chmod 777 backup Uruchom skrypt tools/rebuild.php , ktory uzupelni baze danych. 5. Prawa dostepu do plikow i katalogow --------------------------- Pewne pliki/katalogi musza byc zapisywalne dla php Wykonaj na shellu te polecenia jako root: chmod 666 tools/ipfm.log chmod 666 tools/ipfm.rebuild.log chmod 777 backup 6. Wpicy do crontabu --------------------------- Wstaw do crontabu te linijki: #Classification 15 0 * * * chmod 666 [sciezka_do_logow]/* 10 0 * * * [sciezka_do_wgeta]/wget http://localhost/[sciezka_do_rankingu]/tools/write.php --output-document=/dev/null -q 5 * * * * [sciezka_do_wgeta]/wget http://localhost/[sciezka_do_rankingu]/tools/hourly.php --output-document=/dev/null -q Jesli nie masz zainstalowanego programu wget, musisz znalesc inne rozwiazanie wykonywania skryptow utrzymujacych. Mozesz to zrobic uzywajac z linii polecen komendy php (jesli masz odpowiednio zainstalowan php oczywiscie). Wstaw wtedy polecenie php nazwa_shryptu.php, jednak aby to dzialalo bedziesz musia zmienic sciezki w plikach [zaznaczone gdzie i na co]: * tools/write.php * tools/hourly.php (ten sposob uruchamiania skryptow utrzymania nie byl jednak sprawdzany)