前面的 ELK 中我们是用 Filebeat 收集 Docker 容器的日志,利用的是 Docker 默认的 logging driver json-file,本节我们将使用 fluentd 来收集容器的日志。

Fluentd 是一个开源的数据收集器,它目前有超过 500 种的 plugin,可以连接各种数据源和数据输出组件。在接下来的实践中,Fluentd 会负责收集容器日志,然后发送给 Elasticsearch。日志处理流程如下:

这里我们用 Filebeat 将 Fluentd 收集到的日志转发给 Elasticsearch。这当然不是唯一的方案,Fluentd 有一个 plugin fluent-plugin-elasticsearch 可以直接将日志发送给 Elasticsearch。条条道路通罗马,开源世界给予了我们多种可能性,可以根据需要选择合适的方案。

安装 Fluentd

同样的,最高效的实践方式是运行一个 fluentd 容器。

docker run -d -p 24224:24224 -p 24224:24224/udp -v /data:/fluentd/log fluent/fluentd

fluentd 会在 TCP/UDP 端口 24224 上接收日志数据,日志将保存在 Host 的 /data 目录中。

重新配置 Filebeat

编辑 Filebeat 的配置文件 /etc/filebeat/filebeat.yml,将 /data 添加到监控路径中。

重启 Filebeat。

systemctl restart filebeat.service

监控容器日志

启动测试容器。

docker run -d \
--log-driver=fluentd \
--log-opt fluentd-address=localhost:24224 \
--log-opt tag="log-test-container-A" \
busybox sh -c 'while true; do echo "This is a log message from container A"; sleep 10; done;'

docker run -d \
--log-driver=fluentd \
--log-opt fluentd-address=localhost:24224 \
--log-opt tag="log-test-container-B" \
busybox sh -c 'while true; do echo "This is a log message from container B"; sleep 10; done;'

--log-driver=fluentd 告诉 Docker 使用 Fluentd 的 logging driver。

--log-opt fluentd-address=localhost:24224 将容器日志发送到 Fluentd 的数据接收端口。

--log-opt tag="log-test-container-A" 和 --log-opt tag="log-test-container-B" 在日志中添加一个可选的 tag,用于区分不同的容器。

容器启动后,Kibana 很快就能够查询到容器的日志。

Fluentd 咱们就讨论到这里,下一节开始学习 Graylog。

书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html

2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html

本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1979811

万能日志数据收集器 Fluentd - 每天5分钟玩转 Docker 容器技术(91)相关推荐

  1. Docker 如何支持多种日志方案?- 每天5分钟玩转 Docker 容器技术(88)

    将容器日志发送到 STDOUT 和 STDERR 是 Docker 的默认日志行为.实际上,Docker 提供了多种日志机制帮助用户从运行的容器中提取日志信息.这些机制被称作 logging driv ...

  2. Kubernetes 集群日志管理 - 每天5分钟玩转 Docker 容器技术(180)

    Kubernetes 开发了一个 Elasticsearch 附加组件来实现集群的日志管理.这是一个 Elasticsearch.Fluentd 和 Kibana 的组合.Elasticsearch ...

  3. 如何用 Graylog 管理日志?- 每天5分钟玩转 Docker 容器技术(93)

    上一节已经部署好了 Graylog,现在学习如何用它来管理日志. 首先启动测试容器. docker run -d \ --log-driver=gelf \ --log-opt gelf-addres ...

  4. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)

    高效的监控和日志管理对保持生产系统持续稳定地运行以及排查问题至关重要. 在微服务架构中,由于容器的数量众多以及快速变化的特性使得记录日志和监控变得越来越重要.考虑到容器短暂和不固定的生命周期,当我们需 ...

  5. Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

    service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一 ...

  6. 验证 Swarm 数据持久性 - 每天5分钟玩转 Docker 容器技术(104)

    上一节我们成功将 Rex-Ray Volume 挂载到了 Service.本节验证 Failover 时,数据不会丢失. Scale Up 增加一个副本: docker service update ...

  7. Docker容器技术 |镜像原理 |数据卷 |数据卷容器

    文章目录 一.Docker镜像介绍 二.镜像的commit操作补充 三.Docker数据卷 数据卷的理念:持久化+数据共享 方式1:直接添加数据卷 方式2:使用DockerFile添加数据卷 四.Do ...

  8. 数据收集之Fluentd

    Fluentd Fluentd是一个完全免费且开源的日志收集系统,性能敏感的部分用C语言编写,插件部分用Ruby编写,500多种插件,只需很少的系统资源即可轻松实现"Log Everythi ...

  9. 独辟蹊径做爬虫,使用Jquery+Chrome Extension,让浏览器成为你的数据收集器 公众号文章自动离线

    本文更新中,敬请期待 本文阅读条件: 基本的Python, javascript知识,希望你了解一点点爬虫知识,大神可无视. 写在最前: 现在使用爬虫技术有较大法律风险,务必注意使用场景,本文仅供学习 ...

最新文章

  1. linux下串口通信程序,关于Linux下串口通信的一点心得
  2. micropython函数库下载_Python microfs包_程序模块 - PyPI - Python中文网
  3. boost::geometry::num_geometries用法的测试程序
  4. 深入理解javascript原型和闭包(18)——补充:上下文环境和作用域的关系
  5. Spring+Quartz实现定时任务
  6. 百度地图服务器不显示本地运行,百度地图定位成功,但地图不显示
  7. SecondaryNamenode配置与NameNode故障恢复
  8. 产品体系建模工具软件
  9. 《你的灯亮着吗》开始解决问题前,得先知道“真问题”是什么
  10. linux网络编程常用头文件总结
  11. 46家中外知名企业面试题目
  12. html css 悬浮切换效果,CSS3悬浮动画效果_html/css_WEB-ITnose
  13. X Normal使用方法
  14. K8S 之 Pod定义梳理
  15. accept文件上传类型
  16. WPF中CefSharp的使用(在WPF中使用快乐的使用chrome)
  17. Helios Ethereum Client for Wallets and Dapp
  18. 什么是成本:(一)支出、费用及成本的关系
  19. CC0与商业IP:哪个更好?
  20. 高质量AI c++工程师课程~~强推,希望你少走弯路

热门文章

  1. maven-dependency-plugin (goals copy-dependencies, unpack) is not support解决办法
  2. linux下图形远程桌面
  3. php+fpm+apache
  4. Oracle外键级联删除和级联更新
  5. 聊聊Spring Data Auditable接口的变化
  6. 存储网络与存储系统架构分析
  7. 寻路之 A* 搜寻算法
  8. python - easy_install的安装和使用
  9. 9个心理学研究,让你学习更高效
  10. 微信支付v2开发(7) 告警通知