【问题标题】:logstash forwarder set environment variable valuelogstash 转发器设置环境变量值
【发布时间】:2015-09-09 13:44:36
【问题描述】:

我有 Rails 应用程序和不同的环境,如开发、登台和生产,RAILS_ENV 设置了该值。我想在logstash中添加该字段以过滤环境,所以我的问题是在logstash配置或logstash转发器中在哪里设置该变量以及如何设置

【问题讨论】:

    标签: logstash logstash-grok logstash-configuration logstash-forwarder


    【解决方案1】:

    logstash 和 logstash 转发器都可以。

    1) Logstash 转发器

    来自logstash转发器readme

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

    forwarder.conf 示例:

    "files": [
        {
          "paths": [
            "./example.log"
          ],
          "fields": { 
            "type": "example",
            "env": "$RAILS_ENV"
            }
        }
      ]
    

    注意:需要 Logstash 转发器 > 0.4.0

    您可以在instructions on github之后构建最新版本。


    2) 日志存储

    在 logstash 中,您可以使用 environment filter. 从环境变量中设置字段

    示例:

    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", "application_name": "Myapp", "env": "$ {RAILS_ENV}" }" .... 我已经用 echo 测试了变量名是否有效
    • 猜我发现了问题。您使用最新版本的 logstash 转发器吗?弹性网站 (0.4.0) 的版本不支持环境变量。支持于 2015 年 7 月 15 日添加。请参阅:github.com/elastic/logstash-forwarder/pull/435 您可以从github 获取当前版本,并使用go 自行构建。
    • 实际上客户端是 AWS elasitc beanstalk,可能有 100 多个服务器
    猜你喜欢
    • 2018-02-15
    • 2018-07-13
    • 2014-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多