本文介绍Apache日志格式及通过日志服务控制台配置Apache模式采集日志的步骤。

简介

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
字段格式 键名称 说明
%a client_addr 客户端IP地址。
%A local_addr 本地IP地址。
%b response_size_bytes 响应字节大小(CLF格式),空值时显示为-
%B response_bytes 响应字节大小,空值时为0。
%D request_time_msec 请求时间,单位为毫秒。
%h remote_addr 远程的主机名。
%H request_protocol_supple 请求协议。
%l remote_ident 客户端日志名称。
%m request_method_supple 请求方法。
%p remote_port 服务器端口号。
%P child_process 子进程ID。
%q request_query 查询字符串,如果不存在则为空字符串。
“%r” request 请求内容,包括方法名、地址和http协议。
%s status 响应的http状态代码。
%>s status 响应的http状态代码的最终结果。
%f filename 文件名。
%k keep_alive keep-alive请求数。
%R response_handler 服务端的处理程序类型。
%t time_local 服务器时间。
%T request_time_sec 请求时间,单位为秒。
%u remote_user 客户端用户名。
%U request_uri_supple 请求的URI路径,不带查询字符串。
%v server_name 服务器名称。
%V server_name_canonical 根据UseCanonicalName指令设定的服务器名称。
%I bytes_received 服务器接收的字节数,需要启用mod_logio模块。
%O bytes_sent 服务器发送的字节数,需要启用mod_logio模块。
“%{User-Agent}i” http_user_agent 客户端信息。
“%{Rererer}i” http_referer 来源页。
您还需在Apache日志配置文件中指定日志的打印格式、日志文件路径及名称。例如:以下声明表示日志打印时使用combined格式,且日志路径和名称为/var/log/apache2/access_log
CustomLog "/var/log/apache2/access_log" combined
Apache日志样例如下所示。
192.168.1.2 - - [02/Feb/2016:17:44:13 +0800] "GET /favicon.ico HTTP/1.1" 404 209 "http://localhost/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" 

采集步骤

  1. 登录日志服务控制台
  2. 接入数据区域,选择Apache-文本日志
  3. 选择日志空间页签中,选择目标Project和Logstore,单击下一步
    您也可以单击立即创建,重新创建Project和Logstore,详情请参见步骤1:创建Project和Logstore
  4. 创建机器组页签中,创建机器组。
  5. 机器组配置页签中,应用机器组。
    选择一个机器组,将该机器组从源机器组移动到应用机器组
  6. Logtail配置页签中,创建Logtail配置。
    配置项 详情
    配置名称 Logtail配置的名称,设置后不可修改。

    您也可以单击导入其他配置,导入其他Project中已创建的Logtail配置。

    日志路径 指定日志的目录和文件名。
    日志文件名支持完整文件名和通配符两种模式,文件名规则请参见Wildcard matching。日志文件查找模式为多层目录匹配,即指定目录(包含所有层级的目录)下所有符合条件的文件都会被查找到。例如:
    • /apsara/nuwa/ … /*.log表示/apsara/nuwa目录(包含该目录的递归子目录)中后缀名为.log的文件。
    • /var/logs/app_* … /*.log*表示/var/logs目录下所有符合app_*模式的目录(包含该目录的递归子目录)中包含.log的文件。
    说明
    • 一个文件只能被一个Logtail配置采集。
    • 目录通配符只支持星号(*) 和问号(?) 。
    设置采集黑名单 开启该功能后,可设置黑名单配置。黑名单配置可在采集时忽略指定的目录或文件,目录和文件名支持完整匹配,也支持通配符模式匹配。例如:
    • 选择按目录路径,路径为/tmp/mydir,则在采集时过滤掉该目录下的所有文件。
    • 选择按文件路径,路径为/tmp/mydir/file,则在采集时过滤掉该文件。
    是否为Docker文件 如果是Docker文件,可以直接配置内部路径与容器Tag,Logtail会自动监测容器创建和销毁,并根据Tag进行过滤采集指定容器的日志。关于容器文本日志采集请参见通过DaemonSet-控制台方式采集Kubernetes文件
    模式 默认为APACHE配置模式,可修改为其它模式,其他模式的配置请参见概述
    日志格式 根据您的Apache日志配置文件中定义的格式进行选择。为了便于日志数据的查询分析,推荐您选择自定义
    APACHE配置字段 请填入标准Apache配置文件中的日志配置部分,通常以LogFormat开头。

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

    APACHE键名称 日志服务会根据APACHE配置字段中的内容自动读取Apache键。
    丢弃解析失败日志
    • 开启丢弃解析失败日志,解析失败的日志不上传到日志服务。
    • 关闭丢弃解析失败日志,日志解析失败时上传原始日志。
    最大监控目录深度 设置日志目录被监控的最大深度。最大深度范围:0~1000,0代表只监控本层目录。
    请根据您的需求选择高级配置。如没有特殊需求,建议保持默认配置。
    参数 详情
    启用插件处理 请选择是否启用Logtail处理。开启该功能后,使用Logtail插件处理日志,具体配置请参见处理数据
    上传原始日志 开启该功能后,原始日志内容作为__raw__字段与解析过的日志一起上传到日志服务。
    Topic生成方式
    • 空-不生成Topic:默认选项,表示设置Topic为空字符串,在查询日志时不需要输入Topic即可查询。
    • 机器组Topic属性:设置为机器组Topic属性,用于明确区分不同服务器产生的日志数据。
    • 文件路径正则:设置为文件路径正则,则需要配置自定义正则,用正则表达式从路径里提取一部分内容作为Topic。用于区分不同用户或实例产生的日志数据。
    日志文件编码
    • utf8:指定使用UTF-8编码。
    • gbk:指定使用GBK编码。
    时区属性 设置采集日志时,日志时间的时区属性。
    • 机器时区:默认为机器所在时区。
    • 自定义时区:手动选择时区。
    超时属性 如果一个日志文件在指定时间内没有任何更新,则认为该文件已超时。
    • 永不超时:持续监控所有日志文件,永不超时。
    • 30分钟超时:如果日志文件在30分钟内没有更新,则认为已超时,并不再监控该文件。

      选择30分钟超时时,还需配置最大超时目录深度,范围为1~3。

    过滤器配置 只采集完全符合过滤器中的条件的日志。 例如:
    • 满足条件即采集:配置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的日志将不会被采集。

    更多示例请参见regex-exclude-wordregex-exclude-pattern

  7. 查询分析配置页签中,设置索引。
    默认已设置索引,您也可以根据业务需求,重新设置索引,具体请参见开启并配置索引
    说明
    • 全文索引和字段索引属性必须至少启用一种。同时启用时,以字段索引属性为准。
    • 索引类型为long、double时,大小写敏感和分词符属性无效。

完成以上步骤后,日志服务开始采集日志 。