BK cloud / systèmes Articles
FR
English ENDeutsch DEEspañol ES中文 ZHFrançais FR
Prenons contact ↗
← Retour aux articles

Analyser les logs Apache avec awk

Article d’archive : ce texte décrit les outils et l’environnement utilisés lors de sa publication en 2019.

awk est très pratique pour analyser rapidement des requêtes Apache en ligne de commande. La syntaxe exacte dépend bien sûr du LogFormat, que je ne peux pas divulguer ici pour des raisons de conformité.

Aujourd’hui, je cherchais les requêtes de plus de trois secondes ; mes logs indiquent leur durée en microsecondes. Il me fallait aussi l’URL, et je voulais limiter les résultats à une plage horaire. Dans cet exemple, 2019:04:1 désigne toutes les requêtes du jour entre 04 h 10 et 04 h 19 UTC.

Voici ma commande :

cat /httpd/logs/access.log |grep "2019:04:1"| awk '{if ($(NF-2) > 3000000) print $4"-----"$7"-----"$(NF-2);}'

$(NF-2) est le troisième champ en partant de la fin de chaque ligne ; je sais qu’il contient la durée de la requête en microsecondes. La commande affiche l’horodatage (quatrième champ, $4), l’URL ($7) et la durée de la requête ($(NF-2)).