0
由于其高度的灵活性和可用性,我通常将应用程序作为docker容器运行。有没有办法让容器日志进入我的logstash服务器。通过配置日志驱动程序将Docker容器日志发送到ELK堆栈 - 简单方法
由于其高度的灵活性和可用性,我通常将应用程序作为docker容器运行。有没有办法让容器日志进入我的logstash服务器。通过配置日志驱动程序将Docker容器日志发送到ELK堆栈 - 简单方法
Docker包含多种日志记录机制,通过记录驱动程序帮助您从运行容器和服务中获取信息。
每个Docker守护程序都有一个默认日志记录驱动程序,每个容器使用该驱动程序,除非您将其配置为使用不同的日志记录驱动程序。
您可以通过如下配置Logstash来简单获取容器日志,并通过将其默认日志驱动程序更改为syslog来运行要查看其日志的容器。
#logstash.conf
input {
tcp {
port => 5000
}
}
output {
stdout {}
}
以下两个命令将在logstash中显示hello-world容器日志。
docker run -it --rm --name=logstash -p 5000:5000 -f /path/to/logstash.conf
docker run --log-driver=syslog --log-opt syslog-address=tcp://<logstash-system-ip>:5000 hello-world
Logstash的输出甚至可以发送通过简单地配置所述输出部以elasticsearch,
elasticsearch {
hosts => ["<elastic-system-ip>:9200"]
}