ELK+logspout收集Docker日志
1. Docker日志收集流程
基本思路通过logstash获取docker中的日志,然后,将日志转发给elasticsearch进行索引,kibana分析和可视化。
获取docker中的日志文件可以有多种方式:
- 添加一个MQ或者Redis作为docker容器和logstash的中间层,docker中的服务将日志传输到中间层,然后,logstash从中间获取
- 使用工具获取docker中的日志,例如:filebeat,logspout,log-pilot;但是不建议在每个服务器上安装logstash,因为logstash运行会占有大量的服务器资源,增加服务器压力。
- filebeat的配置好像相对比较复杂,没有具体了解;
- logspout 可以获取docker的stdout日志
- log-pilot 是阿里开源的日志工具,可以处理stdout和日志文件
本文中主要使用logspout.
2. Logspout+ELK收集日志
2.1 Docker安装ELK
- logstash配置文件
input {
tcp {
port => 5000
type => syslog
codec => json
}
udp {
port => 5000
type => syslog
}
file {
codec => json
path => "/opt/build/*.json"-->
}
}
filter {
grok {
match =>