02-Log-Pilot + Elasticsearch + Kibana 多行日志收集
阿里云 官方 Log-Pilot + Elasticsearch + Kibana
https://help.aliyun.com/document_detail/86552.html
log-Pilot 有两种工具对日志进行收集
- fluentd
- filebeat
我使用的是filebeat 对日志文件进行采集。
为了更好的对java 的日志进行采集 需要进行多行的日志收集
公司java 日志 一般以"^[" 进行段落区分
操作如下:
1. 拉取代码 修改模板
git clone https://github.com/AliyunContainerService/log-pilot.git
cd log-pilot
vim log-pilot/assets/filebeat/filebeat.tpl
添加以下行
{{range .configList}}
- type: log
enabled: true
paths:
- {{ .HostDir }}/{{ .File }}
multiline.pattern: '^\[' #新增正则条件,以[开头
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}}
2. 打包镜像
cd log-pilot/ && ./build-image.sh
打包成功后,镜像打tag ,并push到私有仓库
docker tag 原镜像名称 新镜像名称
docker push 新镜像名称
3. 部署
根据阿里云的官方文档操作即可
注意镜像需要替换成我们自己制作的镜像。