apache 日志格式

通用日志格式(Apache)日志解析器
上次更新时间 2019年05月31日 0
添加到 MyLibrary
< 提出新问题
您可以同时为FileLog和WinLog收集器配置通用日志格式(CLF)Apache解析器。

通用日志格式(Apache)解析器
默认的CLF解析器定义以下字段的顺序和名称。

主机标识authuser日期时间请求状态码字节
解析器名称:clf

CLF解析器特定的选项是format。

格式选项
该format选项指定生成Apache日志的格式。该选项不是必需的。

如果未指定格式,则使用以下默认的通用日志格式。

%h%l%u%t \“%r \”%s%b
CLF解析器格式字符串不接受正则表达式。例如,指定一个空格而不是表达式\ s +。

要解析其他日志格式,请在代理的配置中指定该格式。解析字段以以下名称显示在服务器端。

注意:
在需要变量的情况下,如果{VARNAME}配置中未提供变量,则将 忽略这些字段。
领域 值
‘%a‘: “ remote_ip”
‘%A‘: “ local_ip”
‘%B‘, ‘%b‘: “ response_size”
‘%C‘: 取决于格式中指定的变量名称
‘%c‘: 取决于格式中指定的变量名称
‘%D‘: “ request_time_mcs”
‘%E‘: “错误状态”
‘%e‘: 取决于格式中指定的变量名称
‘%F‘, ‘%f‘: “文件名”
‘%h‘: “远程主机”
‘%H‘: “ request_protocol”
‘%i‘: 取决于格式中指定的变量名称
‘%k‘: “ keepalive_request_count”
‘%l‘: “ remote_log_name”
‘%L‘ “ request_log_id”
‘%M‘: “ log_message”(解析器到达此说明符后停止解析输入日志)
‘%m‘: “ request_method”
‘%n‘: 取决于格式中指定的变量名称
‘%o‘: 取决于格式中指定的变量名称
‘%p‘: “ server_port”此说明符可以使用其他格式:%{format} p。支持的格式为“规范”,“本地”或“远程”。使用“规范”格式时,字段名称仍为“ server_port”。使用“本地”格式时,字段名称将为“ local_server_port”,而使用“远程”格式时,字段名称将为“ remote_server_port”。
‘%P‘: “ process_id”此说明符可以使用其他格式:%{format} P。支持的格式为“ pid”,“ tid”和“ hextid”。如果将“ pid”用作格式,则字段名称将为“ process_id”。而“ tid”和“ hextid”格式会生成名称为“ thread_id”的字段
‘%q‘: “请求参数”
‘%r‘: “请求”
‘%R‘: “ response_handler”
‘%s‘: “状态代码”。还支持生成请求的最终状态。这在服务器上显示为“ status_code”。
‘%t‘:
“时间戳记”将作为摄取事件的时间戳记,与时间戳记解析器配合使用。要覆盖时间戳自动检测,可以使用大括号指定日期和时间格式:%{%Y-%m-%d%H:%M:%S} t,有关更多详细信息,请参见时间戳解析器。

CLF解析器的时间戳格式可以以"begin:"或"end:"前缀开头。如果格式以begin:(默认)开头,则时间在请求处理开始时开始计算。如果以开头end:,则它是日志条目被写入的时间,接近请求处理的结尾。例如,CLF解析器支持以下格式:%h %l %u [%{begin:%d/%b/%Y %T}t.%{msec_frac}t] "%r" %>s %b

CLF解析器的时间戳格式说明符还支持以下格式令牌:

自*以来的秒数。这等效于时间戳解析器的 %s说明符。
毫秒
自纪元以来的毫秒数
有用的
自纪元以来的微秒数
msec_frac
毫秒部分(相当于时间戳解析器的%f指定符)
毫秒
微秒部分(相当于时间戳解析器的%f说明符)
要解析使用格式标记表示时间戳的日志,可以在配置中使用以下格式:
格式=%h%l%u%{sec} t \“%r \”%s%b
格式=%h%l%u%{msec} t \“%r \”%s%b
格式=%h%l%u%{usec} t \“%r \”%s%b
这些标记不能彼此组合,也不能与相同格式字符串中的时间戳解析器格式组合。您可以改用多个%{format} t令牌。例如,要使用包括毫秒的时间戳,除了使用时间戳解析器的%f 说明符外,可以使用以下组合时间戳: %{%d/%b/%Y %T}t.%{msec_frac}t 。

‘%T‘: “ request_time_sec”
‘%u‘: “ remote_auth_user”
‘%U‘: “ requested_url”
‘%v‘: “服务器名称”
‘%V‘: “ self_referential_server_name”
‘%X‘: “ connection_status”取决于格式中指定的变量名称
‘%x‘: 取决于格式中指定的变量名称
‘%I‘: “ received_bytes”
‘%O‘: “ sent_bytes”
‘%S‘: “ transferred_size”
例如,要使用CLF解析器解析从winlog或filelog源收集的日志,请指定以下配置:

[文件日志| clflogs]
目录= D:\日志
包括= *。txt
解析器= myclf

[parser | myclf]
debug = yes;注意:仅在调试时使用此选项,并在生产中使用时将其设置为“ no”。
base_parser = clf
格式=%h%l%u%b%t \“%r \”%s
使用该结构,从收集的日志clflogs源,例如来自目录= d:\日志目录中,通过解析myclf。所述myclf解析器解析仅与配置中描述的格式生成的那些日志。

对于解析器,debug的默认值为debug = no。

解析使用CLF生成的日志
要解析使用CLF生成的日志,必须在配置中定义相应的格式。例如,

格式=%h%l%u%t \“%r \”%> s%b \“%{Referer} i \” \“%{User_Agent} i \”
未清空该使用说明符字段%{Referer}i和%{User_Agent}i出现在vRealize日志洞察与名称服务器referer和user_agent分别。

将时间戳解析器与CLF解析器集成
您可以使用自定义时间格式解析Apache日志。

具有以下自定义时间格式的访问日志。

格式=%h%l%u%{%a,%d%b%Y%H:%M:%S} t \“%r \”%> s%b
如果未指定自定义时间,则CLF解析器将尝试通过运行自动时间戳解析器来自动推断时间格式,否则将使用自定义时间格式。

错误日志支持的受支持的自定义时间格式为:

自定义时间格式 描述 配置格式
%{u}t 当前时间(包括微秒) format=[%{u}t] [%l] [pid %P] [client %a] %M
%{cu}t 紧凑型ISO 8601格式的当前时间,包括微秒 format=[%{cu}t] [%l] [pid %P] [client %a] %M
有关受支持的时间戳说明符的完整列表,请参见timestamp parser。

Windows的Apache默认访问日志配置
本示例说明如何格式化Windows的Apache v2.4访问日志配置。

;访问日志
; 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 \“

; 收集Apache ACCESS日志的部分
[filelog | clflogs-access]
目录= C:\ xampp \ apache \ logs
包含= acc *
parser = clfparser_apache_access
启用=是

;解析器解析Apache ACCESS日志
[parser | clfparser_apache_access]
调试=是
base_parser = clf
格式=%h%l%u%{%d /%b /%Y:%H:%M:%S%z} t \“%r \”%> s%b \“%{Referer} i \ “ \”%{User_agent} i \“
定义访问日志格式:
为Apache配置访问日志格式(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 \”“的总和
定义CLF解析器配置:
;访问日志
; 127.0.0.1未知-21-May-2015:13:59:35“ GET /xampp/navi.php HTTP / 1.1” 127.0.0.1 127.0.0.1-0未知-GET-1 localhost localhost 200 4023“ http:/ / localhost / xampp /“”-“
[filelog | clflogs-access]
目录= C:\ xampp \ apache \ logs
包括= acc *; _ myAcc *
parser = clfparser_apache_access
启用=是
; 解析器解析Apache ACCESS日志
[parser | clfparser_apache_access]
调试=是
base_parser = clf
格式=%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 \”
CLF解析器返回以下内容:
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
本示例说明如何格式化Windows的Apache v2.4错误日志配置。

;错误日志
; [2015年5月13日星期三14:37:17.042371] [mpm_winnt:notice] [pid 4488:tid 272] AH00354:子级:启动了150个工作线程。
; [2015年5月13日星期三14:37:27.042371] [mpm_winnt:notice] [pid 5288] AH00418:父级:已创建子进程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

; 收集Apache错误日志的部分
[filelog | clflogs-错误]
目录= C:\ xampp \ apache \ logs
包括=错误*
parser = clfparser_apache_error
启用=是

;解析器解析Apache错误日志
[parser | clfparser_apache_error]
调试=是
base_parser = clf
格式= [%{%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

;解析器解析Apache错误日志
[parser | clfparser_apache_error2]
调试=是
base_parser = clf
格式= [%{%a%b%d%H:%M:%S%f%Y} t] [%m:%{severity} i] [pid%P]%E:%M
注意:
提供的名称对应于组合的日志格式。还使用上述格式键(而非Apache错误日志格式)描述了Apache错误日志。
定义错误日志格式:
为Apache配置错误日志格式(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 \”“的总和
定义CLF解析器配置:
;解析器解析Apache错误日志
[parser | clfparser_apache_error]
调试=是
base_parser = clf
格式= [%{%a%b%d%H:%M:%S%f%Y} t] [%m:%{severity} i] [pid%P]%E:%M
next_parser = clfparser_apache_error2

;解析器解析Apache错误日志
[parser | clfparser_apache_error2]
调试=是
base_parser = clf
格式= [%{%a%b%d%H:%M:%S%f%Y} t] [%m:%{severity} i] [pid%P:tid%{thread_id} i]%E :%M
日志条目:

[2015年5月13日星期三14:37:17.042371] [mpm_winnt:notice] [pid 4488:tid 272] AH00354:孩子:启动了150个工作线程。
CLF解析器为日志条目返回以下字段(如果在+0400时区中使用解析器):
timestamp = 2015-05-13T10:37:17.042371
request_method = mpm_winnt
严重性=注意
process_id = 4488
thread_id = 272
error_status = AH00354
log_message = Child:启动150个工作线程。
日志条目:

[2015年5月13日星期三14:37:27.042371] [mpm_winnt:notice] [pid 5288] AH00418:父级:已创建子进程3480
CLF解析器为日志条目返回以下字段(如果在+0400时区中使用解析器):
timestamp = 2015-05-13T10:37:27.042371
request_method = mpm_winnt
严重性=注意
process_id = 5288
error_status = AH00418
log_message =父项:创建的子进程3480

apache 日志格式

上一篇:Web前端 -- Webpack


下一篇:NET 事件与委托