logstash转发器设置环境变量值

logstash转发器设置环境变量值,logstash,logstash-grok,logstash-configuration,logstash-forwarder,Logstash,Logstash Grok,Logstash Configuration,Logstash Forwarder,我有rails应用程序和不同的环境,比如开发、登台和生产,rails_ENV设置了这个值。我想在logstash中添加该字段以过滤环境,所以我的问题是在哪里设置该变量,以及如何在logstash config或logstash forwarder中同时实现logstash和logstash forwarder 1) 原木货代 来自logstash转运公司: 配置的任何部分都可以使用环境变量$VAR或${VAR}。 它们将在处理JSON之前进行评估,允许传递任何 结构 示例转发器.conf: "f

我有rails应用程序和不同的环境,比如开发、登台和生产,rails_ENV设置了这个值。我想在logstash中添加该字段以过滤环境,所以我的问题是在哪里设置该变量,以及如何在logstash config或logstash forwarder中同时实现logstash和logstash forwarder

1) 原木货代 来自logstash转运公司:

配置的任何部分都可以使用环境变量$VAR或${VAR}。 它们将在处理JSON之前进行评估,允许传递任何 结构

示例转发器.conf:

"files": [
    {
      "paths": [
        "./example.log"
      ],
      "fields": { 
        "type": "example",
        "env": "$RAILS_ENV"
        }
    }
  ]
filter {
     environment {
          add_field_from_env => { "ENV" => "RAILS_ENV" }
     }
}
注意:需要Logstash forwarder>0.4.0

您可以按照以下步骤生成最新版本


2) 伐木场 在logstash中,可以使用

示例:

"files": [
    {
      "paths": [
        "./example.log"
      ],
      "fields": { 
        "type": "example",
        "env": "$RAILS_ENV"
        }
    }
  ]
filter {
     environment {
          add_field_from_env => { "ENV" => "RAILS_ENV" }
     }
}

如果我在logstash forwarded中设置了“env”:“$RAILS_env”,我会得到这个结果“env”:“$RAILS_env”意味着没有得到我已经测试过的变量值。它对我来说是正常工作的。你是在使用windows还是linux?你试过
“env”:“${RAILS_env}”
?我的客户端是安装logstash forwarder的linux,下面是行“fields”:{“type”:“syslog”,“应用程序名称”:“Myapp”,“env”:“${RAILS\u env}”}”。。。。我已经用echo测试了变量名是否正常,我想我发现了问题。您是否使用最新版本的logstash forwarder?弹性网站(0.4.0)的版本不支持环境变量。2015年7月15日增加了支持。请参阅:您可以从中获取当前版本,并使用自己构建。实际上,客户端将是AWS elasitc beanstalk,可能是100多台服务器