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
