容器内应用日志收集方案

  • 时间:
  • 浏览:0

1)采集容器的STDOUT/STDERR日志

怪怪的是对default 使用json-file driver的容器,通过扫描容器主机的json-file 目录,实现容器STDIN/STDERR日志的采集。

2)更多的内置日志采集方案

Q:有的应用输出的log名都有一样的,我不多 有冲突吗,比如我启动有有兩个容器在有有兩个宿主机上,都往xx.log里写入会有哪几次的问题图片。

2)当日志容器被创建后(通过container label 判断),  inspect 容器的volume 在主机的path;

应用日志的采集、分析和监控是日常运维工作重要的偏离 ,妥善趋于稳定理应用日志采集往往是应用容器化重要的有有兩个课题。

在该方案中,会在每个host 部署有有兩个wise2c-logger,wise2C会listen docker engine的event,当有新容器创建和销毁时,会去判断否有有和日志相关的local volume 被创建可是我 销毁了,根据lables,wise2c-logger 会动态配置logstatsh的input、filter 和output,实现应用日志的采集和采集。

A:通过容器里都可以 了识别出来两种应用的业务上的逻辑,里都可以 了拿到service名称。

怎么才能 才能 采集应用写在容器内日志记录,有以下挑战:

Docker除理日志的法律法律法律法律依据是通过docker engine捕捉每有有兩个容器tcp连接的STDOUT和STDERR,通过为contrainer制定不同log driver 来实现容器日志的采集,缺省json-file log driver是将容器的STDOUT/STDERR 输出保趋于稳定磁盘上,可是我 用户就能使用docker logs <container>来进行查询。

2) 应用侵入

Q:最后你说哪几次到,重新配置logstash中配置文件,看上去感觉你又是通过wiselog两种容器去采集所有日志的?只不过是动态配置logstash顶端参数。

Q:「生成日志容器」是指每个应用容器要对应有有兩个日志容器?原先 资源消耗我不多 更大吗?k8s那种日志采集性能消耗会比原先 每个应用容器对应有有兩个日志容器高么?

Q:直接用syslog driver,能做到对应用无侵入么?

没法 我们我们 现在来看下wiselogger大致的工作流程:

web-data 容器使用有有兩个local volume,mount到/var/log目录(能够都可以 了是其它目录),在web-data中定义了几次标签,  io.wise2c.logtype说明两种容器富含有了日志目录,标签顶端的值elasticsearch、kafka里都可以 了用于指明log的output可是我 过滤条件等。

在部署有有兩个传统的应用的可是我 ,应用tcp连接记录日志的法律法律法律法律依据通常记录到文件里, 一般(但不一定)会记录到/var/log目录下。应用容器化后,不同于以往将所有日志贴到 主机系统的统一位置,日志分散在好多好多 不同容器的相互隔离的环境中。

A:启动容器的可是我 注明使用Syslog driver的参数即可,原先 几乎没法 额外资源占用。

3) 日志来源识别

A:没法 做过很强的压力,为社 我们我们 歌词 现在正常使用倒没碰上过性能上的瓶颈。我们我们 现在没法 对logger做资源限制,可是我 能占用400~400M内存,可是我 有logstash的是是因为。

Q:那两种方案固然有个哪几次的问题图片,为哪几次不学k8s那种,直接固定那目录,通过正则表达式去采集日志文件,而要动态没法 做?有哪几次好处吗?目前我感觉这两套方案几乎一样。

Q:syslog driver能采集容器内的日志文件么?容器内不同流向的日志能区分么?

监听新的日志容器->获取日志容器的type和本地目录->生成新的logstash配置:

两种传统应用,怪怪的是legacy 系统,写日志机制往往是没法 配置和更改的,包括应用日志的格式,存放地址等等。日志采集机制,要尽量除理要求修改应用。

目前内置缺省使用logstatsh 作日志的采集,和过滤和两种简单的转码逻辑。未来wise2C-logger  里都可以 了支持两种更轻量级的日志采集方案,比如fluentd、filebeat等。

A:针对es来说,还没法 别的更好的方案。

A:是的,现在采集工作是logstash来完成的,单纯的文件采集,可选的方案还挺多的,也没法 必要再造轮子了。

1)wise2c-looger 侦听docker events 事件, 检查否有有有兩个日志容器创建可是我 被销毁;

3)重新配置wise2c-logger 内置的logstatsh 的配置文件,设置新的input, filter 和output 规则。

可是我 在每个容器运行有有兩个日志采集tcp连接, 比如logstatsh/fluentd 类似的日志工具,在主机容器密度高的可是我 ,logstatsh/fluentd类似日志采集工具会消耗少量的系统资源。顶端两种法律法律法律法律依据是最简单直观的,也是最消耗资源的。

日志来源识别的功能借助了rancher平台为container_name的命名的规则社会形态,里都可以 了做到即使有有兩个容器在运行过程中被调度到另外一台主机,能够都可以 了识别日志来源。

下面是我们我们 设计的有有兩个低资源资源消耗、无应用侵入、里都可以 了清楚识别日志来源的统一日志采集方案,该方案可是我 在睿云智合的客户有成功实施案例。

应用容器化可是我 ,时需在为应用容器挂载有有兩个专门写有日志的volume,为了区别该volume 和容器其它数据volume,我们我们 把该volume 定义在容器中,通过volume_from 指令share 给应用容器,下面是有有兩个例子:demo应用的docker-compose file

1) 资源消耗

A:为了减少对应用的侵入。可是我 好多好多 用户的现有系统都可以 了再修改了,原先 做也是为了减少用户现有tcp连接的修改,为了最重要的“兼容现有”。

Q & A

目前我们我们 还在对Wise2C-logger 作进一步的优化:

A:是指每个应用容器对应有有兩个日志容器。固然每个应用有有兩个日志容器,可是我 ,日志容器是start once的,我不多 占用运行时资源。

A:我不多 ,给每有有兩个应用容器配有有兩个日志卷容器就里都可以 了除理两种哪几次的问题图片。两种哪几次的问题图片也是我们我们 出方案时有有兩个棘手的哪几次的问题图片。好多好多 两种方案的有有兩个好处好多好多 ,每有有兩个应用的都里都可以 了随意设置日志目录,我不多 考虑和别的应用冲突,好多好多 会和同宿主机同一应用冲突。

1) 应用怎么才能 才能 配置

A:里都可以 了监听文件目录,能够都可以 了定时请求docker daemon。

A:都有,里都可以 了随意定义,logstah里都可以 了抓syslog。

Q:两种方案是都有要保证应用容器日志要输出到/var/log下啊?

Q:除了kibana还有没别的可视化方案?

采用统一应用日志采集方案,日志分散在好多好多 不同容器的相互隔离的环境中,时需除理日志的来源识别哪几次的问题图片。

A:一帮人报过两种除理法律法律法律法律依据,日志量大时,docker daemon会崩溃。

A:我不多 ,日志容器只生成一下,我不多 持续运行。

A:容器内应用的本地日志syslog里都可以 了采集,分流同样里都可以 了完成,可是我 容器内的本地日志两种我被委托人固然跟容器环境下的应用无本地化、无清况 化相悖吧。

容器化应用日志采集挑战

本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/19094400

Q:可是我 是挂载log目录,logstash就里都可以 了去宿主机采集了,还时需别的插件做哪几次?

Q:有没法 做过性能测试?我这边模块的日志吞吐量比较大。比如在几次量级的日志输出量基础上,主要为logger模块预留几次系统资源,保证其正常稳定工作?

Q:你说哪几次的start once是哪几次意思?你说哪几次占资源是少量日志来的可是我 ,没法 半年 志容器要消耗少量io的吧,CPU使用率会上升,我不多 影响应用容器使用CPU么?

Q:上次听别人说全部把日志扔到标准输出里,谁能谁能告诉我靠谱不?

优化

这里是把wise2c-logger在rancher平台上做成catalog时需的docker-compose.yml的截图,我们我们 里都可以 了配合顶端的流程描述一齐看一下。

Q:缘何去监听local volume?

容器化应用日志采集方案