log-pilot 有两种工具对日志进行收集
这里使用的是filebeat 对日志文件进行采集。
为了更好的对java 的日志进行采集 需要进行多行的日志收集
java日志 一般以"^[2" 进行段落区分
操作如下:
git clone https://github.com/AliyunContainerService/log-pilot.git
cd log-pilot
vim assets/filebeat/filebeat.tpl
添加以下行
{{range .configList}}
- type: log
enabled: true
paths:
- {{ .HostDir }}/{{ .File }}
multiline.pattern: '^\[2' #新增,正则条件,以[开头
multiline.negate: true #新增
multiline.match: after #新增
multiline.max_lines: 10000 #新增
scan_frequency: 10s
fields_under_root: true
{{if .Stdout}}
docker-json: true
{{end}}
{{if eq .Format "json"}}
json.keys_under_root: true
{{end}}
fields:
{{range $key, $value := .Tags}}
{{ $key }}: {{ $value }}
{{end}}
{{range $key, $value := $.container}}
{{ $key }}: {{ $value }}
{{end}}
tail_files: false
close_inactive: 2h
close_eof: false
close_removed: true
clean_removed: true
close_renamed: false
{{end}}
# 需要修改Dockerfile.filebeat内部分内容
vim Dockerfile.filebeat
# 修改版本
ENV FILEBEAT_VERSION=6.1.1
# 修改软件源为官方的,阿里云404
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-${FILEBEAT_VERSION}-linux-x86_64.tar.gz -P /tmp/ && \
# 打包镜像
cd log-pilot/ && ./build-image.sh
PS: 如果不想操作可以直接pull我修改后的代码即可
打包成功后,镜像打tag ,并push到私有仓库
打包的镜像为log-pilot:latest
docker tag 原镜像名称 新镜像名称
docker push 新镜像名称
根据阿里云的官方文档操作即可
注意镜像需要替换成我们自己制作的镜像。