diff --git a/surveillance/maintenance-netacct-ng.sql b/surveillance/maintenance-netacct-ng.sql new file mode 100644 index 00000000..4e64990b --- /dev/null +++ b/surveillance/maintenance-netacct-ng.sql @@ -0,0 +1,12 @@ +----------------------------------------------------------------- +-- Maintenance de la base netacct-ng sur pgsql, lancé par cron +----------------------------------------------------------------- + +-- effacement des vieux enregistrements +DELETE FROM upload where date< timestamp 'now' - interval '2 days'; + +-- suppression complète des entrées +VACUUM; + +-- réindexation des tables +REINDEX TABLE upload; diff --git a/surveillance/statistiques.py b/surveillance/statistiques.py index ed39d12a..ae577844 100644 --- a/surveillance/statistiques.py +++ b/surveillance/statistiques.py @@ -46,6 +46,10 @@ pgsql = PgSQL.connect(host='/var/run/postgresql', database='filtrage', user='crans') curseur = pgsql.cursor() +pgsql2 = PgSQL.connect(host='/var/run/postgresql', + database='netacct-ng', user='crans') +curseur2 = pgsql2.cursor() + ########################### # Statistiques d'upload : # ########################### @@ -78,6 +82,24 @@ liste_upload = tableau(data = [ (l[1], l[2], gethostname(str(l[0]))) alignement = ['d', 'd', 'c']).encode('iso-8859-15') +# Liste des uploads (expérimental) : +#################################### +requete = """SELECT ip_crans, sum(upload) AS somme, sum(download) +FROM upload +WHERE + date > timestamp 'now' - interval '1 day' +GROUP BY ip_crans +ORDER BY somme DESC""" +curseur2.execute(requete) +liste_upload2 = tableau(data = [ (l[1], l[2], gethostname(str(l[0]))) + for l in curseur2.fetchall() + if int(l[1]) > 100*1024*1024 ], + titre = ['upload', 'download', 'machine'], + largeur = [10, 10, 30], + format = ['o', 'o', 's'], + alignement = ['d', 'd', 'c']).encode('iso-8859-15') + + # Traffic exempté : ################### requete = """SELECT ip_crans, sum(upload) AS somme, sum(download) @@ -288,6 +310,10 @@ Content-Type: text/plain; charset="iso-8859-15" %(liste_upload)s +*Statistiques de traffic* (expérimental) + +%(liste_upload2)s + *Statistiques de traffic des adhérents exemptés* (juste le traffic exempté) %(liste_exemptes)s @@ -305,6 +331,7 @@ corps = message % { 'From': expediteur, 'liste_etherunk': liste_etherunk, 'liste_serveurs': liste_serveurs, 'liste_upload': liste_upload, + 'liste_upload2': liste_upload2, 'liste_p2p': liste_p2p, 'liste_virus': liste_virus, 'liste_virus2': liste_virus2,