我想在docker上运行ELK,所以我在一台服务器上运行ELK堆栈和filebeat容器,而项目在另一台服务器上运行。
如何将项目日志文件传输到正在运行的ELK服务器?
答案 0 :(得分:1)
最后,我找到了以下解决方案。如果您有其他想法,请推荐我。
注意:我没有在此服务器上运行filebeat图像。
在Filebeat配置文件中,我们设置文件的输出地址。 Filebeat如下Logstash的IP地址和端口 在另一台服务器上运行。
output.logstash:
hosts: ["ELK Server IP:5044"]
现在,我为文件拍打创建了一个构成文件,如下所示
version: '2.2'
services:
filebeat:
build:
context: filebeat /
volumes:
# needed to access all docker logs (read only):
- "/var/lib/docker/containers:/usr/share/dockerlogs/data:ro"
# needed to access additional information about containers
- "/var/run/docker.sock:/var/run/docker.sock"
#cpu_count: 1
cpus: 0.5
mem_limit: 2G
我通过使用这些设置来运行filebeat的图像并撰写 项目正在运行的服务器上的文件。
通过这些设置,Filebeat可以从“ / var / lib / docker / containers”读取日志文件,并使用“主机:[“ ELK服务器IP:5044”]“将日志文件传递到Logstash。