将日志从 Docker 个容器发送到 ELK 容器(没有 Filebeat)
Send logs to ELK container from Docker containers (without Filebeat)
我正在使用 SEBP/ELK Docker container as it appears to be the most suitable for quickly setting up application logging. Unfortunately, after reading through the docs there doesn't seem to be an easy way to get logs from sibling containers without the use of Filebeat。
我不想在我的每个容器上安装 Filebeat,因为这似乎直接违背了 Docker 的职责分离原则。
TLDR;如何将日志从我的应用程序容器获取到我的 ELK 容器?
在每个容器中使用 filebeat
违背了 Docker
的理念。既浪费资源,又增加管理开销。
您可以通过 logstash
使用本地日志文件。
示例配置:
input {
file {
path => "/var/log/apache.log"
type => "apache-access" # a type to identify those logs (will need this later)
start_position => "beginning"
}
}
现在我们必须将日志文件放在 logstash
容器的本地:
如果您正在使用 bind mounts
,您可以在 logstash 容器中装载相同的目录。
sudo docker run -d -v /path/to/logs/:/path/to/logs/in/container logstash
如果您正在使用 volumes
,您也可以将包含日志的同一卷装载到 logstash。
sudo docker run -d -v logvol:/path/to/logs/in/container logstash
SEBP/ELK 是解决此问题的错误工具。相反,我应该一直在使用一个为 ELK 堆栈的每个元素启动容器的项目:Elasticsearch、Logstash 和 Kibana。我在 GitHub.
上找到了这样一个存储库
deviantony/docker-elk 项目将三个 ELK 元素组合到一组工作容器中。这样做的好处在于,与 SEBP/ELK 项目不同,deviantony/docker-elk 不会对哪些功能应该可用以及哪些应该关闭采取固执己见的观点。在 SEBP/ELK 项目中,写入端口 5000 的能力被删除,当您尝试通过自定义 logstash.conf 文件将其添加回来时,UDP 侦听器最终会失败。相反,deviantony/docker-elk 项目正常运行。
奖励积分:该项目还有一个包含 X-Pack 的分支,它添加了开箱即用的最小安全层。
我正在使用 SEBP/ELK Docker container as it appears to be the most suitable for quickly setting up application logging. Unfortunately, after reading through the docs there doesn't seem to be an easy way to get logs from sibling containers without the use of Filebeat。
我不想在我的每个容器上安装 Filebeat,因为这似乎直接违背了 Docker 的职责分离原则。
TLDR;如何将日志从我的应用程序容器获取到我的 ELK 容器?
在每个容器中使用 filebeat
违背了 Docker
的理念。既浪费资源,又增加管理开销。
您可以通过 logstash
使用本地日志文件。
示例配置:
input {
file {
path => "/var/log/apache.log"
type => "apache-access" # a type to identify those logs (will need this later)
start_position => "beginning"
}
}
现在我们必须将日志文件放在 logstash
容器的本地:
如果您正在使用 bind mounts
,您可以在 logstash 容器中装载相同的目录。
sudo docker run -d -v /path/to/logs/:/path/to/logs/in/container logstash
如果您正在使用 volumes
,您也可以将包含日志的同一卷装载到 logstash。
sudo docker run -d -v logvol:/path/to/logs/in/container logstash
SEBP/ELK 是解决此问题的错误工具。相反,我应该一直在使用一个为 ELK 堆栈的每个元素启动容器的项目:Elasticsearch、Logstash 和 Kibana。我在 GitHub.
上找到了这样一个存储库deviantony/docker-elk 项目将三个 ELK 元素组合到一组工作容器中。这样做的好处在于,与 SEBP/ELK 项目不同,deviantony/docker-elk 不会对哪些功能应该可用以及哪些应该关闭采取固执己见的观点。在 SEBP/ELK 项目中,写入端口 5000 的能力被删除,当您尝试通过自定义 logstash.conf 文件将其添加回来时,UDP 侦听器最终会失败。相反,deviantony/docker-elk 项目正常运行。
奖励积分:该项目还有一个包含 X-Pack 的分支,它添加了开箱即用的最小安全层。