search
数据采集 采集源配置 Apache 日志采集

Apache 日志采集

简介

采集 Apache 日志上报到 DataFlux 中

前置条件

配置

apache 日志采集通过 tailf 采集器实现,tailf 采集器的详细使用方法请参照 tailf采集器使用方法

进入 DataKit 安装目录下的 conf.d/log 目录,复制 tailf.conf.sample 并命名为 tailf.conf。示例如下:

[[inputs.tailf]]
    # 日志文件列表,可以指定绝对路径,支持使用 glob 规则进行批量指定
    # 推荐使用绝对路径
    logfiles = ["/my/apache/access.log"]

    # 文件路径过滤,使用 glob 规则,符合任意一条过滤条件将不会对该文件进行采集
    ignore = [""]

    # 数据源,必填
    source = "tailf_source"

    # 自定义 tags
    # [inputs.tailf.tags]
    # tags1 = "tags1"

配置好后,重启 DataKit 即可生效

从日志内容中提取标签

__content 的内容代表了一行apache日志, DataFlux 支持通过配置标签提取规则对日志的文本内容进行切割,从而提取出特定的字段作为标签或者日志的时间戳。

进入 DataFlux Studio 控制台的日志面板, 点击右上角 "提取标签"

新建规则,解析方式选择grok方式,根据提取需求结合日志内容确定Grok表达式并填入:

grok示例

apache access log:

log content: 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"

grok表达式: %{IPV4:client_ip} %{USER:ident} %{USER:auth} \[%{HTTPDATE:apache_timestamp}\] \"%{WORD:method} /%{NOTSPACE:request_page} HTTP/%{NUMBER:http_version}\" %{NUMBER:server_response}


apache error log:

log content: [Fri Sep 09 10:42:29.902022 2011] [core:error] [pid 35708:tid 4328636416] [client 72.15.99.187] File does not exist: /usr/local/apache2/htdocs/favicon.ico

grok表达式: \[(?<timestamp>%{DAY:day} %{MONTH:month} %{MONTHDAY} %{TIME} %{YEAR})\] \[.*:%{LOGLEVEL:loglevel}\] \[pid %{NUMBER:pid}:tid %{NUMBER:tid}\] \[client %{IPV4:clientip}.*\] %{GREEDYDATA:errormsg}