forked from acouzens/open5gs
48 lines
2.7 KiB
Plaintext
48 lines
2.7 KiB
Plaintext
This folder contains several tools to use and parse the data from the app_acct.fdx extension.
|
|
|
|
- database.sql :
|
|
An example database format for use with the scripts in this folder.
|
|
|
|
- app_acct.conf :
|
|
The part of app_acct.conf that is relevant to this database schema.
|
|
|
|
- purge_to_file.php :
|
|
This PHP script is used to take the records from the incoming table (stored by app_acct.fdx
|
|
extension) and save these records in a file in SQL format. This is similar to pg_dump
|
|
command, except that all the records that have been saved in the file are removed from
|
|
the table. This can be used in cron jobs for example to maintain a reasonable size of
|
|
the incoming table and move the data to another host for off-line processing. It can
|
|
also be useful to aggregate the data from different hosts, if you are load-balancing your
|
|
accounting servers for example (granted that all app_acct.fdx use identical table format
|
|
on all the servers). See the top of the file for configuration parameters.
|
|
|
|
- process_records.php :
|
|
This PHP script processes the records pertaining to users sessions, as follow:
|
|
* when a session is complete (STOP record received), it stores a session summary
|
|
into the processed records table (see process_database.sql file for format).
|
|
* It optionally archives the processed records into a different table, before deleting them.
|
|
* It can also move records of unterminated sessions that are older than a configurable time
|
|
to an orphan_records table, so that they are not re-processed every time.
|
|
This orphans table must have the same structure as the "incoming" table.
|
|
|
|
- display_results.php, display_self.php, display_stats.php :
|
|
These scripts give a few examples of how to display the processed data.
|
|
|
|
USAGE:
|
|
*) Initial: create your database using database.sql file
|
|
*) Configure the app_acct.fdx extension using tips from app_acct.conf
|
|
|
|
The following processing can be run for example as cron jobs.
|
|
1) On each accounting server for the realm, configure the app_acct.fdx extension to
|
|
dump the records in a local database (all servers must use the same database format).
|
|
The table would typically be "incoming".
|
|
2) Run the purge_to_file.php script on each server regularly, then move the generated
|
|
files onto a single server for processing. This server only needs the other tables.
|
|
3) Add the data from the files into the database in this server by running:
|
|
psql < file.sql
|
|
Each file that has been added should then be archived and removed so that it is not
|
|
re-added later.
|
|
4) Run the process_records.php script on this processing server. Now, the database
|
|
contains the aggregated data that can be visualized with display_*.php scripts.
|
|
|