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

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

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

成臣 Chengchen

May 10, 2021
Tweet

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 和内存资源,所以比较适合计算资 源丰富的服务器,否则容易造成服务器性能下降,甚 至可能导致无法正常工作。