使用 Grok for Logstash 解析 Apache2 错误日志

2024-03-26

我试图解析我的 apache2 错误日志,但遇到了一些麻烦。它似乎与过滤器不匹配。我很确定时间戳部分是错误的,但我不确定,而且我真的找不到任何文档来解决它。另外,有没有办法获取其中的内容fields.errmsg to me @message?

Log

[Wed Jun 26 22:13:22 2013] [error] [client 10.10.10.100] PHP Fatal error:  Uncaught exception '\Foo\Bar'

发货人配置

input {
        file {
                'path' => '/var/log/apache2/*-error.log'
                'type' => 'apache-error'
        }

}

filter {
        grok {
                type => "apache-error"
                pattern => "\[%{HTTPDATE:timestamp}\] \[%{WORD:class}\] \[%{WORD:originator} %{IP:clientip}\] %{GREEDYDATA:errmsg}"
        }
}


output {
        stdout {}
        redis {
                'data_type' => 'list'
                'host' => 'logstash.server.net'
                'key' => 'logstash'
        }
}

Ahoy!

我知道我参加聚会有点晚了,但就这样吧!

我创建了一个/etc/logstash/patterns.d/系统上的目录和一个名为的文件apache-error其中包含:

APACHE_ERROR_TIME %{DAY} %{MONTH} %{MONTHDAY} %{TIME} %{YEAR}
APACHE_ERROR_LOG \[%{APACHE_ERROR_TIME:timestamp}\] \[%{LOGLEVEL:loglevel}\] (?:\[client %{IPORHOST:clientip}\] ){0,1}%{GREEDYDATA:errormsg}

/etc/logstash/patterns.d/将在中引用logstash配置如下:

grok {
  patterns_dir => [ "/etc/logstash/patterns.d" ]
  match => [ "message", "%{APACHE_ERROR_LOG}" ]
}

您可以在以下位置进行测试:Grok 调试器 http://grokdebug.herokuapp.com/,就像亚当在评论中提到的那样。似乎与您发送的示例日志条目配合得很好。我和我的一位客户的合作非常扎实。

上面的模式将最终消息放入errormsg场地。所以我只是删除message field.

这是我目前在 Logstash 配置中使用的内容:

filter {
  if [type] == "apache_error_log" {

    grok {
      patterns_dir => [ "/etc/logstash/patterns.d" ]
      match => [ "message", "%{APACHE_ERROR_LOG}" ]
    }

    if !("_grokparsefailure" in [tags]) {

      mutate {
        remove_field => [ "message" ]
        add_field =>  ["timestamp_submitted", "%{@timestamp}"]
      }

      date {
        # Try to pull the timestamp from the 'timestamp' field (parsed above with
        # grok). The apache time format looks like: "18/Aug/2011:05:44:34 -0700"
        #                        Sat Feb 08 06:31:09 2014
        match => [ "timestamp", "EEE MMM dd HH:mm:ss yyyy" ]
        remove_field => [ "timestamp" ]
      }

      geoip {
        source => "clientip"
      }
    }
  }
}

请注意,我使用的是一种类型apache_error_log代替apache-error.

试一试。我很想知道这是否适用于您和其他人!

Cheers!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Grok for Logstash 解析 Apache2 错误日志 的相关文章

随机推荐

  • 在seaborn热图中屏蔽注释

    我想制作一个仅在特定单元格中具有注释的热图 我认为 一种方法是在所有单元格中制作一个带有注释的热图 然后覆盖另一个没有注释但在我希望原始注释可见的区域中被屏蔽的热图 import numpy as np import seaborn as
  • 无法从模块接口构建模块;它可能已被损坏,或者可能在生成时触发了 Swift 编译器中的错误

    当创建这样的xcframework时 xcodebuild archive project endiosOne iOS xcodeproj scheme EOFoundation destination iOS archivePath tm
  • Jena 桌面 SPARQL 客户端 (TDB)?

    我正在开发一个使用 Jena 进行存储 带有 TDB 后端 的应用程序 我正在寻找类似 Squirrel 的东西 它可以让我看到正在存储的内容 运行查询等 这似乎是一个明显需要的东西 但我的 可能措辞不好 谷歌查询没有出现任何有希望的东西
  • 为什么Dictionary没有AddRange?

    标题已经足够基本了 为什么我不能 Dictionary
  • 如何根据当前平台跳过 xUnit 中的特定测试

    我有一个在 Windows 上构建的程序集 我想在 Linux 中的 mono 上运行 xUnit 测试 然而 我发现虽然其中 400 个测试可以 按顺序 运行 但某些测试要么挂起 xUnit 运行程序 要么完全崩溃 I don t car
  • 向 monaco 编辑器提供类型提示

    我正在尝试使用 Monaco 编辑器向 javascript 编辑器提供智能感知 代码补全 该代码必须是有效的 javascript 而不是 typescript 假设一些用户输入了这样的脚本 function onMyEvent even
  • PHP 中的安全用户图像上传功能

    我正在为我的网站实现一个基于用户的图像上传工具 系统应允许任何用户仅上传 JPEG 和 PNG 文件 当然 我担心安全性 所以我想知道许多比我聪明的人对以下允许上传的检查有何感受 1 首先将 PHP 中允许的文件扩展名列入白名单 仅允许 P
  • WCF 不序列化所有属性

    我正在使用已作为 VS2010 中的服务引用导入的 SOAP 服务 我使用服务提供的请求对象来调用其中一项服务 我遇到的问题是 并非对象的所有属性都被序列化 或者不是通过线路发送 请求对象如下所示 var serviceRequest ne
  • CountIf 与过滤后的数据

    我正在研究一种方法来计算数据列中零的数量 即使数据被过滤 我找到了以下解决方案 SUMPRODUCT SUBTOTAL 3 OFFSET B2 B18 ROW B2 B18 MIN ROW B2 B18 1 ISNUMBER SEARCH
  • 使用 PHP 获取目录的层次结构

    我正在尝试查找指定目录下的所有文件和文件夹 例如我有 home user stuff 我想回来 home user stuff folder1 image1 jpg home user stuff folder1 image2 jpg ho
  • Python“for in”循环打印列表中的最后一项

    最近我了解了列表和for循环 以及命令 pop 指示并删除列表中的最后一项 所以我尝试编写一段代码来一项一项地删除列表中的最后一项 直到只剩下一项 代码是 list A a b c d e f g h i j for i in list A
  • Javascript 缩小并插入分号

    是否有任何 Javascript 压缩器 压缩器可以根据需要插入分号 或者 可以处理不使用分号的源代码 我已经开始使用一个非常棒的库 但开发人员认为分号是 不必要的混乱 几年前 当我遇到类似的情况时 我似乎记得解决方案本质上是 越多越好 首
  • 如何说服我的同事不要使用数据集进行企业开发(.NET 2.0+)

    与我一起工作的每个人都痴迷于以数据为中心的企业开发方法 并且讨厌使用自定义集合 对象的想法 说服他们的最佳方法是什么 以身作则 谨慎行事 任何更强的东西只会让你与团队的其他成员疏远 请记住考虑他们可能发现了您错过的东西 成为团队的一员意味着
  • 没有名为“sklearn.utils.线性_分配_”的模块

    I am trying to run a project from github https github com cfotache pytorch objectdetecttrack every object counter applic
  • 当我将用户控件拖到设计视图上时,Visual Studio 引发错误

    我有两个用户控件 其中一个是一个简单的图片夹 其中有一个复选框 另一个充当容器 而不是包含前一个控件的集合 So a 水平图片滚动可以有很多可选图片控制 我将粘贴每个控件的小代码 First 水平图片滚动 using System usin
  • 按 API 密钥使用 AWS API Gateway

    如何通过 API 密钥从 AWS API Gateway 获取使用指标 例如使用计数器 使用日志等 我目前正在发送x api key到我的集成端点进行手动日志记录 我不想这样做 而是让 AWS API Gateway 为我测量和报告此指标
  • 使用 glfw3 glew 和 opengl 在 Visual Studio 社区中获取访问冲突异常

    我遇到这个问题已经有一段时间了 但出于我的爱 我无法找到解决方案 我想渲染一个简单的三角形 但在编译程序时 我不断在 Visual Studio 中获得此输出 注意 gt 我不认为这不是链接问题而是其他问题 我已经检查了我的链接器无数次 一
  • 对数据进行排序以在 python 中从高到低呈现条形图

    我有很多出现的数字 想将它们绘制在条形图 如直方图 中 我已经让图表正常工作 但它是按照我输入值的顺序排列的 而不是从最高到最低的顺序 这正是我想要的 这是到目前为止的代码 phenos 128 20 0 144 4 16 160 136
  • 从 C# DbCommand 将 NULL 插入 SQL DB

    DbParameter param comm CreateParameter param comm CreateParameter param ParameterName StaffId if string IsNullOrEmpty ac
  • 使用 Grok for Logstash 解析 Apache2 错误日志

    我试图解析我的 apache2 错误日志 但遇到了一些麻烦 它似乎与过滤器不匹配 我很确定时间戳部分是错误的 但我不确定 而且我真的找不到任何文档来解决它 另外 有没有办法获取其中的内容fields errmsg to me message