Apache日志是运维网站的重要信息,日志服务支持通过Apache模式快速采集Apache日志并进行多维度分析。本文介绍如何通过日志服务控制台创建Apache模式的Logtail配置采集日志。
前提条件
- 已创建Project和Logstore。更多信息,请参见创建Project和创建Logstore。
- 已开通服务器的80端口和443端口。
- 已在Apache日志配置文件中指定日志的打印格式、日志文件路径和名称。更多信息,请参见附录:日志格式和样例。
操作步骤
附录:日志格式和样例
当您要采集Apache日志时,您需要在Apache日志配置文件中指定日志的打印格式、日志文件路径和名称。例如CustomLog "/var/log/apache2/access_log" combined,表示日志打印时使用combined格式,日志文件路径为/var/log/apache2/access_log。具体的日志格式和日志样例如下所示:
- Apache日志格式
- combined格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
- common格式
LogFormat "%h %l %u %t \"%r\" %>s %b"
- 自定义格式
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D %f %k %p %q %R %T %I %O" customized
相关字段说明如下所示,更多信息,请参见mod_log_config。
字段格式 字段名称 说明 %a client_addr 客户端IP地址。 %A local_addr 本地IP地址。 %b response_size_bytes 响应字节大小,空值时显示为短划线(-)。 %B response_bytes 响应字节大小,空值时为0。 %D request_time_msec 请求时间,单位为微秒。 %f filename 文件名。 %h remote_addr 远程的主机名。 %H request_protocol_supple 请求协议。 %I bytes_received 服务器接收的字节数,需要启用mod_logio模块。 %k keep_alive 在此连接上处理的请求数。 %l remote_ident 远程主机提供的识别信息。 %m request_method_supple 请求方法。 %O bytes_sent 服务器发送的字节数,需要启用mod_logio模块。 %p remote_port 服务器端口号。 %P child_process 子进程ID。 %q request_query 查询字符串,如果不存在则为空字符串。 %r request 请求内容,包括方法名、地址和HTTP协议。 %R response_handler 服务端的处理程序类型。 %s status 响应的HTTP状态,初始状态。 %>s status 响应的HTTP状态,最终状态。 %t time_local 服务器时间。 %T request_time_sec 请求时间,单位为秒。 %u remote_user 客户端用户名。 %U request_uri_supple 请求的URI路径,不带查询字符串。 %v server_name 服务器名称。 %V server_name_canonical 根据UseCanonicalName指令设定的服务器名称。 “%{User-Agent}i” http_user_agent 客户端信息。 “%{Rererer}i” http_referer 来源页。 - combined格式
- Apache日志样例
192.168.1.2 - - [02/Feb/2020:17:44:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://localhost/x1.htm?userCode=wrvvs1rm&zuntopl" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.97 Safari/537.36"