容器日志知多少 (2) 开源日志管理方案 ELK/EFK

  • 时间:
  • 浏览:1
  • 来源:大发11选5_大发11选5官网

  加进监控配置以前,不不会 重新restart一下filebeat:

曹林华,《从ELK到EFK的演进》

  此外,大伙还不不会 修改Filebeat的配置文件,将/edc/fluentd/log加入监控目录下:

  检查Filebeat启动情况报告:

  仔细看看细节,大伙关注一下message字段:

  或者,整个日志分派与除理流程变为下图,大伙用 Filebeat 将 Fluentd 分派到的日志转发给 Elasticsearch。

   上图展示了在Docker环境下,另4个典型的ELK方案下的日志分派除理流程:

本篇已加入《.NET Core on K8S学习实践系列文章索引》,不会 点击查看更多容器化技术相关系列文章。上一篇《你不不会 知道的容器日志(1)》中介绍了Docker自带的logs子命令以及其Logging driver,本篇或者介绍另4个流行的开源日志管理方案ELK。

  Fluentd是另4个开源的数据分派器,专为除理数据流设计,使用JSON作为数据格式。它采用了插件式的架构,具有高可扩展性高可用性,同去还实现了高可靠的信息转发。Fluentd也是云原生基金会 (CNCF) 的成员项目之一,遵循Apache 2 License协议,其github地址为:https://github.com/fluent/fluentd/。Fluentd与Logstash相比,比占用内存更少、社区更活跃,两者的对比不会 参考这篇文章《Fluentd vs Logstash》。

  这时再次进入Kibana中查看日志信息,便不会 通过以前设置的tag信息筛选到以前加进的容器的日志信息了:

zpei0411,《Logstash beats系列 & Fluentd》

  这里指定paths:/var/lib/docker/containers/_/_.log,另外不不会 注意的是将 enabled 设为 true。

  _Note:_或者要发到Logstash,请使用后边这段配置,将其收回注释进行相关配置即可:

  ELK 是Elastic公司提供的一套详细的日志分派以及展示的除理方案,是另4个产品的首字母缩写,分别是ElasticSearchLogstashKibana

  _Note:_或者启动过程中发现这人错误,原困ELK容器无法启动,不会 参考《Docker启动ElasticSearch报错》及《ElasticSearch启动常见错误》一文。或者你的主机内存低于4G,建议增加配置设置ES内存使用大小,以免启动不了。同类下面增加的配置,限制ES内存使用最大为1G:

CloudMan,《每天5分钟玩转Docker容器技术》

  本次实验大伙采用Docker最好的措施 部署另4个最小规模的ELK运行环境,当然,实际环境中大伙或许不不会 考虑高可用和负载均衡。

  不会 想看 ,大伙重点要关注的是message,或者大伙可是我会 筛选一下只看这人字段的信息:

   当然,大伙可是我会 使用Fluentd的插件(fluent-plugin-elasticsearch)直接将日志发送给 Elasticsearch,不会 根据我本人的不不会 替换掉Filebeat,从而形成Fluentd => ElasticSearch => Kibana 的架构,也称作EFK。

  这时大伙单击Kibana左侧的Discover菜单,即可想看 容器的日志信息啦:

   这里大伙不不会 告诉Filebeat要监控有哪些日志文件 及 将日志发送到哪里去,或者大伙不不会 修改一下Filebeat的配置:

一杯甜酒,《ELK学习总结》

  或者Filebeat在安装时或者注册为systemd的服务,可是我只不不会 直接启动即可:

  运行完成以前就不会 先访问一下 http://[Your-HostIP]:53001 看看Kibana的效果:  

Kibana Index Patterns界面

  这里指定直接发送到ElasticSearch,配置一下ES的接口地址即可。

于老三,《快速搭建ELK日志分析系统》

ElasticSearch API

  注:或者其富含了整个ELK方案,可是我不不会 耐心等待英文一会。

  这里大伙通过容器来运行另4个Fluentd分派器:

  通过访问ElasticSearch API不会 发现以下变化:ES建立了以filebeat-开头的索引,大伙还不不不会 想看 其来源及具体的message。

  首先拉取一下sebp/elk这人集成镜像,这里选择的tag版本是640(最新版本或者是7XX了):

  通过以下命令使用sebp/elk这人集成镜像启动运行ELK:

  这里通过指定容器的log-driver,以及为每个容器设立了tag,方便大伙后边验证查看日志。

  或者Logstash在数据分派上并没了色,或者作为Agent,其性能并不达标。基于此,Elastic发布了beats系列轻量级分派组件。

  这里可是我朴素的展示了导入ELK的日志信息,实际上ELK还有可是我很充沛的玩法,同类分析聚合、炫酷Dashboard等等。笔者在这里也是初步使用,就介绍到这里啦。

  为了验证效果,这里大伙Run另4个容器,并分别制定其log-dirver为fluentd:

  默认Fluentd会使用24224端口,其日志会分派在大伙映射的路径下。

  此外,Kibana还提供了搜索关键词的日志功能,同类这里我关注一下日志中富含unhandled exception(未除理异常)的日志信息:

  当然,目前没了任何不会 显示的ES的索引和数据,再访问一下http://[Your-HostIP]:93000 看看ElasticSearch的API接口是否可用:

  本文从ELK的基本组成入手,介绍了ELK的基本除理流程,以及从0时候时候刚开始搭建了另4个ELK环境,演示了基于Filebeat分派容器日志信息的案例。或者,通过引入Fluentd这人开源数据分派器,演示了怎样基于EFK的日志分派案例。当然,ELK/EFK有可是我的知识点,笔者也还可是我初步使用,希望未来不不不会 分享更多的实践总结。

  这里大伙要实践的Beat组件是Filebeat,Filebeat是构建于beats之上的,应用于日志分派场景的实现,用来替代 Logstash Forwarder 的下一代 Logstash 分派器,是为了变慢速稳定轻量低耗地进行分派工作,它不会 很方便地与 Logstash 还有直接与 Elasticsearch 进行对接。

  本次实验直接使用Filebeat作为Agent,它会分派大伙在第一篇《Docker logs & logging driver》中介绍的json-file的log文件中的记录变动,并直接将日志发给ElasticSearch进行索引和保存,其除理流程变为下图,你可是我会 认为它不会 称作 EFK。

  接下来大伙就要告诉Kibana,要查询和分析ElasticSearch中的有哪些日志,或者不不会 配置另4个Index Pattern。从Filebeat中大伙知道Index是filebeat-timestamp这人格式,或者这里大伙定义Index Pattern为 filebeat-*

  这里大伙通过rpm的最好的措施 下载Filebeat,注意这里下载和大伙ELK对应的版本(ELK是6.4.0,这里也是下载6.4.0,除理出现错误):

  要修改的内容为:

  前面大伙采用的是Filebeat分派Docker的日志信息,基于Docker默认的json-file这人logging driver,这里大伙改用Fluentd这人开源项目来替换json-file分派容器的日志。

  单击Create index pattern按钮,即可完成配置。

  点击Next Step,这里大伙选择Time Filter field name为@timestamp:

  Kibana管理界面

  (1)监控有哪些日志?

  (2)将日志发到哪里?