docker应用日志收集工具log-pilot快速入门

云计算现在趋势这么火,从分布式应用到容器化部署。今年也开始接触点应用云部署。这篇文章主要讲使用阿里log-pilot的简单入门。

N个应用部署在n台机子,每个应用又有多个容器。需要收集系统日志、中间件日志、应用日志等。想想都是头疼。

看到阿里推出了log-pilot,感觉这能很大地缩短日志收集的目标。

log-pilot能够通过配置一定的规则收集单台部署机器的所有容器日志。

log-pilot具有如下特性

  1. 一个单独log进程,收集机器上所有容器的日志。不需要为每个容器启动一个log进程
  2. 支持文件日志和stdout。docker log dirver亦或logspout只能处理stdout,log-pilot不光支持收集stdout日志,还可以收集文件日志。
  3. 声明式配置。当你的容器有日志要收集,只要通过label声明要收集的日志文件的路径,无需改动其他任何配置,log-pilot就会自动收集新容器的日志。
  4. 支持多种日志存储方式。无论是强大的阿里云日志服务,还是比较流行的elasticsearch组合,甚至是graylog,log-pilot都能把日志投递到正确的地点。
  5. 开源。log-pilot完全开源,代码在这里。如果现有的功能不满足你的需要,欢迎提issue,如果能贡献代码就更好了。

原理

docker应用日志收集工具log-pilot快速入门_第1张图片


快速启动

启动log-pillot,要注意的是,以这种方式启动,由于没有配置后端使用的日志存储,所有收集到的日志都会直接输出到控制台,所以主要用于调试。更多文档:https://github.com/AliyunContainerService/log-pilot

docker run --rm -it \
   -v /var/run/docker.sock:/var/run/docker.sock \
   -v /:/host \
   -e PILOT_TYPE=fluentd \
   registry.cn-hangzhou.aliyuncs.com/acs-sample/log-pilot:latest


通过启动tomcat进行测试

docker run -it --rm  -p 10080:8080 \
    -v /usr/local/tomcat/logs \
    --label aliyun.logs.catalina=stdout \
    --label aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt \
    tomcat

aliyun.logs.catalina=stdout告诉log-pilot这个容器要收集stdout日志,aliyun.logs.access=/usr/local/tomcat/logs/localhost_access_log.*.txt则表示要收集容器内/usr/local/tomcat/logs/目录下所有名字匹配localhost_access_log.*.txt的文件日志。




你可能感兴趣的:(devops)