当前位置: 首页 > 工具软件 > log-pilot > 使用案例 >

log-pilot 多行日志收集

堵宏毅
2023-12-01

log-pilot 有两种工具对日志进行收集

  1. fluentd
  2. filebeat

这里使用的是filebeat 对日志文件进行采集。

为了更好的对java 的日志进行采集 需要进行多行的日志收集

java日志 一般以"^[2" 进行段落区分

操作如下:

  1. 拉取代码 修改模板
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}}
  1. 打包镜像
# 需要修改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我修改后的代码即可

https://github.com/superkzh/log-pilot.git

打包成功后,镜像打tag ,并push到私有仓库

打包的镜像为log-pilot:latest

docker tag 原镜像名称 新镜像名称

docker push 新镜像名称

  1. 部署

根据阿里云的官方文档操作即可

注意镜像需要替换成我们自己制作的镜像。

 类似资料: