配置文件中的Logstash变量定义

时间:2018-09-19 10:44:11

标签: elasticsearch logstash kibana elastic-stack

在我的Logstash配置文件中,我有许多jdbc输入,并且所有输入都使用相同的数据库和相同的凭据。每次我想更改例如连接字符串时,都必须手动遍历所有jdbc输入。我可以以某种方式定义一次变量,然后在配置文件中使用它们吗?

CONNECTION_STRING_VARIABLE => "MY_CONNECTION_STRING"
jdbc {
      ...
      jdbc_connection_string => CONNECTION_STRING_VARIABLE
      ...
}

由于用户名和密码字段,我不想使用环境变量,我想将变量存储在一个地方。

1 个答案:

答案 0 :(得分:0)

对于密码,可以使用属性jdbc_password_filepath。

我读到您不想设置环境变量。我在这里给出一种方法,这样,它将不会在每个shell的环境中都可用,而只会为logstash加载。

您可以创建一个脚本,为logstash导出所有变量,然后在logstash服务或logstash命令行中调用它。

例如,创建一个文件-exportVariablesForLogstash.sh

export jdbc_url="jdbc:mysql://example.local:3306/sampledb"
export jdbc_username=mysqluser 

在启动logstash服务或logstash命令行脚本时添加以下内容。在开始时注意点。

. exportVariablesForLogstash.sh 

然后您可以使用此处记录的这些变量。 https://www.elastic.co/guide/en/logstash/current/environment-variables.html。我相信您已经知道这一点。