Vous pouvez configurer l'analyseur Apache Common Log Format (CLF) pour les collecteurs FileLog
et WinLog
.
Analyseur Common Log Format (Apache)
L'analyseur Common Log Format (CLF) par défaut définit l'ordre et les noms de champs suivants :
host ident authuser datetime request statuscode bytes
Nom de l'analyseur :clf
L'option spécifique à l'analyseur CLF est format
.
Option Format
L'option format
spécifie le format auquel les journaux Apache sont générés. Cette option n'est pas obligatoire.
Si vous ne spécifiez aucun format, le format commun par défaut suivant est utilisé.
%h %l %u %t \"%r\" %s %b
La chaîne de format de l'analyseur CLF n'accepte pas les expressions regex. Par exemple, spécifiez un espace au lieu de l'expression \s+.
Pour analyser d'autres formats de journaux, spécifiez-les dans la configuration de l'agent. Les champs analysés s'affichent côté serveur sous les noms suivants :
{VARNAME}
est omise de la configuration, les champs sont ignorés.
Champs | Valeur | ||
---|---|---|---|
'%a': |
« remote_ip » | ||
'%A': |
« local_ip » | ||
'%B', '%b': |
« response_size » | ||
'%C': |
Dépend du nom de variable spécifié dans le format | ||
'%c': |
Dépend du nom de variable spécifié dans le format | ||
'%D': |
« request_time_mcs » | ||
'%E': |
« error_status » | ||
'%e': |
Dépend du nom de variable spécifié dans le format | ||
'%F', '%f': |
« file_name » | ||
'%h': |
« remote_host » | ||
'%H': |
« request_protocol » | ||
'%i': |
Dépend du nom de variable spécifié dans le format | ||
'%k': |
« keepalive_request_count » | ||
'%l': |
« remote_log_name » | ||
'%L' |
« request_log_id » | ||
'%M': |
« log_message » (l'analyseur cesse d'analyser le journal d'entrée lorsque ce spécificateur est atteint) | ||
'%m': |
« request_method » | ||
'%n': |
dépend du nom de variable spécifié dans le format | ||
'%o': |
dépend du nom de variable spécifié dans le format | ||
'%p': |
« server_port » Des formats supplémentaires peuvent être utilisés avec ce spécificateur : %{format}p. Les formats pris en charge sont « canonical », « local » ou « remote ». Lorsque le format « canonical » est utilisé, le nom de champ reste « server_port ». Lorsque le format « local » est utilisé, le nom de champ est « local_server_port » et, lorsque le format « remote » est utilisé, le nom de champ est « remote_server_port ». |
||
'%P': |
« process_id » Des formats supplémentaires peuvent être utilisés avec ce spécificateur : %{format}P. Les formats pris en charge sont « pid », « tid » et « hextid ». Si « pid » est utilisé comme format, le nom de champ est « process_id ». Les formats « tid » et « hextid » génèrent des champs avec le nom « thread_id » |
||
'%q': |
« query_string » | ||
'%r': |
« request » | ||
'%R': |
« response_handler » | ||
'%s': |
« status_code », qui génère l'état final de la demande. | ||
'%t': |
« timestamp », qui fonctionne en tant qu'horodatage d'événement lors de l'ingestion et engage l'analyseur horodatage. Pour remplacer la détection automatique d'horodatage, le format de date et d'heure peut être spécifié entre accolades : %{%Y-%m-%d %H:%M:%S}t, reportez-vous à la section Analyseur Timestamp pour plus de détails. Le format d'horodatage de l'analyseur CLF peut commencer par le préfixe
Les jetons de format suivants sont également pris en charge pour le spécificateur du format d'horodatage de l'analyseur CLF :
Pour analyser des journaux dans lesquels l'horodatage est représenté avec des jetons de format, les formats suivants peuvent être utilisés dans la configuration :
format=%h %l %u %{sec}t \"%r\" %s %b format=%h %l %u %{msec}t \"%r\" %s %b format=%h %l %u %{usec}t \"%r\" %s %b Ces jetons ne peuvent pas être combinés entre eux ou avec le formatage de l'analyseur Horodatage dans la même chaîne de format. Vous pouvez utiliser plusieurs jetons %{format}t à la place. Par exemple, pour utiliser Horodatage qui inclut des millisecondes, à l'exception de l'utilisation du spécificateur |
||
'%T': |
« request_time_sec » | ||
'%u': |
« remote_auth_user » | ||
'%U': |
« requested_url » | ||
'%v': |
« server_name » | ||
'%V': |
« self_referential_server_name » | ||
'%X': |
« connection_status », qui dépend du nom de la variable spécifiée dans le format | ||
'%x': |
Dépend du nom de variable spécifié dans le format | ||
'%I': |
« received_bytes » | ||
'%O': |
« sent_bytes » | ||
'%S': |
« transferred_size » |
Par exemple, pour analyser les journaux collectés à partir des sources winlog ou filelog à l'aide de l'analyseur CLF, spécifiez la configuration suivante :
[filelog|clflogs] directory=D:\Logs include=*.txt parser=myclf [parser|myclf] debug=yes ;Note: use this option only while debugging and set it to ‘no’ when used in production. base_parser=clf format=%h %l %u %b %t \"%r\" %s
Selon cette configuration, les journaux collectés à partir de la source clflogs, par exemple à partir du répertoire directory=D:\Logs, sont analysés par myclf. L'analyseur myclf traite uniquement les journaux générés au format décrit dans la configuration.
La valeur par défaut du débogage est debug=no pour les analyseurs.
Analyse des journaux générés à l'aide du format CLF
Pour analyser les journaux générés à l'aide du format CLF, définissez le format correspondant dans la configuration. Par exemple,
format=%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User_Agent}i\"
Les champs remplis qui utilisent les spécificateurs %{Referer}i
et %{User_Agent}i
s'affichent sur le serveur vRealize Log Insight sous les noms referer
et user_agent
, respectivement.
Intégration de l'analyseur timestamp à l'analyseur CLF
Vous pouvez analyser des journaux Apache à un format d'heure personnalisée.
Accédez aux journaux dont le format d'heure personnalisée est le suivant :
format = %h %l %u %{%a, %d %b %Y %H:%M:%S}t \"%r\" %>s %b
Si aucune heure personnalisée n'est spécifiée, l'analyseur CLF tente de déduire automatiquement le format d'heure en exécutant l'analyseur timestamp automatique. Dans le cas contraire, le format d'heure personnalisée est utilisé.
Les formats d'heures personnalisées pris en charge pour les journaux d'erreurs sont les suivants :
Format d'heure personnalisée | Description | Format de configuration |
---|---|---|
%{u}t |
Heure actuelle microsecondes incluses | format=[%{u}t] [%l] [pid %P] [client %a] %M |
%{cu}t |
Heure actuelle au format compact ISO 8601 microsecondes incluses | format=[%{cu}t] [%l] [pid %P] [client %a] %M |
Pour obtenir la liste complète des spécificateurs d'horodatage pris en charge, consultez la rubrique analyseur timestamp.
Configuration des journaux d'accès Apache par défaut pour Windows
Cet exemple montre comment formater des configurations de journaux d'accès Apache v2.4 pour Windows.
;ACCESS LOG ;127.0.0.1 - - [13/May/2015:14:44:05 +0400] "GET /xampp/navi.php HTTP/1.1" 200 4023 "http://localhost/xampp/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0" ;format=%h %l %u %{%d/%b/%Y:%H:%M:%S %z}t \"%r\" %>s %b \"%{Referer}i\" \"%{User_agent}i\" ; Section to collect Apache ACCESS logs [filelog|clflogs-access] directory=C:\xampp\apache\logs include=acc* parser=clfparser_apache_access enabled=yes ;Parser to parse Apache ACCESS logs [parser|clfparser_apache_access] debug=yes base_parser=clf format=%h %l %u %{%d/%b/%Y:%H:%M:%S %z}t \"%r\" %>s %b \"%{Referer}i\" \"%{User_agent}i\"
- Configurez Apache pour le format des journaux d'accès (httpd.conf) :
LogFormat "%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"" combined
- Définissez la configuration de l'analyseur CLF :
;ACCESS LOG ;127.0.0.1 unknown - 21-May-2015:13:59:35 "GET /xampp/navi.php HTTP/1.1" 127.0.0.1 127.0.0.1 - 0 unknown - GET - 1 localhost localhost 200 4023 "http://localhost/xampp/" "-" [filelog|clflogs-access] directory=C:\xampp\apache\logs include=acc*;_myAcc* parser=clfparser_apache_access enabled=yes ; Parser to parse Apache ACCESS logs [parser|clfparser_apache_access] debug=yes base_parser=clf format=%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"
remote_host=127.0.0.1 timestamp=2015-05-13T10:44:05 request=GET /xampp/navi.php HTTP/1.1 status_code=200 response_size=4023 referer=http://localhost/xampp/ user_agent=Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0
Cet exemple montre comment formater des configurations de journaux d'erreurs Apache v2.4 pour Windows.
;ERROR LOG ;[Wed May 13 14:37:17.042371 2015] [mpm_winnt:notice] [pid 4488:tid 272] AH00354: Child: Starting 150 worker threads. ;[Wed May 13 14:37:27.042371 2015] [mpm_winnt:notice] [pid 5288] AH00418: Parent: Created child process 3480 ;format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M ;format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M ; Section to collect Apache ERROR logs [filelog|clflogs-error] directory=C:\xampp\apache\logs include=err* parser=clfparser_apache_error enabled=yes ;Parser to parse Apache ERROR logs [parser|clfparser_apache_error] debug=yes base_parser=clf format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M next_parser=clfparser_apache_error2 ;Parser to parse Apache ERROR logs [parser|clfparser_apache_error2] debug=yes base_parser=clf format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M
- Configurez Apache pour le format des journaux d'erreurs (httpd.conf) :
LogFormat "%h %l %u %{%d-%b-%Y:%H:%M:%S}t \"%r\" %a %A %e %k %l %L %m %n %T %v %V %>s %b \"%{Referer}i\" \"%{User_Agent}i\"" combined
- Définissez la configuration de l'analyseur CLF :
;Parser to parse Apache ERROR logs [parser|clfparser_apache_error] debug=yes base_parser=clf format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P] %E: %M next_parser=clfparser_apache_error2 ;Parser to parse Apache ERROR logs [parser|clfparser_apache_error2] debug=yes base_parser=clf format=[%{%a %b %d %H:%M:%S%f %Y}t] [%m:%{severity}i] [pid %P:tid %{thread_id}i] %E: %M
Entrée journal :
[Wed May 13 14:37:17.042371 2015] [mpm_winnt:notice] [pid 4488:tid 272] AH00354: Child: Starting 150 worker threads.
timestamp=2015-05-13T10:37:17.042371 request_method=mpm_winnt severity=notice process_id=4488 thread_id=272 error_status=AH00354 log_message=Child: Starting 150 worker threads.
Entrée journal :
[Wed May 13 14:37:27.042371 2015] [mpm_winnt:notice] [pid 5288] AH00418: Parent: Created child process 3480
timestamp=2015-05-13T10:37:27.042371 request_method=mpm_winnt severity=notice process_id=5288 error_status=AH00418 log_message=Parent: Created child process 3480