如何使用开源工具fluentd-pilot收集容器日志

发布时间:2021-12-29 08:59:55 作者:iii
来源:亿速云 阅读:176

本篇内容主要讲解“如何使用开源工具fluentd-pilot收集容器日志”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用开源工具fluentd-pilot收集容器日志”吧!

fluentd-pilot简介

fluentd-pilot是阿里开源的docker日志收集工具,Github项目地址 。你可以在每台机器上部署一个fluentd-pilot实例,就可以收集机器上所有Docker应用日志。

fluentd-pilot 具有如下特性:

rancher使用fluentd-pilot收集日志

如何使用开源工具fluentd-pilot收集容器日志

我们既然要用fluentd-pilot,就得先把它启动起来。还要有一个日志系统,日志要集中收集,必然要有一个中间服务去收集和存储,所以要先把这种东西准备好。Rancher中我们要如何做?如图,首先我们选择Rancher的应用商店中的Elasticsearch和Kibana。版本没有要求,下面使用Elasticsearch3.X和Kibana4。

如何使用开源工具fluentd-pilot收集容器日志

其次在RancherAgent主机上面部署一个fluentd-pilot容器,然后在容器里面启动的时候,我们要声明容器的日志信息,fluentd-pilot会自动感知所有容器的配置。每次启动容器或者删除容器的时候,它能够看得到,当看到容器有新容器产生之后,它就会自动给新容器按照你的配置生成对应的配置文件,然后去采集,最后采集回来的日志同样也会根据配置发送到后端存储里面去,这里面后端主要指的elasticsearch或者是SLS这样的系统,接下来你可以在这个系统上面用一些工具来查询等等。

可根据实际情况,在每台Agent定义主机标签,通过主机标签在每台RancherAgent主机上跑一个pilot容器。用这个命令来部署,其实现在它是一个标准的Docker镜像,内部支持一些后端存储,可以通过环境变量来指定日志放到哪儿去,这样的配置方式会把所有的收集到的日志全部都发送到elasticsearch里面去,当然两个挂载是需要的,因为它连接Docker,要感知到Docker里面所有容器的变化,它要通过这种方式来访问宿主机的一些信息。在Rancher环境下使用以下docker-compose.yml 应用---->添加应用,在可选docker-compose.yml中添加一下内容。

version: '2'
services:
  pilot:
    image: registry.cn-hangzhou.aliyuncs.com/acs-sample/fluentd-pilot:0.1
    environment:
      ELASTICSEARCH_HOST: elasticsearch
      ELASTICSEARCH_PORT: '9200'
      FLUENTD_OUTPUT: elasticsearch
    external_links:
    - es-cluster/es-master:elasticsearch
    volumes:
    - /var/run/docker.sock:/var/run/docker.sock
    - /:/host
    labels:
      aliyun.global: 'true'

配置好之后启动自己的应用(例子:tomcat),我们看应用上面要收集的日志,我该在上面做什么样的声明?关键的配置有两个,一是label catalina,声明的是要收集容器的日志为什么格式(标准格式等,也可以是文件。),所有的名字都可以;二是声明access,这也是个名字,都可以用你喜欢的名字。这样一个路径的地址,当你通过这样的配置来去启动fluentd-pilot容器之后,它就能够感觉到这样一个容器的启动事件,它会去看容器的配置是什么,要收集这个目录下面的文件日志,然后告诉fluentd-pilot去中心配置并且去采集,这里还需要一个卷,实际上跟Logs目录是一致的,在容器外面实际上没有一种通用的方式能够获取到容器里面的文件,所有我们主动把目录从宿主机上挂载进来,这样就可以在宿主机上看到目录下面所有的东西。

如何使用开源工具fluentd-pilot收集容器日志 如何使用开源工具fluentd-pilot收集容器日志

当你通过部署之后,他会自己在elasticsearch创建索引,就可以在elasticsearch的kopf上面看到会生成两个东西,都是自动创建好的,不用管一些配置,你唯一要做的事是什么呢?就可以在kibana上创建日志index pattern了。然后到日志搜索界面,可以看到从哪过来的,这条日志的内容是什么,这些信息都已经很快的出现了。

如何使用开源工具fluentd-pilot收集容器日志 如何使用开源工具fluentd-pilot收集容器日志

Lable说明

启动tomcat的时候,我们声明了这样下面两个,告诉fluentd-pilot这个容器的日志位置。

aliyun.logs.tomcat1-access   /opt/apache-tomcat-8.0.14/logs/localhost_access_log.*.txt 
aliyun.logs.catalina   stdout

你还可以在应用容器上添加更多的标签

aliyun.logs.$name = $path

aliyun.logs.$name.format,日志格式,目前支持

aliyun.logs.$name.tags: 上报日志的时候,额外增加的字段,格式为k1=v1,k2=v2,每个key-value之间使用逗号分隔,例如

到此,相信大家对“如何使用开源工具fluentd-pilot收集容器日志”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

推荐阅读:
  1. ELK日志收集demo
  2. filebeat日志收集

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:Kubernetes身份认证的操作方法是什么

下一篇:Python如何处理运动员信息的分组与聚合

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》