RRStats  <<

:: RRDtool a statistiky pro pripojena IP
(rrdtools and statistic for connected IPs)

Protoze jsem potreboval pro router co nejskromnejsi statisticky aparat, napsal jsem si v perlu tri kratke skripty, ktere delaji tri zakladni typy statistik: Zachazeni s iptables je ovsem trochu slozitejsi, takze potrebuje jeste nadstavbovy skriptik, ktery v iptables zajisti vznik chainu pro konkretni IP - rrstats, coz je take hlavni skript ktery by mel byt volan z cronu - v tomto konkretnim pripade kazdych 10minut. Skript dynamicky pridava statistiky pro kazde IP, ktere se asociuje s interfacem, ktery ma obstaravat.
crontab -e :
     9,19,29,39,49,59 * * * *   cd /kde/je/rrstats; ./rrstats
na nekterych systemech nemusi byt konvence oddelovani vice udaju carkou mozna, musite proto rozepsat pro kazdy casovy udaj novy radek.
     9 * * * *   cd /kde/je/rrstats; ./rrstats
     19 * * * *   cd /kde/je/rrstats; ./rrstats
     atd.

Skripty jsou urceny pro linux, na kterem je nainstalovan perl (>=5.6.0) a rrdtools (>= 1.0.42, 1.0.35 postrada option -X ale da se vypustit se skritpu). Pokud chcete vyuzivat skript tak jak je, potrebujete kernel >= 2.4.20 s iptables >=1.2.7a, protoze skript vyuziva tabulky "mangle" a chainu POSTROUTING, ktery ve starsich iptables nebyl. Pouziti chainu POSTROUTING se ovsem da obejit jinou sktrukturou, ktera se vklada do INPUT, OUTPUT a FORWARD, ta ovsem neni implementovana a ani nebude.

Vystupy statistik z techto skriptu jsou k videni na winelu, ukazkovy vystup (output example).

Nastaveni vetsiny dulezitych parametru lze provest v souboru rrstats.conf.

Nedelam si iluze o idealnosti techto skriptu (rrdtools se volaji pres system misto pres knihovnu perlu apod.) ovsem plni co jsem chtel. Davam je k dispozici tak jak jsou. Pouzivejte je na vlastni riziko.

TODO

  • likvidace nepotrebnych statistik
  • generovani html pro iface a load
  • vyklizeni iptables
  • zobrazeni on/off-line do grafu pro prenosy IP

DONE

  • 23/11/2003 prirazovani aliasu k ip z dhcpd.conf souboru - vyzaduje aby jeden radek v dhcpd.conf identifikoval jedno IP.
  • 23/11/2003 @exip=() empty example
  • 24/09/2003 nekolik dalsich uprav zobrazeni a meritek
  • 24/09/2003 kontrola zarazeni chainu RRD_* v POST/PREROUTINGu
  • 24/09/2003 Rozsirit databaze o hodnotu MAX a volitelne zobrazeni bud MAX nebo AVG (uzitek te MAX hodnoty je znacne diskutabilni) viz. rrstats.conf databaze nejsou kompatibilni se starsimi verzemi
  • 29/08/2003 obrana proti zahlceni - neco by mel vyresit arp | grep -v incomplete; pridana moznost vypnout arp detekci adres a stavu (on/off line) - oboji se dela pres arp ten se ale v configu da vypnout; do configu rozsiren priklad vice definovanych ip, opraven preklep v usage rrstats_ip
  • pridat do konfiguraku moznost monitorovat libovolne IP (nebo dokonce cely rozsah) - viz promenna @exip v configuraku
Download

Schema

Schema