容器服务Docker&Kubernetes + 关注
手机版

基于Logspout+ELK实现docker日志自动化

  1. 云栖社区>
  2. 容器服务Docker&Kubernetes>
  3. 博客>
  4. 正文

基于Logspout+ELK实现docker日志自动化

heizi 2016-04-17 17:42:37 浏览8321 评论0

摘要: 一种基于Logspout + elk实现的docker日志自动化的方式

Logspout是在用于收集Docker容器日志的工具。它连接到主机上的所有容器,然后将其路由到你想让让它去的地方。它也有一个可扩展的模块系统。现在它仅捕获STDOUT和STDERR。
ELK在文章容器内日志收集方案示例已有所介绍。

所以如果你的需求是

  1. 所有应用日志输出都是STDOUT和STDERR
  2. 容器启动不带-t

我们就可以使用Logspout + ELK的方式自动收集容器日志。
screenshot

下面在容器服务中演示:

通过compose模板方式创建应用,我已经把镜像制作完成,放在阿里云HUB中,这样可以直接使用,省去了制作镜像的时间,所以使用起来实际上就是创建应用这一步了。

logbox:
  image: registry.aliyuncs.com/heizi/logbox
  ports:
    - '5000:5000/udp'
    - '9200:9200'
  restart: always
  hostname: logbox
kibanabox:
  image: registry.aliyuncs.com/heizi/kibanabox
  command: ["http://logbox:9200"]
  links:
    - logbox
  ports:
    - '5601:5601'
  hostname: kibanabox
  restart: always
logspout:
  image: registry.aliyuncs.com/heizi/logspout
  hostname: logspout
  labels:
    aliyun.global: true
  links:
    - logbox
  restart: always
  ports:
    - '8100:8000'
  volumes:
    - /var/run/docker.sock:/tmp/docker.sock
  command: ["syslog://logbox:5000"]

应用启动后,就可以在Kibana console看到日志
screenshot

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论

heizi
文章2篇 | 关注5622
+ 关注