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


App

Recent Tweets

Catégories