作为参数传递给脚本

时间:2018-11-12 21:50:38

标签: logstash logstash-configuration

问题

%{message}作为参数传递给脚本时,如何防止其被截断?

情况

我设置了logstash来标记特定的错误,错误原因以及错误解决方案(如果我知道一个)。我的配置文件中有些内容,如下所示。

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

上面的方法有效,唯一的问题是我只能从这些字段中的每个字段中得到第一个单词。

我尝试过的事情

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

1 个答案:

答案 0 :(得分:0)

问题不是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_}\""
}

解决了我的问题。