在我的Logstash配置文件中,我有许多jdbc
输入,并且所有输入都使用相同的数据库和相同的凭据。每次我想更改例如连接字符串时,都必须手动遍历所有jdbc输入。我可以以某种方式定义一次变量,然后在配置文件中使用它们吗?
CONNECTION_STRING_VARIABLE => "MY_CONNECTION_STRING"
jdbc {
...
jdbc_connection_string => CONNECTION_STRING_VARIABLE
...
}
由于用户名和密码字段,我不想使用环境变量,我想将变量存储在一个地方。
答案 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。我相信您已经知道这一点。