Mecanismul meu a fost creat pentru mine de către organizația în care lucrez. Avem un gateway Linux 2.6.0 prin care oamenii de pe interfețele Gigabit merg în Internet prin NAT.
Cu câțiva ani în urmă, am visat la dezvoltarea unui astfel de mecanism pentru o altă organizație și acum vă prezint o schemă simplă și intuitivă.
Schema generală este compusă din cinci componente:- Squid server, care conduce log-uri în format squid nativ (format nativ, incompatibil cu formatul de log-uri apache)
- Serverul MySQL
- iptables, care pe poarta de acces toate HTTP trafic wraps pe proxy (Squid)
- Două scripturi pe care le-am făcut. Un squid-to-mysql, pentru a distila logul în baza de date, al doilea - index.php pentru a afișa statisticile.
- Apache + PHP - este necesar pentru a rula un script php care este responsabil pentru afișarea traficului pe WWW.
O voi face imediat: vă voi trimite să căutați un scurt articol despre crearea unui proxy transparent, pe care l-am găsit și l-am pierdut odată. Este posibil să aveți nevoie de ea dacă doriți să vă faceți un proxy transparent. Pentru mine așa cum am făcut exclusiv din motive de confort a serviciului de parc de computere - nu este necesar să se execute la fiecare calculator și să se înregistreze setările proxy.
La mine funcționează pe: squid 2.5, MySQL 4.0.14, iptables 1.27a, Apache 1.3.27, PHP 4.3.2.
Deci, pentru a trece la crearea chiar a tuturor lucrurilor care ar putea fi necesare, cred că deja aveți instalat mysql, squid și totul este configurat.
Mai mult, voi presupune că jurnalul de vizite la calmar se află în /var/log/squid/access.log
Facem scriptul de squid-to-mysql al scenariului următor: și plasați-l, de exemplu, în dosarul cu scripturi / script-uri /
După ce pregătim structurile MySQL, nu uitați să o suspendați în programul crontab cu frecvența de execuție la discreția dvs. (optim - o dată pe zi la ora 2-3 dimineața).
Prima linie a scriptului ia jurnalul pentru procesare într-un fișier separat, pentru că imediat în al doilea rând golim conținutul jurnalului.
A treia linie este depășirea reală a logului în interogările mysql și transmiterea imediată a interogărilor generate de baza de date în sine.
Al patrulea este curățarea, curățarea. După cum puteți vedea, totul este simplu.
Înainte de a lansa un fișier cu un astfel de conținut, trebuie să creăm structuri pentru stocarea datelor de trafic.
Vizitați: introduceți parola pentru a accesa baza de date (în scenariul de mai sus, m-am gândit, și voi continua să creadă că el my_sql_passwd) mai departe în consola MySQL, introduceți următoarele comenzi: toate baza de date am reușit. Plecăm din mysql.
Acum trebuie să facem un script pentru a citi statisticile în HTML. Eu cred că atunci când tastați în căutarea de calmar + MySQL, ceea ce înseamnă că sunteți cu scopul de a utiliza MySQL pentru a simplifica lucrul cu date și, prin urmare, folosind PHP pentru a lucra cu MySQL server de web script-uri. Continuând de la presupunerea că aveți totul cu Apache + PHP (și dacă nu, căutați docuri aici, sunt multe dintre ele), voi scrie scenariul meu afișând statistici lunare în PHP.
Să avem rădăcina documentelor serverului web apache în / www / htdocs /. creați-l rapoarte de dosar într-un dosar / www / htdocs / rapoarte de a crea un fișier index.php pentru a citi (dacă tocmai ați copia, nu suferă, deoarece script-ul face doar cel mai necesar - soediniyaetsya cu DB solicită un raport, constructele HTML, și dă client): Să presupunem că serverul web rulează cu drepturi de utilizator apache. Acest lucru se face pentru munca completă a script-ului php. Mecanismul nu este perfect din punct de vedere al siguranței, puteți căuta soluții pentru a corecta jurnalele refreshinga (complet în condiții de siguranță) de la calmar nativ în MySQL pentru motivul că ultima echipa pe care am deschis pentru scrierea de grup fișier jurnal proxy de „altele“.
Osipov Stanislav (demofly at mail ru) - Contorizarea traficului prin Squid folosind MySQL