Upgrade to Pro — share decks privately, control downloads, hide ads and more …

EKF日志分析平台架构方案实践

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 EKF日志分析平台架构方案实践

Avatar for 成臣 Chengchen

成臣 Chengchen

May 10, 2021

More Decks by 成臣 Chengchen

Other Decks in Technology

Transcript

  1. &'()*+,-./ 日常工作中会面临很多问题,问题怎么进行处理?(三查:查日志,查监控,查代码) - 通过工作经验,迅速判断问题出在哪。 - 通过日志 - 系统日志:/var/log 目录下的文件 -

    程序日志: 代码日志(项目代码输出的日志) - 服务应用日志 - Nginx,HAproxy - Tomcat,php-fpm - redis,mysql,mongo - RabbitMQ,Kafka - HDFS,NFS等等
  2. &'()*+,-./ 基于上述思路,市场上出现了许多产品或方案 - 简单的有 Rsyslog,Syslog-ng - 商业化的 Splunk(The Data-to-EverythingTM Platform,

    Powering Security, IT and DevOps) - 开源的 - FaceBook 公司的 Scribe - Apache 的 Chukwa - Linkedin 的 Kafka - Cloudera 的 Fluentd - ELK Tips:Splunk是一款非常优秀的产品,但是它是商业产品,价格昂贵,让人望而却步.
  3. 1234567(89 Tips: - Fluentd就是把通常的日志采集-缓存-分发-存储流程提炼出来,用户只需要考虑业务数据,至于数据的传输、 容错等过程细节都交给Fluentd来做。 - 为了统一处理各种日志,Fluentd把JSON作为内部数据格式,流入和流出的数据都是JSON格式。由于JSON 是一种通用的跨平台的数据格式,这给现有系统的改造带来很大便利。 - 由于对日志业务流程做了抽象,为了能支持各种日志,Fluentd将各采集分发步骤插件化,通过在各个步骤接

    入合适的插件来处理对应的业务数据。 - Fluentd内置了常用的插件,比如in_tail、in_http、out_file、out_mongo等,开源社区也贡献了更丰富的插 件。通过组合各种插件,我们能够轻松搭建起自己的日志采集系统。 - Fluentd使用C作为开发语言,其插件系统的开发使用到了Ruby。C保证了系统的高效,Ruby给用户提供了一 个灵活使用插件的途径。
  4. ;<*&'=>?@A96BCDE 一、最初的日志架构ELK 在右图架构中,只有一个 Logstash、Elasticsearch 和 Kibana 实例。Logstash 通过输入插件从多种 数据源(比如日志文件、标准输入 Stdin

    等)获取数据,再经过滤插件加工数据,然后经Elasticsearch 输出插件输出到 Elasticsearch,通过 Kibana 展示。 这种架构需要在各个服务器上部署 Logstash, 且比较消耗 CPU 和内存资源,所以比较适合计算资 源丰富的服务器,否则容易造成服务器性能下降,甚 至可能导致无法正常工作。