首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将系统数据导入弹性系统

将系统数据导入弹性系统
EN

Stack Overflow用户
提问于 2016-11-01 11:27:32
回答 2查看 386关注 0票数 0

我正在使用从本文中获得的logstash配置文件.

http://logz.io/blog/sysdig-elk-stack/

/etc/logstash/sysdigg-logstash.conf的内容

代码语言:javascript
复制
input {
   stdin { }
}

filter {
      grok {
      pattern => "^%{NUMBER:num:int} %{NUMBER:time:float} %{INT:cpu:int} %{NOTSPACE:procname} %{NOTSPACE:tid} (?<direction>[<>]) %{WORD:event} %{DATA:args}$"
   }

date {
   match => [ "time", "UNIX" ]
}

   if [args] {
      kv {
         source => "args"
         remove_field => "args"
      }
   }
}

output {
   #stdout { codec => rubydebug }
   elasticsearch {
      }
}

当我试图用logstash将数据转储到弹性中时,我会得到一个错误.

代码语言:javascript
复制
# sysdig -t a "not(proc.name = sysdig)" | bin/logstash -f /etc/logstash/sysdig-logstash.conf

获取无效配置

处理系统数据的正确配置文件是什么?

更新:

在修正了=>后,我可以将文本记录为弹性文本。但有一个问题。整个日志行被保存为消息字段,忽略了配置文件中提到的grok模式。例如,这是我启用stdout到rubydebug时的输出。

代码语言:javascript
复制
{
       "message" => "1894246 1478069107.694757379 1 sysdig (16910) > switch next=0 pgft_maj=0 pgft_min=1658 vm_size=97364 vm_rss=7816 vm_swap=0 ",
      "@version" => "1",
    "@timestamp" => "2016-11-02T06:45:07.725Z",
          "host" => "ip-172-31-0-192",
          "tags" => [
        [0] "_grokparsefailure"
    ]
}

本文提到cpu、procname等单独的字段。

EN

回答 2

Stack Overflow用户

发布于 2016-11-02 06:55:21

指定grok过滤器的正确方法如下所示,即使用match而不是pattern

代码语言:javascript
复制
filter {
  grok {
    match => {"message" => "^%{NUMBER:num:int} %{NUMBER:time:float} %{INT:cpu:int} %{NOTSPACE:procname} %{NOTSPACE:tid} (?<direction>[<>]) %{WORD:event} %{DATA:args}$" }
  }
}
票数 1
EN

Stack Overflow用户

发布于 2016-11-02 08:38:18

尝试使用grok调试器调试grok。上面的代码示例肯定有一些问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40359132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档