filebeat不用多说就是扫描本地磁盘日志文件,读取文件内容然后远程传输。

docker容器日志默认记录方式为 json-file 就是将日志以json格式记录在磁盘上

格式如下:

{
 "log": "2018-11-16 01:24:30.372  INFO [demo1,786a42d3b893168f,786a42d3b893168f,false] 1 --- [hystrix-test1-2] demo1.demo1.TestRest                     : 我收到了其他服务调用\n",
 "stream": "stdout",
 "time": "2018-11-16T01:24:30.37454385Z"
}

docker日志记录位置默认(centos7)为:

/var/lib/docker/containers

这个目录下面就是以各个容器命名的文件夹,文件夹下面就是日志如下图:

​​​

那这个时候我们针对每个容器进行参数设置就可以了,设置参数如下示例(这里只给出docker swarm集群的一个语句,单机可以看docker官网):

sudo docker service update --log-driver json-file --log-opt max-size=1m --log-opt max-file=3 pbblyrmsof5t

--log-driver 为日志驱动类型

--log-opt 为日志驱动参数,可以是多个具体可以查看docker官方文档(https://docs.docker-cn.com/engine/admin/logging/json-file/#usage

 --log-opt max-size=1m  设置日志文件每个大小
 --log-opt max-file=3 设置日志文件最多几个

这样我们就可以设置filebeat进行目录扫描然后传输到ES(elasticsearch)搜索因引擎中。

不过很遗憾有个潜在的问题,这个参数里面没有按时间进行滚动删除日志文件的策略,所以上面的数字要设计好,以免还没有吧日志传输出去就被删掉的情况。

下面是所有配置参数(也可官方查看):

这个方案有一个麻烦的问题,每个文件夹代表一个容器,如果要区分索引的话就需要设置,或解析日志,多个容器副本在多个宿主机上运行,需要拿到对应的服务名称等关键字段。

如果大锅烩或一起全部收集可能会造成日志混乱,搜索排除条件增多,性能不佳等(ES服务器配置牛逼除外)

docker容器日志收集方案(方案一 filebeat+本地日志收集)的更多相关文章

  1. Docker容器内Mysql大小写敏感方案解决

    Docker容器内Mysql大小写敏感方案解决 一.(lower_case_table_names)参数说明 二.Docker 部署 MySql 并修改为大小写不敏感 2.1直接在Docker启动的时 ...

  2. docker容器下tomcat 不向catalina.out输出日志解决以及支持中文字符集

    docker容器下tomcat 不向catalina.out输出日志解决 去掉 & 符号,直接 使用 ENTRYPOINT ["/data/tomcat/bin/startup.sh ...

  3. docker容器日志收集方案汇总评价总结

    docker日志收集方案有太多,下面截图罗列docker官方给的日志收集方案(详细请转docker官方文档).很多方案都不适合我们下面的系列文章没有说. 经过以下5篇博客的叙述简单说下docker容器 ...

  4. Docker容器日志清理方案

    Docker容器在运行过程中会产生很多日志,久而久之,磁盘空间就被占满了,以下分享docker容器日志清理的几种方法 删除日志 在linux上,容器日志一般存放在 /var/lib/docker/co ...

  5. docker容器日志查看

    日志分两类,一类是 Docker 引擎日志:另一类是 容器日志. Docker 引擎日志 Docker 引擎日志 一般是交给了 Upstart(Ubuntu 14.04) 或者 systemd (Ce ...

  6. 实时查看docker容器日志

    实时查看docker容器日志 $ sudo docker logs -f -t --tail 行数 容器名 例:实时查看docker容器名为s12的最后10行日志 $ sudo docker logs ...

  7. 通过Filebeat把日志传入到Elasticsearch

    学习的地方:配置文件中预先处理字段数据的用法 通过Filebeat把日志传入到Elasticsearch Elastic Stack被称之为ELK (Elasticsearch,Logstash an ...

  8. docker容器修改时区(java应用log信息与标准容器时间有八个小时时间差)

    在docker容器中运行的java应用打出的日志时间和通过date -R方式获取的容器标准时间有八个小时时间差- 因为docker容器的原生时区为0时区,为了和国内时区保持一致,需要把容器时区调为东八 ...

  9. docker容器启动几分钟之后自动退出

    2018-11-06 问题: docker容器启动几分钟之后自动退出 log日志报错 WARNING: overlay2: the backing xfs filesystem is formatte ...

随机推荐

  1. WARNING: 'aclocal-1.14' is missing on your system.

    源码安装zabbix agent时进行到make install时报如下错误: WARNING: 'aclocal-1.14' is missing on your system. You shoul ...

  2. 并发编程(六)——AbstractQueuedSynchronizer 之 Condition 源码分析

    我们接着上一篇文章继续,本文讲讲解ReentrantLock 公平锁和非公平锁的区别,深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 公平锁和非公 ...

  3. MongoDB的安全写入GetLastError

    这次聊聊业务中经常出现的重试现象,可能很多运维都被开发莫名其妙的艾特然后让查一查业务中出现失败的情况,很不巧刚接手MongoDB的运维就碰到了一个案例. 前段时间与业务开发讨论过某业务服务的超时重试问 ...

  4. 【Java基础】【01初识Java】

    01.01_计算机基础知识(计算机概述)(了解) A:什么是计算机?计算机在生活中的应用举例 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理海量数据的现代 ...

  5. JsChart组件使用

    JsChart是什么? JSChart能够在网页上生成图标,常用于统计信息,十分好用的一个JS组件. 使用JsChart 一.导入jscharts.js 二.编写jscharts.jsp测试页面 下载 ...

  6. leetcode — sum-root-to-leaf-numbers

    import java.util.Stack; /** * * Source : https://oj.leetcode.com/problems/sum-root-to-leaf-numbers/ ...

  7. javascript基础修炼(9)——MVVM中双向数据绑定的基本原理

    开发者的javascript造诣取决于对[动态]和[异步]这两个词的理解水平. 一. 概述 1.1 MVVM模型 MVVM模型是前端单页面应用中非常重要的模型之一,也是Single Page Appl ...

  8. php 爬虫框架

    发现两款不错的爬虫框架,极力推荐下: phpspider 一款优秀的PHP开发蜘蛛爬虫 官方下载地址:https://github.com/owner888/phpspider 官方开发手册:http ...

  9. STM32-FreeRTOS快速学习之总结1

    1. 基础知识注意:在RTOS中是优先值越高则优先级越高(和ucos/linux的相反) 在移植的时候,主要裁剪FreeRTOS/Source/portable文件夹,该文件夹用来针对不同MCU做的一 ...

  10. Python re 模块

    Python re 模块 TOC 介绍 作用 正则表达式语法 贪婪和非贪婪 普通字符和特殊字符 分组(比较重要) re modul level 方法 正则表达式对象 匹配对象 常用例子 注意事项 Ja ...