StatystykiOpiszę tutaj sposób zliczania ilości danych ściąganych z Internetu przez każdego użytkownika sieci LAN. Jak to wygląda można zobaczyć tutaj. Oczywiście istnieją odpowiednie programy, takie jak np. MRTG, LSTAT, ale zastosowane przeze mnie rozwiązanie nie wiąże się z koniecznością instalowania dodatkowych programów. Wykorzystuje iptables, crona, skrypt perla oraz apacha z php do wyświetlania wyników. Skrypty znajdują się tutaj. Instalację rozpoczynamy od utworzenia reguł iptables służących do zliczania ilości danych z i do Internetu.
iptables -t mangle -D FORWARD -i eth1 -j STAT >/dev/null 2>&1 Zapisem danych do plików tekstowych (które będą odczytywane przez skrypt php) zajmuje się stat.pl. Edytujemy go w celu ustawienia ścieżki do perla oraz trzech zmiennych. $patch określa katalog, w którym będą przechowywane pliki z danymi, $ipt to lokalizacja programu iptables, natomiast przy pomocy zmiennej $hosts_names określamy, czy będziemy identyfikować komputery po nazwie, czy po adresie IP.
my $path = '.' # katalog musi istnieć UWAGA: Dla przyspieszenia działania skryptu z włączoną opcją $hosts_names należy wpisać wszystkie hosty do /etc/hosts. Następnie umieszczamy go w dowolnym katalogu i wpisujemy do crontaba, aby uruchamiał się co określony czas np. 5 min.:
*/5 * * * * /usr/local/bin/stat.pl W skrypcie stat.php także mamy do ustawienia zmienne - $path, która musi wskazywać na ten sam katalog co w stat.pl oraz $hosts_names, która w przypadku tego skryptu odpowiada za poprawne (numeryczne) sortowanie adresów IP. Serwer www powinien mieć prawo odczytu katalogu ze statystykami. UWAGA: Jeśli w stat.pl włączyliśmy $hosts_names także w stat.php opcja ta musi być włączona. Przy pomocy opcji $skip_zeroes można zdecydować, czy komputery z zerowymi wartościami downloadu i uploadu mają być wyświetlane na wykresie. Od wersji 0.9.5 skrypt także pokazuje aktywność komputerów. Jeśli dany komputer był włączony (korzystał z Internetu) w ciągu ostatnich x sekund, to jego nazwa (adres) zostanie pogrubiony. Limit czasu ustawiamy przy pomocy opcji $time_limit. Pamiętaj, aby nie ustawiać czasu mniejszego niż okres uruchamiania skryptu stat.pl. |