docker容器日志归档工具 log-pilot

  作者:会飞的zxl

log-pilot 具有如下特性:1 一个单独的 log 进程收集机器上所有容器的日志。不需要为每个容器启动一个 log 进程。2 支持文件日志和 stdout。docker log dirver 亦或 logspout 只能处理 stdout,log-pilot 不仅支持收集 stdout 日志,还可以收集文件日志。3 声明式配置。当您的容器有日志

log-pilot 具有如下特性:

1 一个单独的 log 进程收集机器上所有容器的日志。不需要为每个容器启动一个 log 进程。

2 支持文件日志和 stdout。docker log dirver 亦或 logspout 只能处理 stdout,log-pilot 不仅支持收集 stdout 日志,还可以收集文件日志。

3 声明式配置。当您的容器有日志要收集,只要通过 label 声明要收集的日志文件的路径,无需改动4 其他任何配置,log-pilot 就会自动收集新容器的日志。

4 支持多种日志存储方式。无论是强大的阿里云日志服务,还是比较流行的 elasticsearch 组合,甚至是 graylog,log-pilot 都能把日志投递到正确的地点。

5 开源。log-pilot 完全开源,源码地址

https://github.com/AliyunContainerService/log-pilot?spm=a2c4g.11186623.2.12.33a51b9eyYx06r

官网文档  https://helpcdn.aliyun.com/document_detail/50441.html

操作步骤:

第一步:git clone https://github.com/AliyunContainerService/log-pilot.git

第二步:按照官网文档是构建镜像,此处直接参考es.yaml文件修改生成启动log-pilot的yaml文件

vim log-pilot.yml

version: '2'

services:

pilot:

image: registry.cn-hangzhou.aliyuncs.com/acs/log-pilot:0.9.5-filebeat

volumes:

- /etc/localtime:/etc/localtime

- /var/run/docker.sock:/var/run/docker.sock

- /:/host:ro

cap_add:

- SYS_ADMIN

environment:

LOGGING_OUTPUT: elasticsearch #指定输出的类型

ELASTICSEARCH_HOSTS: elasticsearch:19200 # 指定ES地址和端口

第三步:启动容器

docker-compose -p quickstart -f es.yml up -d

第四步:修改生成docker容器,增加labels标签

vim run.yaml

labels:

aliyun.logs.catalina: stdout

aliyun.logs.test-order-access: /flask_barcode/logs/collection.log

log-pilot 会自动获取日志并实时推送到ES

labels:

aliyun.logs.catalina: stdout

aliyun.logs.test-petro-midware-access: /hft_barcode/logs/collection.*

test-uSmile-access*

test-petro-stock-access*

test-petro-order-access*

test-petro-midware-access*