Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5

IP Accounting 1.1 CZ
#1

Tahle sada skriptů slouží k monitorování dat klientů sítě na routeru.
Sbírá a odlišuje data: na proxy server (kombinace ip a portu), místní síť (ip/maska), internet (vše ostatní).
Podle toho pak zobrazuje data za posledních 24 hodin a za poslední interval ("aktuální" bitrate).
Generuje barevné grafy podle odlišných dat (RRDtool stack).

Je potřeba: Apache, PHP5, Cron, RRDtool, MySQL.


Část první: instalace
Pokud vám chybí některá z aplikací výše, doinstalovat. Do databáze přidat tabulku podle obsahu přiloženého souboru db.sql. Nastavit a ověřit nastavení v hlavičce ipaccounting.sh. Dovytvářet chybějící adresáře. PHP soubory hodit na www stránky, přidat do ip.php a iplist.php hlavičky a patičky, aby se to hodilo do theme vaší stránky. Do cronu přidat spouštění skriptu ipaccounting.sh každé 3 minuty (*/3 * * * *). Pokud se rozhodnete používat část skriptu proti zacyklení, nezapomeňte si přidat do skriptu spouštěného po restartu serveru spouštění "ipaccounting.sh clean" - tím se mimo jiné vymaže soubor, který by mohl zůstat přítomný po pádu systému při spuštěném ipaccountingu a zabraňovat dalšímu spouštění.


Část druhá: sběr informací
Bash skript IP accounting založený na práci Standuse a Bohdyho
  • automaticky označí pakety pomocí iptables v tabulce mangle
  • data z bufferů každé tři minuty vybírá a nuluje čítače
  • sesbíraná data ukládá pro grafy do rrd databází
  • do txt souborů ukládá data přenesená v posledním intervalu (aktuální aktivita klientů)
  • vše průběžně ukládá do mysql databáze


Část třetí: interpretace informací pomocí PHP
iplist.php, __mysql_connect.php, bar.gif
  • vypíše seznam klientů z aktivních (txt) a živých (sql)
  • přepočítá aktivitu za poslední interval na lidské jednotky kB(MB)/s
  • z databáze vyčte data za posledních 24 hodin pro každou IP adresu zvlášť (a přepočítá)
  • tento výčet je jakž takž optimalizován, síť okolo 60 PC trvá na Athlonu 1300MHz, 560MB RAM do 1s, podruhé stejné data (ve stejném intervalu) mysql optimalizuje na ~200ms
  • provede DNS resolve jednotlivých adres na názvy
  • je k dispozici filtr aktivity: aktivní (nenulové data v intervalu), neaktivní (nenulové data za 24h), všechny
  • data lze seřadit
  • parametr pro veřejnost skrytý: last=week, month, year (náročné na sql, month mi trvalo 25s)
  • u každého klienta je odkaz na skript ip.php

ip.php, make.php, _resolutions.php
  • vygeneruje graf datových toků pomocí RRDtool
  • barevně odlišuje tři síťové pásma (proxy, czf-lan, net)
  • zapamatuje si pomocí cookies poslední zobrazené časové měřítko (1h, 6h, 12h, 1d, 3d, týden, měsíc, rok)
  • šetří CPU - pokud není poslední požadovaný generovaný obrázek starší, než minuta, nebude generovat nový, ale jen vyhodí img src


Attached Files
.rar IP-accounting.rar Size: 8,2 KB  Downloads: 672

[Image: kavove-zrnka-lajna.jpg]
Coffee phreak!
Reply




Users browsing this thread: 1 Guest(s)