Arhivă blog - cum să contorizați traficul pe freebsd

În plus, trebuie să îndepliniți următoarele condiții:

Primul lucru pe care trebuie să-l faceți este să instalați MySQL și să creați o bază de date care să conțină tabelele utilizate în procesul de facturare. Lăsați numele bazei de date în aceste scopuri să fie ipacc. Apoi - instalați pachetul trafd. În FreeBSD, programul trafd se află în porturi, ceea ce face instalarea destul de simplă:

De fapt, trafd este un set de mai multe programe, dar avem nevoie de următoarele utilități:

  • trafd este un daemon de colectare a traficului
  • trafdump / trafsave - programe pentru înregistrarea traficului colectat de către daemonul trafd într-un format binar
  • traflog - program pentru conversia fișierelor binare de trafic în formatul de testare

Pasul 1: Lansați daemonul trafd

Demonul trafd trebuie pornit după ce sistemul este pornit. Pentru aceasta, creați fișierul /usr/local/etc/rc.d/trafd.sh:

unde -i ed0 indică numele adaptorului de rețea din care va colecta traficul; Comutatorul -p indică faptul că placa de rețea nu este necesară (în mod implicit, trafd daemon permite placa de rețea în modul de promiscuitate) în modul de promiscuitate; Comutatorul -r va indica o încercare de a recupera date dintr-un fișier binar existent la repornirea Daemon. În cazul în care termenii de referință indicând faptul că traficul contează cu interfețe de rețea multiple în același timp, puteți rula mai multe copii ale fișierului /usr/local/etc/rc.d/trafd.sh daemon trafd, de exemplu:

Pasul 2: Creați fișiere binare de trafic

Demon trafd stochează informații despre traficul colectat în memorie, astfel încât este necesar să se trimită periodic un semnal pentru a „reseta“ datele acumulate într-un fișier temporar, astfel că, dacă reporniți computerul pentru a restabili traficul câștigat din fișierul temporar (-r demon trafd cheie). Făcând acest lucru va script /usr/local/etc/traffic/save_tmp.sh.

O dată pe zi este necesară pentru a înregistra acumulate de trafic demon trafd în binarele /usr/local/var/trafd/trafd.ed0(1,2) folosind programul trafsave cauzând /usr/local/etc/traffic/periodic.sh ei de script-ul:

Deci, scriptul save_tmp.sh va fi sunat o dată la 15 minute, scriptul periodic.sh este apelat la sfârșitul fiecărei zile:

Imediat după debutul unei noi zile, trafic /usr/local/var/trafd/trafd.ed0(1,2 fișiere binare) pentru a fi stocate într-un loc sigur. Un astfel de loc pentru noi va fi directorul / usr / local / var / traffic. Pentru a copia traficul binar în cursul ultimei zile a scrie următorul script, și salvați-l ca /usr/local/etc/traffic/daily.sh:

Pasul 4. Convertiți fișierele binare de trafic în vizualizarea textului

Deci, după pasul 3, avem fișiere binare de trafic pentru ultimele 24 de ore care trebuie să înceapă procesarea. Pentru început, trebuie să le convertiți dintr-un format binar într-o formă textuală. În acest scop, există un program de traflog, pe care îl vom apela din scriptul /usr/local/etc/traffic/expandplain.sh:

După cum probabil ați ghicit, fișierele de trafic text vor fi adăugate în directorul / usr / local / var / traffic_plain. Apelarea scriptului expandplain.sh va apărea, de asemenea, într-un program.

Formatul textului fișierului de trafic este destul de simplu pentru o persoană să perceapă:

Pasul 5. Puneți traficul de ieri în baza de date MySQL

Traficul pentru ultima zi ar trebui condus din tabelul de baze de date MySQL pentru a facilita lucrul cu acesta. Traficul de ieri va fi plasat într-un tabel numit ieri de următorul format:

Pentru a procesa fișiere de trafic text, vom folosi următorul script (sunați-l /usr/local/etc/traffic/db_step1.pl):

Este destul de natural ca acest scenariu să fie numit și de coroană:

Pasul 6 (ultima). Prelucrarea și însumarea traficului de ieri

Următorul script /usr/local/etc/traffic/db_step2.pl calculează suma totală pentru ziua precedentă:

În cazul în care introduceți lansarea acestui scenariu, sper că ați ghicit deja acest lucru

Descărcați setul de scripturi din acest articol ipacc_trafd.tgz (1,5Kbytes)

Articole similare