【问题标题】:Logstash with Filebeat error: Could not execute action带有 Filebeat 错误的 Logstash:无法执行操作
【发布时间】:2019-10-22 06:25:56
【问题描述】:

您好,我正在尝试使用 Filebeat 和 Logstash 进行日志分析。 以下是我在

中所做的更改
filebeat.inputs:
- type: log
  enabled: true
  paths:
    - D:\elasticsearch-5.4.3\elasticsearch-5.4.3\logs\elasticsearch.log

output.logstash:
  # The Logstash hosts
  hosts: ["localhost:5044"]

这是我的logstash配置文件。

input {
  beats {
    port => 5044
  }
}

filter {
    grok {
      match => { "message" => "%{plugins}" }
    }
    date {
    match => [ "timestamp" , "yyyy-MM-DD:HH:mm:ss" ]
  }
}

output {
  elasticsearch {
    hosts => ["localhost:9200"]
}
}

在运行上述程序时,我看到以下错误:

[2019-10-22T06:07:32,915][ERROR][logstash.javapipeline    ] Pipeline aborted due
 to error {:pipeline_id=>"main", :exception=>#<Grok::PatternError: pattern %{plu
gins} not defined>, :backtrace=>["D:/logstash-7.1.0/logstash-7.1.0/vendor/bundle
/jruby/2.5.0/gems/jls-grok-0.11.5/lib/grok-pure.rb:123:in `block in compile'", "
org/jruby/RubyKernel.java:1425:in `loop'", "D:/logstash-7.1.0/logstash-7.1.0/ven
dor/bundle/jruby/2.5.0/gems/jls-grok-0.11.5/lib/grok-pure.rb:93:in `compile'", "
D:/logstash-7.1.0/logstash-7.1.0/vendor/bundle/jruby/2.5.0/gems/logstash-filter-
grok-4.0.4/lib/logstash/filters/grok.rb:281:in `block in register'", "org/jruby/
RubyArray.java:1792:in `each'", "D:/logstash-7.1.0/logstash-7.1.0/vendor/bundle/
jruby/2.5.0/gems/logstash-filter-grok-4.0.4/lib/logstash/filters/grok.rb:275:in
`block in register'", "org/jruby/RubyHash.java:1419:in `each'", "D:/logstash-7.1
.0/logstash-7.1.0/vendor/bundle/jruby/2.5.0/gems/logstash-filter-grok-4.0.4/lib/
logstash/filters/grok.rb:270:in `register'", "org/logstash/config/ir/compiler/Ab
stractFilterDelegatorExt.java:56:in `register'", "D:/logstash-7.1.0/logstash-7.1
.0/logstash-core/lib/logstash/java_pipeline.rb:191:in `block in register_plugins
'", "org/jruby/RubyArray.java:1792:in `each'", "D:/logstash-7.1.0/logstash-7.1.0
/logstash-core/lib/logstash/java_pipeline.rb:190:in `register_plugins'", "D:/log
stash-7.1.0/logstash-7.1.0/logstash-core/lib/logstash/java_pipeline.rb:446:in `m
aybe_setup_out_plugins'", "D:/logstash-7.1.0/logstash-7.1.0/logstash-core/lib/lo
gstash/java_pipeline.rb:203:in `start_workers'", "D:/logstash-7.1.0/logstash-7.1
.0/logstash-core/lib/logstash/java_pipeline.rb:145:in `run'", "D:/logstash-7.1.0
/logstash-7.1.0/logstash-core/lib/logstash/java_pipeline.rb:104:in `block in sta
rt'"], :thread=>"#<Thread:0x15997940 run>"}
[2019-10-22T06:07:32,970][ERROR][logstash.agent           ] Failed to execute ac
tion {:id=>:main, :action_type=>LogStash::ConvergeResult::FailedAction, :message
=>"Could not execute action: PipelineAction::Create<main>, action_result: false"
, :backtrace=>nil}

我对这个集成相当陌生,我不确定我应该研究哪里。 请帮帮我。

【问题讨论】:

    标签: logstash elastic-stack logstash-grok logstash-configuration filebeat


    【解决方案1】:

    问题似乎出在

    grok {
      match => { "message" => "%{plugins}" }
    }
    

    这里的%{plugins} 是什么?它不是预定义的grok 模式。 grok 模式列表可以在 here 找到。

    此外,documentation 中的 grok 模式的语法是 %{SYNTAX:SEMANTIC}。你可以做类似的事情

    grok {
      match => { "message", "%{GREEDYDATA:plugins}" }
    }
    

    【讨论】:

    • 插件实际上是日志文件中的一个现有单词,我还应该将它用作"%{GREEDYDATA:plugins}" 吗?我尝试了上述方法,但我看不到在 Elasticsearch 中创建的索引。 Logstash 显示 [2019-10-22T12:06:33,120][INFO ][logstash.agent] Successfully starte Logstash API endpoint {:port=&gt;9600} 并且之后没有更改执行。我以管理员身份在 cmd 中运行 logstash -f myfile.conf。 @SandeepKanabar
    • "%{GREEDYDATA:plugins}" 的意思是您的整个消息将被收集到 plugins 字段中,然后该字段将被索引到 ES 中。尝试使用--debug 选项运行logstash,即logstash --debug -f my file.conf。此外,由于您没有在 output { elasticsearch { ..} } 中指定索引名称,因此默认情况下将在 logstash-yyyy.mm.dd 索引中进行索引,其中 yyyy.mm.dd 反映了今天的 UTC 日期。在运行 logstash 之前,请执行 GET _cat/indices 并在再次运行后运行相同的命令以了解是否创建了任何索引。
    【解决方案2】:

    尝试给出"%{plugins}"的数据类型。

    filter {
        grok {
          match => { "message" => "%{WORD:plugins}" }
        }
    }
    

    你可以从here找到数据类型

    如果这不起作用,请尝试删除日期过滤器并重试。

    【讨论】:

      【解决方案3】:

      显然,由于配置文件深处存在一些正则表达式语法错误,可能会发生此类错误。这简直就是破解。

      【讨论】:

        猜你喜欢
        • 2022-01-18
        • 1970-01-01
        • 1970-01-01
        • 2020-01-08
        • 2021-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多