docker的日志采集,首先需要了解docker的日志驱动类型
1.json-file 日志格式为json。默认的日志驱动
2.none 不生产日志
3.syslog 将日志写入到syslog中,该syslog守护程序必须在主机上运行
4.local 日志自定义格式存储,实现最小开销
5.journald 将日志写入journald中
这几种日志驱动最常见吧,修改docker的驱动类型
1.直接修改docker的daemon.json文件
vim /etc/docker/daemon.json
{
"log-driver": "日志驱动类型"
"log-opts":{
"max-size": "10m",
"max-file": "3",
"labels": "xxxxxxx" }
}
2.第二种,在容器启动的时候设定容器的日志驱动类型及标签信息
本次实验就是采集第二种方式配置日志驱动类型:syslog,并使用filebeat采集
命令操作
docker run --rm -itd --hostname test --log-driver syslog --log-opt syslog-address=udp://日志发送的目的ip:port --log-opt tag=test(为日志打上标签) nignx
filebeat的配置文件:
vim syslog.json
filebeat.inputs:
- type: udp
host: "192.168.191.10:5144"
tags: ["syslog"]
output.file:
path: "/root/syslog"
filename: syslog.log
# rotate_every_kb: 1000
# number_of_files: 3
启动filebeat
nohup ./filebeat -e -c syslog.json &
查看日志输出文件信息