02-Log-Pilot + Elasticsearch + Kibana 多行日志收集

阿里云 官方 Log-Pilot + Elasticsearch + Kibana
https://help.aliyun.com/document_detail/86552.html

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

  1. fluentd
  2. 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. 部署

根据阿里云的官方文档操作即可
注意镜像需要替换成我们自己制作的镜像。

原文地址:https://www.cnblogs.com/pythonPath/p/12447139.html