上一节已经部署了容器化的 ELK,本节讨论如何将日志导入 ELK 并进行图形化展示。
几乎所有的软件和应用都有自己的日志文件,容器也不例外。前面我们已经知道 Docker 会将容器日志记录到/var/lib/docker/containers/<contariner ID>/<contariner ID>-json.log
,那么只要我们能够将此文件发送给 ELK 就可以实现日志管理。
要实现这一步其实不难,因为 ELK 提供了一个配套小工具 Filebeat,它能将指定路径下的日志文件转发给 ELK。同时 Filebeat 很聪明,它会监控日志文件,当日志更新时,Filebeat 会将新的内容发送给 ELK。
下面在 Docker Host 中安装和配置 Filebeat。
curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.4.0-amd64.debsudo dpkg -i filebeat-5.4.0-amd64.deb
当你看到这篇文章时,Filebeat 可能已经有了更新的版本,请参考最新的安装文档https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-installation.html
Filebeat 的配置文件为/etc/filebeat/filebeat.yml
,我们需要告诉 Filebeat 两件事:
首先回答第一个问题。
在paths
中我们配置了两条路径:
/var/lib/docker/containers/*/*.log
是所有容器的日志文件。/var/log/syslog
是 Host 操作系统的 syslog。接下来告诉 Filebeat 将这些日志发送给 ELK。
Filebeat 可以将日志发送给 Elasticsearch 进行索引和保存;也可以先发送给 Logstash 进行分析和过滤,然后由 Logstash 转发给 Elasticsearch。
为了不引入过多的复杂性,我们这里将日志直接发送给 Elasticsearch。
如果要发送给 Logstash,可参考后半部分的注释。
当前的日志处理流程如下图所示:
Filebeat 安装时已经注册为 systemd 的服务,可以直接启动服务。
systemctl start filebeat.service
Filebeat 启动后,正常情况下会将监控的日志发送给 Elasticsearch。刷新 Elasticsearch 的 JSON 接口 http://[Host IP]:9200/_search?pretty 进行确认。
这次我们能够看到filebeat-*
的index
,以及 Filebeat 监控的那两个路径下的日志。
好,Elasticsearch 已经创建了日志的索引并保存起来,接下来是在 Kibana 中展示日志。
首先需要配置一个index pattern
,即告诉 Kibana 查询和分析 Elasticsearch 中的哪些日志。
指定index pattern
为filebeat-*
,这与 Elasticsearch 中的index
一致。
Time-field name
选择@timestamp
。
点击Create
创建index pattern
。
点击 Kibana 左侧Discover
菜单,便可看到容器和 syslog 日志信息。
下面我们启动一个新的容器,该容器将向控制台打印信息,模拟日志输出。
docker run busybox sh -c 'while true; do echo "This is a log message from container busybox!"; sleep 10; done;'
刷新 Kibana 页面或者点击右上角图标,马上就能看到 busybox 的日志。
Kibana 也提供了强大的查询功能,比如输入关键字busybox
能搜索出所有匹配的日志条目。
我们这里只是简单地将日志导入 ELK 并朴素地显示出来,实际上 ELK 还可以对日志进行归类汇总、分析聚合、创建炫酷的 Dashboard 等,可以挖掘的内容很多,玩法很丰富。由于这个教程的重点是容器,这里就不过多展开。下面这张图可以感受一下 ELK 的能力,更多的功能留给大家自己去探索。
ELK 咱们就讨论到这里,下一节学习 Fluentd。
书籍:
1.《每天5分钟玩转Docker容器技术》
https://item.jd.com/16936307278.html
2.《每天5分钟玩转OpenStack》
https://item.jd.com/12086376.html
Original url: Access
Created at: 2019-04-25 14:27:56
Category: default
Tags: none
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论