User-Count v0.9a

Onlinekosten und Zeiten der einzelnen Surfer in 'ISDN dial on demand Netzen' ermitteln und darstellen
last edit : 24.06.2003

Home Peitsch :
http://home.pages.at/bhg_online/midfli4l.html

aktuelle Bug Diskussion :
http://212.84.254.161/0814/html/cgi-bin/cms/gb/gb.cgi?id=3629

mehl den Autor :
mailto:alexanderrichter@gmx.net

1. Inhalt

  1. Inhalt

  2. Disclaimer

  3. Installationshinweise für FLi4L ab v2.0.6
    Voraussetzungen

    Installation

  4. Funktionsumfang

  5. FAQ

  6. History

  7. Roadmap

  8. Wishlist

  9. Schlusswort

2. Disclaimer

Ich übernehme keinerlei Verantwortung für eventuelle Schäden, die durch dieses Skript verursacht werden könnten. Die Benutzung erfolgt ausdrücklich auf eigene Verantwortung.

Current ist opt_user-count_0.9a, dies heisst immer noch alpha und nicht zum bedenkenlosen Einsatz geeignet !
Wir nähern uns aber mit festem Tritt der 1.0, das heisst hoffentlich auch Beta, aber mir wirds wohl wie linus mit seinem Kernel gehn .-)

3. Installationshinweise für FLi4L ab v2.0.6 ( getestet 2.0.4, 2.0.4, 2.0.6, 2.0.7, 2.0.8 )

3.1 Voraussetzungen

3.2 Installation

Installationen von opt_user-count vor 0.8a sind nicht kompatibel mit 0.9a ( betrifft nicht die vorhanden Logfiles ! )
wenn aeltere Versionen vor 0.8 installiert sind, bitte vor Auspacken des Paketes :

- /opt/etc/ppp/ip-up.user.uc und /opt/etc/ppp/ip-up.user.uc per Hand entfernen !!!

Das Script funktioniert derzeit nur mit Isdn Verbindungen, Modem ist noch nicht getestet ( wenn Bedarf Mehl an den Autor ) , dsl dial on demand ist noch nicht implementiert ( hab leider kein dsl :-( )
Eine vorhande HD-installation ist Voraussetzung, um die Logdateien nach einem Reboot zu erhalten.

Man entpacke das Archiv und kopiere alles in das Fli4L-Basisverzeichnis

Unter Linux z.B. Kopieren ins Fli4l root Verzeichnis und entpacken mit tar xfvz opt****.tgz


-Editieren der uc.txt in /config


Nun noch eine neues opt.tgz erstellen oder den Router per Imonc updaten, und schon kann man loslegen. Wenn man die Dateien per ftp hochgeladen hat, muss man noch darauf achten, dass die CGI's ausführbar sind. Am einfachsten führt man dazu ein

chmod 777 /usr/local/htdocs/*.cgi

an der Router-Konsole oder per telnet/ssh aus.

4. Funktionsumfang

On boot werden aus der /boot/rc.cfg Hostdaten, ob ein Proxy läuft, das Log-dir vom Imond und isdn relevante Daten in /var/run/uc_host.cfg eingelesen, die später als Variablen in die Scripts eingelesen werden.
Es wir basierend auf den ISDN_Circuits und ihrer Angabe 'ob Channel Bundling on' eine Liste aller ippp devices mit den zugehörigen Hangup_Zeiten und den jeweiligen Einwahlkosten erstellt.
Es wird eine gültige /etc/ethers angelegt, die die Mac Adresse und den Hostnamen des Routers enthält, wird gebraucht für tcpdump.

On ip-up, also beim Aufbau einer Verbindung, lauscht ein tcpdump basierendes Script auf dem Intranet Netzwerk device auf tcp/udp Pakete, die nicht fürs Intranet bestimmt sind, in Zeitschleifen, basierend auf Hang-up Time plus 15 secunden Reserve. Die Hangup-Time wird aus der beim Booten erzeugten Liste /var/run/uc_circuit.data im Vergleich mit dem aktuellen ippp-device erzeugt.

Pro Minuten-log wird das Vorkommen der User einmalig prozentual erfasst, dies passiert durch jeweiligen Start von tcpdump in den Zeitschleifen und Sicherung der aufgelaufenen Logfiles durch Durchnummerierung.

On ip-down wird das Log Script beendet, die enstandenen 'Minutenlogs' werden nach prozentualen Anteilen des Aufkommens von bekannten Usern ausgewertet ( in base.txt als hosts in domain deklariert ),
wenn in einem 'Minutenlog' kein tcp/udp Traffic auftauchte, wird der gesamte icmp Verkehr am Ethernet Interface in diesem Logfile analysiert.
Es erfolgt eine Umsetzung aller Prozentwerte der User im Verhältnis zur Anzahl der Minutenlogs und den entstanden Kosten, die aus dem Log von Imonc gewonnen werden.
Verhältnissmässig zum prozentualen Vorkommen der User über alle Logfiles wird die Einwahlgebühr aufsummiert.
Ausgeben werden die Anteile und Kosten, sowie die Online Zeit für die letzte Session und für den aktuellen Monat. So daylogs aktiviert ist werden analog zu den Monatslogs Tageslogs nach dem Muster Tag-Monat_Jahr.daylog im Unterverzeichnis /daylogs angelegt.
So noch kein Monatslog vorhanden ist (z.B weil neuer Monat angebrochen ist) wird ein Neues erstellt, selbiges für die Daylogs.

Alles was dann an temporären Dateien nach Abbau der Online Verbindung nicht mehr gebraucht wird, wird geproppert.

Das main_User-Count.cgi liest bei Anforderung die last-session und monats-session Logs aus und stellt sie grafisch via Httpd dar.
Bei aktiviertem Daylog, können freie Tageslogbasierende Zeiträume festgelegt werden, die dann via uc_action.cgi aufsummiert dargestellt werden.

5. FAQ

6. History

7. Roadmap

8. Wishlist

9. Schlusswort

Bug-Reports und Verbesserungsvorschläge bitte an u.a. eMail-Adresse richten, dafür bin ich jederzeit offen und dankbar. Denkt daran, verbessert werden kann nur etwas durch gemeinsames Zusammenarbeiten. Ich hoffe, Euch mit diesen Skripts die Router-Abrechnung ein wenig bequemer zu machen.



MfG,
Alexander Richter
mailto:alexanderrichter@gmx.net

vorlage.html doku erstellt von
Daniel H. Reichelt