Tracer une Application LAMP avec les logs Apache Blackbox
Logger avec Apache 2.0
C’est grâce au module Apache mod_logio.c (Logging of input and output bytes per request) que nous allons réaliser des logs de type blackbox.
Liste des modules compilés statiquement:
apache2 -l
Compiled in modules:
core.c
mod_log_config.c
mod_logio.c
prefork.c
http_core.c
mod_so.c
Configuration Apache 2.0
# Blackbox log format
<IfModule mod_logio.c>
LogFormat "%a/%S %X %t \"%r\" %s/%>s %{pid}P/%{tid}P %T/%D %I/%O/%B" blackbox
</IfModule>
<IfModule !mod_logio.c>
LogFormat "%a/%S %X %t \"%r\" %s/%>s %{pid}P/%{tid}P %T/%D 0/0/%B" blackbox
</IfModule>
CustomLog /var/opt/apache2/logs/blackbox blackbox
Si le port source du client ne vous intéresse pas, remplacer %S par 0
Attention!
Pour utiliser pleinement les logs de type BlackBox if va falloir patcher le code source mod_log_config.c ou en créant un module de log dédié. Dans les deux cas, un nouveau format permettra à la directive d’enregistrer le port source de la connexion initiée par le client.
Si vous souhaitez logger le port source du client voici les modifications à opérer. Pour Apache 2.0 cela se trouve dans les sources modules/loggers/mod_log_config.c
Trouver la fonction définit pour log_remote_address. Ajouter la fonction suivante après elle:
/*
* log_remote_port patch
*/
static const char *log_remote_port(request_rec *r, char *a)
{
apr_port_t rport;
apr_sockaddr_port_get(&rport, r->connection->remote_addr);
return apr_itoa(r->pool, rport);
}
Trouver une fonction initulée log_pre_config à la fin du fichier et ajouter ce qui suit :
static int log_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp)
{
.....
log_pfn_register(p, "s", log_status, 1);
/* log_remote_port patch */
log_pfn_register(p, "S", log_remote_port, 0);
}
return OK
}
Sauvegarder les modifications, puis recompiler Apache.
Grapher avec Munin
Source: http://www.oreillynet.com/pub/a/apache/2004/04/22/blackbox_logs.html

