无法使Metricbeat使用传递的env变量

时间:2019-07-31 14:42:45

标签: docker elasticsearch elastic-stack metricbeat

根据official documentation(版本7.2.0),我试图在docker中运行metricbeat服务。这是我对setup的bash命令:

docker run -d --name=metricbeat docker.elastic.co/beats/metricbeat:7.2.0 setup\
 -e setup.kibana.host=http://XXX.XXX.XXX.XXX:5601\
 -e output.elasticsearch.host=["XXX.XXX.XXX.XXX:9200"]\
 -e output.elasticsearch.password=XXXXXXXX

如您所见,我正在传递output.elasticsearch.host变量,它绝对不等于默认值。但是,这是metricbeat容器日志的一部分:

2019-07-31T14:32:40.335Z        INFO    elasticsearch/client.go:166     Elasticsearch url: http://elasticsearch:9200

这意味着metricbeat使用默认的Elastic host而不是环境变量值。我该如何解决?

1 个答案:

答案 0 :(得分:1)

您输入了错字,@echo off setlocal enabledelayedexpansion for %%f in (C:\Users\CHRW\Desktop\EDILocalTest\*.edi) do ( SET "output=C:\Users\CHRW\Desktop\EDILocalTest\Output\" for %%a in (%%f) do ( set "outputfile=!output!%%~na_update%%~xa" ) (for /f "delims=" %%i in (%%f) do ( set "line=%%i" setlocal enabledelayedexpansion set "line=!line:'=^!" echo(!line! endlocal ))>> !outputfile! ) 中缺少s

在整个环境变量定义中也使用双引号,在主机值周围使用单引号,例如:

output.elasticsearch.hosts

以上示例直接取自有关global flags的官方文档。