docker - 在 ubuntu 的 docker 上运行 filebeat
问题描述
sudo docker run docker.elastic.co/beats/filebeat:7.0.0 setup -E setup.kibana.host=localhost:5601 -E output.elasticsearch.hosts=["localhost:9200"]
我想使用 elasticsearch 在 docker 上运行 filebeat,但出现此错误:
Exiting: Couldn't connect to any of the configured Elasticsearch hosts. Errors: [Error connection to Elasticsearch http://localhost:9200: Get http://localhost:9200: dial tcp 127.0.0.1:9200: connect: connection refused]
我没有找到任何有用的解决方案......
解决方案
从容器的角度来看,localhost
它本身不是正在运行的主机,这就是它无法连接到 elasticsearch 的原因。
您需要在主机网络上运行 filebeat 容器或为其创建用户定义的网络,并将 filebeat 和 elasticsearch 连接到该网络。
例子:
$ sudo docker network create mynetwork --driver bridge
$ sudo docker run -d -p 9200:9200 -p 9300:9300 --net=mynetwork --name elasticsearch -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.0.0
$ sudo docker run -d --name kibana --net=mynetwork -p 5601:5601 kibana:7.0.0
$ sudo docker run --net=mynetwork --name filebeat docker.elastic.co/beats/filebeat:7.0.0 setup -E setup.kibana.host=kibana:5601 -E output.elasticsearch.hosts=["elasticsearch:9200"]
推荐阅读
- python - 使用 django 运行 sphinx:导入错误(autodoc:导入模块失败)
- unity3d - 相机旋转时 Oculus Quest 崩溃
- google-bigquery - 如何在 BigQuery 中处理大维度
- mysql - 优化mysql数据库
- node.js - 处理 QLDB 会话的正确方法
- angular - Angular 不解析脚本源映射
- python-3.x - 限制 argparse add_argument 中的输入字符串长度
- sql - SQL:在 ALTER SESSION 上 GRANT 的领域违规
- r - 可变过滤条件
- react-native - 在我的 react-native 应用程序中将文件备份到 icloud