根据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主机而不是环境变量值。我该如何解决?
最佳答案
您输入了错误,s
中缺少output.elasticsearch.hosts
。
在整个环境变量定义周围也使用双引号,在主机值周围使用单引号,例如:
-E "output.elasticsearch.hosts=['http://myhost:9200']"
上面的示例直接取自有关global flags的官方文档。
关于docker - 无法使Metricbeat使用传递的env变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57293408/