首页 > 解决方案 > 当作为参数传递给脚本时,Logstash 截断 %{message}

问题描述

问题

%{message}将其作为参数传递给脚本时如何避免被截断?

情况

我设置了 logstash 来标记特定错误、错误原因和错误解决方案(如果我知道的话)。我的配置文件中有一点,如下所示。

exec {
        command => "Powershell C:\ELK-Stack\logstash\bin\SendEmail.ps1 -source %{source} -message %{message} -error %{error_cause_} -solution %{error_troubleshoot_}"
    }

以上工作,唯一的问题是我只从这些字段中的每一个中得到第一个单词。

我试过的

我记得它[message]被分解成更小的部分,然后进行分析。所以我尝试允许一个字符串数组作为参数并将它们连接在一起。我没有运气。

标签: logstashlogstash-configuration

解决方案


问题不是logstash。问题是我调用 Powershell 脚本的方式。改变

exec {
    command => "Powershell C:\ELK-Stack\logstash\bin\SendEmail.ps1 -source %{source} -message %{message} -error %{error_cause_} -solution %{error_troubleshoot_}"
}

exec {
    command => "Powershell -file C:\ELK-Stack\logstash\bin\SendEmail.ps1 -source %{source} -message \"%{message}\" -error \"%{error_cause_}\" -solution \"%{error_troubleshoot_}\""
}

修复了我的问题。


推荐阅读