Mai 17 2009

Graphe MRTG du nombre de sessions Radius

Publié par à 10:07 sous Freeradius,Supervision

Il est possible d’obtenir un graphe du nombre de sessions actives Freeradius avec un simple script shell si les données d’accounting sont stockées dans une base SQL.

Voici un exemple pour Mysql qui peut s’adapter très facilement à d’autres bases comme Oracle ou PostgreSQL. Consultez la liste complète des bases de données supportées par Freeradius.
 

#!/bin/bash

SQL_USERNAME=utilisateur_radius
SQL_DATABASE=radius
SQL_PASSWORD=mot_de_passe
SQL_SERVER=127.0.0.1
SQL_ACCOUNTING_TABLE=radacct
BACK_DAYS=5

SESSIONS=`mysql -BN \
         -u$SQL_USERNAME \
         -p$SQL_PASSWORD \
         -h $SQL_SERVER $SQL_DATABASE \
         -e \
  "SELECT COUNT(*) FROM $SQL_ACCOUNTING_TABLE \
  WHERE acctstoptime IS NULL \
  AND Acctstarttime > NOW() - INTERVAL $BACK_DAYS DAY;"`

echo $SESSIONS


Il reste toujours un certain nombre de sessions non terminées en base à cause de pertes ou de déconnexions réseau entre le NAS et le serveur Radius. C’est pourquoi les sessions datant de plus de $BACK_DAYS sont ignorées pour retourner la valeur la plus précise possible.

Graphique MRTG du nombre de sessions Freeradius


Ce script retourne le nombre de sessions actives. Il est ensuite possible de créer un graphe de cette valeur unique avec MRTG qui en demande normalement deux.

Proposez également à tous vos utilisateurs des graphiques d’upload/download de leur consommation réseau Internet.


No responses yet

Comments RSS

Leave a Reply