容器内日志收集方案示例

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 容器内日志收集方案示例 ELK(Elasticsearch+Logstash+Kibana)是流行的一体化日志方案,提供日志收集、处理、存储、搜索、展示等全方位功能。 基于docker部署ELK非常方便,有各种现成的image可用,比如http://elk-docker.readthedocs.

容器内日志收集方案示例

ELK(Elasticsearch+Logstash+Kibana)是流行的一体化日志方案,提供日志收集、处理、存储、搜索、展示等全方位功能。

基于docker部署ELK非常方便,有各种现成的image可用,比如http://elk-docker.readthedocs.org/

但因为容器的隔离性,收集容器内的日志很不方便。本文的方案可以让用户通过简单的配置实现这一功能。

原理

本方案借助docker的Volume功能。在host机器上开辟一个固定目录D;产生日志的容器将日志文件所在目录mount到D目录下的子目录中;收集日志的容器再把目录D mount到自己容器内。
这样日志收集容器就能访问到所有日志文件了。如下图所示:

_2015_12_18_17_34_10

另外,为了收集容器的stdout、stderr日志,还需要将host的/var/lib/docker/目录mount到日志收集容器中,可以收集到json日志。

部署方法

可以通过下面这个容器编排文件实现一键部署。

#elk包含了Elasticsearch+Logstash+Kibana三个应用
elk:
  image: registry.aliyuncs.com/testhub/elk:0.1
  ports:
    - '5601:5601'
    - '9200:9200'
    - '5000:5000'
  restart: always
  labels:
#aliyun.logs标示需要收集的目录,没有该标识的容器不会收集日志。多个目录之间用分号;分隔,目录与文件pattern之间用冒号:分隔,不带pattern则收集目录下所有文件。
#下面这行表示收集/var/log/elasticsearch目录下所有文件,/var/log/test/目录下所有.txt文件。
    aliyun.logs: /var/log/elasticsearch;/var/log/test/:*.txt
#aliyun.logs里出现的每一个目录,都要有相应的volume。
#host目录必须是/container_logs/开头。
  volumes:
    - /container_logs/elasticsearch/:/var/log/elasticsearch/
    - /container_logs/elktest/:/var/log/test/
logstash-forwarder:
  image: registry.aliyuncs.com/testhub/logstash-forwarder:0.2
  restart: always
  links: 
    - elk:logstash
  labels:
#aliyun.global: true是阿里云扩展的功能,有该标识的容器每个host上有且仅有一个
    aliyun.global: 'true'
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /container_logs/:/container_logs/
    - /var/lib/docker/:/var/lib/docker/

部署教程

在这之前,需要先创建一个集群。可以在容器服务控制台http://cs.console.aliyun.com/ 完成。

  1. 创建编排文件

1
2

  1. 用编排文件创建应用

3
4

  1. 查看状态,找到elk服务的节点IP

5
6

  1. 访问http://节点IP:5601/,开始搜索日志

7

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
2月前
|
存储 Prometheus 监控
Prometheus vs. ELK Stack:容器监控与日志管理工具的较量
随着容器化技术的广泛应用,容器监控与日志管理成为了关键任务。本文将对两种常用工具进行比较与选择,分别是Prometheus和ELK Stack。Prometheus是一款开源的监控系统,专注于时序数据的收集和告警。而ELK Stack则是一套完整的日志管理解决方案,由Elasticsearch、Logstash和Kibana三个组件组成。通过比较它们的特点、优势和适用场景,读者可以更好地了解如何选择适合自己需求的工具。
|
3月前
|
运维 监控 数据可视化
日志管理:收集和分析Docker容器日志
容器化技术的普及使得应用的部署和管理更加便捷,但随之而来的挑战之一是有效地管理和分析容器产生的大量日志。本文将深入探讨Docker容器日志管理的重要性,介绍常用的日志收集工具,以及如何分析和利用这些日志数据,提供更为丰富和实际的示例代码,帮助大家更好地理解和应用日志管理的关键技术。
|
15天前
|
Web App开发 监控 应用服务中间件
全新架构!日志服务 SLS 自研免登录方案发布
全新架构!日志服务 SLS 自研免登录方案发布
87353 5
|
4月前
|
存储 缓存 前端开发
两种异步日志方案的介绍
两种异步日志方案的介绍
63 0
|
1月前
|
消息中间件 设计模式 Java
spdlog中的异步日志方案
spdlog中的异步日志方案
179 2
|
2月前
|
Docker 容器
Docker容器日志接入到GrayLog
Docker容器日志接入到GrayLog
40 0
|
2月前
|
Prometheus 监控 Cloud Native
Prometheus VS ELK Stack:容器监控与日志管理工具的比较与选择
在容器化时代,有效的容器监控与日志管理工具对于确保应用程序的可靠性和可维护性至关重要。本文将比较两个主流工具,Prometheus和ELK Stack,探讨它们在容器监控和日志管理方面的特点、优势和适用场景,帮助读者做出明智的选择。
|
2月前
|
Java Linux
异步日志方案log4cpp
异步日志方案log4cpp
119 0
|
2月前
|
Java 应用服务中间件 容器
SpringBoot 各种 Web 容器服开启 AccessLog 日志
SpringBoot 各种 Web 容器服开启 AccessLog 日志
30 0
|
3月前
|
Web App开发 安全 前端开发
百度搜索:蓝易云【Docker WebRTC容器部署方案】
以上是一个简单的Docker WebRTC容器部署方案。在实际应用中,你可能需要根据自己的需求进行更复杂的配置和优化。此外,要确保你的WebRTC应用程序在Docker容器中能够正确运行,可能需要处理一些网络和安全方面的问题。
96 6

相关产品

  • 容器镜像服务
  • 容器服务Kubernetes版