Vistas

Mejora G-Forge 9: Incorporación de herramientas de análisis estadísticos

De MorfeoWiki

En esta sección se trata de generar estadísticas de acceso a los recursos web de un proyecto. Para ello, a grandes rasgos, se selecciona del log de Apache2 las lineas correspondientes a cada proyecto para generar un log particular, que será analizado posteriormente con Webalizer.

Esto se hace desde un script en PHP que consulta la base de datos de GForge para extraer los nombres de los proyectos y, a partir de ellos, generar un informe en su espacio web personal.

Script PHP

 #!/usr/bin/php4
 <?php
    $conn=pg_connect("dbname=gforge user=gforge password=laclave1 host=localhost");
    if (!$conn){
       echo "Ha ocurrido un error al conectar con la base de datos";
    }
    $result= pg_query($conn, "select group_id, unix_group_name from groups where status='A'");
    while ($row=pg_fetch_row($result)){
       //genero logs de acceso para cada proyecto
       $access_log_path="/var/lib/gforge/chroot/home/groups/$row[1]/log/access.log";
       $command="grep -r group_id=$row[0] /var/log/gforge/200? | sed s:^[.]*\::g > $access_log_path";
       system ($command);
       //genero el archivo de configuraci?n de webalizer para cada proyecto
       $output_dir="/var/lib/gforge/chroot/home/groups/$row[1]/htdocs/stats";
       $config_file_path="/var/lib/gforge/chroot/home/groups/$row[1]/webalizer.conf";
       $config_file_content=   "LogFile        $access_log_path
 LogType clf\n
 OutputDir      $output_dir\n
 Incremental     yes\n
 IncrementalName webalizer.current\n
 HostName       $row[1].forge.morfeo-project.org\n
 PageType        php*\n
 PageType        htm*\n
 PageType        cgi\n 
 UseHTTPS       no\n
 DNSCache        dns_cache.db\n
 DNSChildren     2\n 
 HideURL         *.gif\n
 HideURL         *.GIF\n
 HideURL         *.jpg\n
 HideURL         *.JPG\n
 HideURL         *.png\n
 HideURL         *.PNG\n
 HideURL         *.ra\n
 SearchEngine    yahoo.com       p=\n
 SearchEngine    altavista.com   q=\n
 SearchEngine    google.com      q=\n
 SearchEngine    eureka.com      q=\n 
 SearchEngine    lycos.com       query=\n
 SearchEngine    hotbot.com      MT=\n
 SearchEngine    msn.com         MT=\n
 SearchEngine    infoseek.com    qt=\n
 SearchEngine    webcrawler      searchText=\n
 SearchEngine    excite          search=\n
 SearchEngine    netscape.com    search=\n
 SearchEngine    mamma.com       query=\n
 SearchEngine    alltheweb.com   query=\n
 SearchEngine    northernlight.com  qr=\n";
       system("mkdir $output_dir");
       system("echo  '$config_file_content' > $config_file_path");
       //genero las estadisticas
       system("webazolver -c $config_file_path");
       system("webalizer -c $config_file_path");
       //echo $row[1]; 
       //echo " con numero ";
       //echo $row[0];
       //echo "<br>";
          }
 ?>
 

Resultados

Cada noche se genera un informe estadístico para cada proyecto en el espacio reservado para los documentos web de dicho proyecto, de manera que el administrador del mismo pueda enlazarlo facilmente desde su página principal a través de la URL: <nombre_proyecto>.morfeo-project.org/stats