【问题标题】:goaccess log parsing of very simple log not workinggoaccess 日志解析非常简单的日志不起作用
【发布时间】:2015-10-11 03:47:41
【问题描述】:

我在这个社区的第一个问题,希望这里会很棒!

进入主题: 我以以下方式构建了这个非常简单的日志文件

192.168.178.21 [21/07/2015] "GET /path/to/somewhere HTTP/1.1" "/path/to/somewhere" "Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Firefox/38.0"

以及下面的 goaccess 配置文件

date-format %d/%m%Y
log-format %h %^[%d%^] "%r" "%U" %^

附加问题:

  • 我可以找到几种不同的方法来编写配置文件。在the docs 中可以找到 date_formatlog_format 的变量声明,这让我很困惑。哪个是正确的?

由于我查看了与该主题相关的所有问题,我找不到错误的原因

GoAccess - version 0.8.5 - Dec  5 2014 06:28:46
Fatal error has occurred
Error occurred at: goaccess.c - main - 832
Nothing valid to process.

文档还指出,正确解析只需要 %h、"%r" 和 %d。我错过了什么?

添加。信息

  • CentOS 7 64 位
  • GoAccess 0.8.5

我知道今天的最新版本是 0.9.2。出于“原因”,我无法自己构建最新版本。所以可能是版本相关的问题(?)。

【问题讨论】:

    标签: parsing logging fatal-error log-analysis goaccess


    【解决方案1】:

    您发布的日期格式似乎不正确。尝试以下方法,它对我有用:

    goaccess -f log --log-format='%h [%d] "%r" "%^" "%u"' --date-format='%d/%m/%Y' --time-format="%T"
    

    您必须同时使用date_formatlog_format,我认为time_format 也是如此(至少在最新版本中)。

    变量date_format 指定日期格式,而log_format 包含goaccess 用来解析访问日志中每一行的标记。

    【讨论】:

    • 成功了。谢谢你!错误是(正如您所指出的):括号“[]”中的日期声明前面不必要的“%^”,显然是“%U”占位符,它被描述为“请求的 URL 路径(包括任何查询字符串)。”在文档中,也对这个错误负责。知道为什么“%U”不起作用吗?
    • doc 表示%r 需要某种分隔符,否则需要使用%m %U %H。由于您的请求包含其中三个,%r 工作得很好。我想你也可以这样做:--log-format='%h [%d] "%m %^ %H" "%U" "%u"'.
    • 你当然是对的。应该更仔细地阅读。考虑关闭这个问题。泰。
    猜你喜欢
    • 2014-07-02
    • 1970-01-01
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 1970-01-01
    • 2017-01-07
    相关资源
    最近更新 更多