Logstash 中的 JSON 解析器忽略数据?

2023-12-07

我已经这样做有一段时间了,我觉得 Logstash 中的 JSON 过滤器正在为我删除数据。我最初遵循的教程来自https://www.digitalocean.com/community/tutorials/how-to-install-elasticsearch-logstash-and-kibana-elk-stack-on-ubuntu-14-04

我做了一些改变,但大部分都是一样的。我的 grok 过滤器看起来像这样:

uuid #uuid and fingerprint to avoid duplicates
{
    target => "@uuid"
    overwrite => true
}
fingerprint
{
    key => "78787878"
    concatenate_sources => true
}
grok #Get device name from the name of the log
{
    match => { "source" => "%{GREEDYDATA}%{IPV4:DEVICENAME}%{GREEDYDATA}" }
}

grok  #get all the other data from the log
{
    match => { "message" => "%{NUMBER:unixTime}..." }
}
date #Set the unix times to proper times.
{
    match => [ "unixTime","UNIX" ]
    target => "TIMESTAMP"
}


grok #Split up the message if it can
{
    match => { "MSG_FULL" => "%{WORD:MSG_START}%{SPACE}%{GREEDYDATA:MSG_END}" }
}
json 
{
    source => "MSG_END"
    target => "JSON"
}

所以我认为引起问题的部分是底部。我的东西应该都是正确的。当我运行此配置时,我看到 kibana 中的所有内容都正确显示,除了所有包含 JSON 代码的日志(并非所有日志都有 JSON)。当我在没有 JSON 过滤器的情况下再次运行它时,它会显示所有内容。 我尝试使用 IF 语句,以便它仅在包含 JSON 代码时运行 JSON 过滤器,但这并没有解决任何问题。

但是,当我添加 IF 语句以仅运行特定的 JSON 格式时(因此,如果 MSG_START = x、y 或 z,则 MSG_END 将具有不同的 json 格式。在这种情况下,假设我只解析 z 格式),然后在 kibana 中我会看到包含 x 和 y JSON 格式的所有日志(虽然未解析),但它不会显示 z。所以我确信这一定与我使用 JSON 过滤器的方式有关。

另外,每当我想用新数据进行测试时,我都会开始清除elasticsearch中的旧数据,这样如果它有效,我就知道是我的logstash在工作,而不仅仅是从elasticsearch运行内存。我已经使用了这个方法XDELETE 'http://localhost:9200/logstash-*/'。但是logstash不会在elasticsearch中创建新索引,除非我为filebeat提供新日志。我不知道这是否是另一个问题,只是觉得我应该提一下。

我希望一切都有意义。

编辑:我只是检查了logstash.stdout文件,结果发现它正在解析json,但它只在kibana中显示带有“_jsonparsefailure”的内容,所以Elastisearch一定出了问题。或许。我不知道,只是集思广益:)

示例日志:

1452470936.88 1448975468.00 1 7 mfd_status 000E91DCB5A2 负载 {"up":[38,1.66,0.40,0.13],"mem":[967364,584900,3596,116772],"cpu":[1299,812 ,1791,3157,480,144 ],"cpu_dvfs":[996,1589,792,871,396,1320],"cpu_op":[996,50]}

MSG_START 是加载,MSG_END 是上面示例中之后的所有内容,因此 MSG_END 是我要解析的有效 JSON。

下面的日志中没有 JSON,但我的logstash 将尝试解析“Inf:”之后的所有内容并发送“_jsonparsefailure”。

1452470931.56 1448975463.00 1 6 rc.app 02:11:03.301 Inf: NOSApp: UpdateSplashScreen 未在此平台上实现

这也是我在 Logstash 中的输出,因为我觉得这现在很重要:

elasticsearch 
{ 
    hosts => ["localhost:9200"] 
    document_id => "%{fingerprint}"
}
stdout { codec => rubydebug }

我遇到了类似的问题,发现我的一些日志使用 UTC 时间/日期戳,而其他日志则没有。 修复了代码以仅使用 UTC 并为我解决了问题。

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

Logstash 中的 JSON 解析器忽略数据? 的相关文章

随机推荐

  • AngularJS -$compileProvider.preAssignBindingsEnabled 不是一个函数

    我在尝试执行以下操作时收到以下错误消息gulp serve在我的 AngularJS 10 6 1 版 应用程序上 Error injector modulerr Failed to instantiate module myAppName
  • MS-DOS 如何获取命令的输出作为变量

    我编写了一个程序 该程序将 DOS 的键码作为整数返回 但我不知道如何将其输出作为变量 注意 我使用的是 MS DOS 7 Windows 98 所以无法使用FOR F or SET P 有谁知道我该怎么做 Eric Pement 描述了一
  • 如何在转换中使用枢轴点

    如何使用中心点平移对象 我有一个矩形 其中心点远离矩形的位置 当我旋转矩形时 它绕其中心轴旋转 如果我在 modelView 矩阵中旋转之前乘以位置 ModelViewMatrix Rotation Scaling Position 假设我
  • 在 StoryBoard 上设置自定义附加属性

    我有一个故事板 想要设置附加属性 VisualStateUtility InitialState 我尝试过各种组合 但属性从未得到解决 我收到以下错误 无法解析 TargetProperty VisualStateUtility Initi
  • 在 Ruby 中使用 new 运算符对自动激活哈希值进行多重初始化

    我想初始化几个自动激活哈希值通过一行表达式 到目前为止 我找到了一种额外的方法AutoHash object class AutoHash lt Hash def few n 0 Array new n AutoHash new end 这
  • Angular 2 rc5,使用注入的管道的单元测试问题

    我正在使用 angular2 rc 5 我编写了一个自定义管道 可以从 json 中获取值 自定义管道 literal pipe ts 看起来像 import Pipe PipeTransform Inject from angular c
  • 在从加载标签的视图扩展的页面上使用 Django template_tag

    我已向我的应用程序添加了一个模板标签 我将其加载到位于的视图中inc base html 该视图包含我的基本 HTML 布局 我所有其他观点开始 extends inc base html 在我的视图之一中 我想引用我的模板标签 该标签加载
  • 使用三个 CSG 进行 3D 布尔运算

    按照此处的示例 http learning Threejs com blog 2011 12 10 constructive solid geometry with csg js 并使用 Three js 与https github com
  • cellDoubleClicked 文本 python

    我在使用 PyQt5 时遇到一个问题 我已经制作了一个 QTableWidget 它显示我之前在 pandas 中制作的 DataFrame 来自电子表格 我尝试做的不成功的事情是 从用户双击的单元格中获取文本 以便我可以使用该信息根据所做
  • 所有图像加载后如何发出警报?

    我正在构建一个 JavaScript 游戏 我想在加载所有图像后发出警报 我尝试了这段代码 但它不起作用 function loadEveryThing var imgNumber 0 img1 new Image img1 src 1 p
  • “#”附近的语法不正确。带有 SQL 数据库的 VB.net

    我正在尝试使用以下代码获取日期 今天的 Max 字段 Dim todaydate Format Today Date dd MM yyyy Dim sql1 As String Select max snum From tblbill wh
  • JButton 在鼠标悬停之前不可见

    我正在为我的项目创建一个图形用户界面 当 gui 首次加载时 只有背景可见 因此按钮不可见 但当鼠标悬停在按钮上时 它们是可见的 解决这个问题的办法是什么 public class Home extends JFrame New JPane
  • 在 Scala 中将嵌套案例类转换为嵌套映射

    我有两个嵌套案例类 case class InnerClass param1 String param2 String case class OuterClass myInt Int myInner InnerClass val x Out
  • Azure表存储存储多种类型

    对于以下场景 您有什么建议 我有一个名为 Users 的天蓝色表 其中列如下 首要的关键 RowKey 时间戳 名 LastName Email Phone 然后每个用户都有不同类型的任务 我们将它们称为TaskType1 和TaskTyp
  • jQuery:如果单击链接则添加类

    我在链接中调用 jquery 函数 onclick 例如 a class active href Content 1 a a href Content 2 a a href Content 3 a 正如您所看到的 第一个链接默认具有 act
  • 词形还原java [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在寻找一个词形还原Java 中英语的实现 我已经找到了一些 但我需要一些不需要太多内存来运行的东西 顶部 1 GB 谢谢 我不需要词干分析器 T
  • 在 webGL 中渲染 NURBS 曲面

    我需要一些有关在 webGL 中渲染 NURBS 曲面的帮助 几天前 我们的教授指派我们用 NURBS 绘制一面旗帜并为其制作动画 我们必须使用 webGL 并且不能使用 trhee js 我不知道如何继续 尽管我或多或少了解 NURBS
  • 将列表转换为集合会改变元素的顺序吗?

    当我做类似的事情时 U 1 0 0 0 0 0 1 0 set U 它给了我 0 0 1 0 1 0 0 0 我只想将列表转换为集合 有什么帮助吗 Thanks 套装未订购 字典也没有排序 如果您想保留特定顺序 请使用列表 gt gt gt
  • 是否有任何实际理由对 JSON 键使用带引号的字符串?

    根据克罗克福德的说法json org 一个 JSONobject由 制成由 做成members 它由pairs 每对都是由一个string and a value 有一个string被定义为 字符串是零个或多个的序列 Unicode 字符
  • Logstash 中的 JSON 解析器忽略数据?

    我已经这样做有一段时间了 我觉得 Logstash 中的 JSON 过滤器正在为我删除数据 我最初遵循的教程来自https www digitalocean com community tutorials how to install el