Apache 日志

2018-11-26 08:16:40 4921

apache日志格式和目录通常在配置文件 /etc/apache2/httpd.conf中。

日志格式

Apache日志配置文件中默认定义了两种打印格式,分别为combined格式和common格式。您也可以添加自定义配置,按需求配置您的日志的打印格式。

  • 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

Apache日志配置文件中同时需要指定当前日志的打印格式、日志文件路径及名称。例如以下声明表示日志打印时使用配置文件中定义的combined格式,且日志路径和名称为/var/log/apache2/access_log

CustomLog "/var/log/apache2/access_log" combined

字段说明


字段格式键名称含义
%aclient_addr请求报文中的客户端IP地址。
%Alocal_addr本地私有IP地址。
%bresponse_size_bytes响应字节大小,空值时可能为"-"。
%Bresponse_bytes响应字节大小,空值时为0。
%Drequest_time_msec请求时间,单位为毫秒。
%hremote_addr远端主机名。
%Hrequest_protocol_supple请求协议。
%lremote_ident客户端日志名称,来自identd。
%mrequest_method_supple请求方法。
%premote_port服务器端口号。
%Pchild_process子进程ID。
%qrequest_query查询字符串,如果不存在则为空字符串。
"%r"request请求内容,包括方法名、地址和http协议。
%sstatus响应的http状态码。
%>sstatus响应的http状态码的最终结果。
%ffilename请求的文件名。
%kkeep_alivekeep-alive请求数。
%Rresponse_handler服务端的处理程序类型。
%ttime_local服务器时间。
%Trequest_time_sec请求时间,单位为秒。
%uremote_user客户端用户名。
%Urequest_uri_supple请求的URI路径,不带query。
%vserver_name服务器名称。
%Vserver_name_canonical服务器权威规范名称。
%Ibytes_received服务器接收得字节数,需要启用mod_logio模块。
%Obytes_sent服务器发送得字节数,需要启用mod_logio模块。
"%{User-Agent}i"http_user_agent客户端信息。
"%{Rererer}i"http_referer来源页。

日志样例

192.168.1.2 - - [02/Feb/2016:17:44:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://www.landui.com/x1.html" "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"

配置Logtail收集Apache日志

  1. Logstore列表界面单击数据接入向导图表,进入数据接入向导。

  2. 选择数据类型。

    选择APACHE访问日志

  3. 配置数据源。

    • 空-不生成Topic:默认选项,表示设置Topic为空字符串,在查询日志时不需要输入Topic即可查询。

    • 机器组Topic属性:设置Topic生成方式为机器组Topic属性,可以用于明确区分不同前端服务器产生的日志数据。

    • 文件路径正则:选择此项之后,您需要填写下方的自定义正则,用正则式从路径里提取一部分内容作为Topic。可以用于区分具体用户或实例产生的日志数据。

    • utf8:指定使用UTF-8编码。

    • gbk:指定使用GBK编码。

    • 永不超时:指定持续监控所有日志文件,永不超时。

    • 30分钟超时:如日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。

    • 满足条件即收集:配置Key:level Regex:WARNING|ERROR,表示只收集level为WARNING或ERROR类型的日志。

    • 过滤不符合条件的数据

    • 配置Key:level Regex:^(?!.*(INFO|DEBUG)),表示代表不收集level为INFO或DEBUG类型的日志。

    • 配置Key:url Regex:.*^(?!.*(healthcheck)).*,表示不采集url中带有healthcheck的日志,例如key为url,value为/inner/healthcheck/jiankong.html的日志将不会被采集。

    1. 填写配置名称日志路径

    2. 选择日志格式

    3. 填写APACHE配置字段

      请填写标准APACHE配置文件日志配置部分,通常以LogFormat开头。

      说明 如您的 日志格式为 common或 combined格式,此处会自动匹配对应格式的配置字段,请确认是否和本地Apache配置文件中定义的格式一致。


    4. 确认APACHE键名称

      日志服务会自动读取您的Apache键。请在当前页面确认APACHE键名称。

    5. (可选)配置高级选项


      配置项详情
      本地缓存请选择是否打开本地缓存。当日志服务不可用时,日志可以缓存在机器本地目录,服务恢复后进行续传,默认最大缓存值1GB。
      丢弃解析失败日志请选择解析失败的日志是否上传到日志服务。

      开启后,解析失败的日志不上传到日志服务;关闭后,日志解析失败时上传原始日志,其中Key为__raw_log__、Value为日志内容。

      上传原始日志请选择是否需要上传原始日志。开启该功能后,原始日志内容会作为__raw__字段与解析过的日志一并上传。
      Topic生成方式
      自定义正则如您选择了文件路径正则方式生成Topic,需要在此处填写您的自定义正则式。
      日志文件编码
      最大监控目录深度指定从日志源采集日志时,监控目录的最大深度,即最多监控几层日志。最大目录监控深度范围0-1000,0代表只监控本层目录。
      超时属性如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。您可以对超时属性指定以下配置。
      过滤器配置日志只有完全符合过滤器中的条件才会被收集。


  4. 单击下一步

  5. 选择机器组,并单击应用到机器组

    若您未创建机器组,请先单击+创建机器组,创建一个机器组。

    将Logtail配置应用到机器组之后,日志服务开始按照配置收集Apache日志。您可以在数据接入向导的后续步骤中配置索引、投递日志。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: