无法让 Metricbeat 使用传递的环境变量
Can't make Metricbeat use passed env variable
我正尝试根据 official documentation(版本 7.2.0)在 docker 中 运行 metricbeat
服务。这是我的 bash 命令 setup
:
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
使用了默认的弹性主机而不是环境变量值。我该如何解决?
你打错了,output.elasticsearch.hosts
中少了一个s
。
在整个环境变量定义周围使用双引号,在主机值周围使用单引号,例如:
-E "output.elasticsearch.hosts=['http://myhost:9200']"
上面的例子直接取自global flags.
的官方文档
我正尝试根据 official documentation(版本 7.2.0)在 docker 中 运行 metricbeat
服务。这是我的 bash 命令 setup
:
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
使用了默认的弹性主机而不是环境变量值。我该如何解决?
你打错了,output.elasticsearch.hosts
中少了一个s
。
在整个环境变量定义周围使用双引号,在主机值周围使用单引号,例如:
-E "output.elasticsearch.hosts=['http://myhost:9200']"
上面的例子直接取自global flags.
的官方文档