6.4. 使用环境变量

未匹配的标注

概览

  • 在 Logstash 插件的配置中你可以使用 ${变量} 的方式设置环境变量引用。
  • 在 Logstash 启动过程中,每个引用都会被环境变量的值替换。
  • 替换是大小写敏感的。
  • 引用未定义的变量会引起一个 Logstash 配置的错误。
  • 可以通过使用 ${变量:default 值} 的方式指定一个默认值。当环境变量未定义时,Logstash 将使用默认值。
  • 你可以在任意插件配置项类型中添加环境变量引用:字符串,数值,布尔,数组或者哈希类型。
  • 环境变量是不可改变的。如果你更新了环境变量,只有通过重启 Logstash 才能拿到更新后的值。

示例

以下示例将带你展示如何使用环境变量设置一些常见的配置项的值。

设置 TCP 端口

以下是一个使用环境变量设置 TCP 端口的例子:

input {
  tcp {
    port => "${TCP_PORT}"
  }
}

现在让我们看看 TCP_PORT 设置的值:

export TCP_PORT=12345

在启动时,Logstash 使用以下配置:

input {
  tcp {
    port => 12345
  }
}

如果 TCP_PORT 环境变量没有设置,Logstash 会返回一个配置错误。

可以通过指定默认值的方式来解决这个问题:

input {
  tcp {
    port => "${TCP_PORT:54321}"
  }
}

现在如果没有设置环境变量的话 Logstash 就不会返回错误了,而是使用默认值:

input {
  tcp {
    port => 54321
  }
}

如果环境变量设置了的话,Logstash 使用设置的值而不是默认的值。

设置标签值

以下是一个使用环境变量设置标签值的例子:

filter {
  mutate {
    add_tag => [ "tag1", "${ENV_TAG}" ]
  }
}

让我们设置下 ENV_TAG 的值:

export ENV_TAG="tag2"

在启动时,Logstash 使用以下配置:

filter {
  mutate {
    add_tag => [ "tag1", "tag2" ]
  }
}

设置文件路径

以下示例使用环境变量设置日志文件的路径:

filter {
  mutate {
    add_field => {
      "my_path" => "${HOME}/file.log"
    }
  }
}

让我们设置下 HOME 变量的值:

export HOME="/path"

在启动时,Logstash 使用以下配置:

filter {
  mutate {
    add_field => {
      "my_path" => "/path/file.log"
    }
  }
}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 0
发起讨论 只看当前版本


暂无话题~