ELK之日志查询、收集与分析系统

项目由来

  (1)开发人员不能登录线上服务器查看详细日志,经过运维周转费时费力
  (2)日志数据分散在多个系统,难以查找与整合
  (3)日志数据量巨大,查询速度太慢,无法满足需求
  (4)无法全局掌控项目运行状况
  (5)日志数据查询不够实时
  (6)数据分析人员不会写代码,无法分析统计数据
  (7).........

框架里包含的组件

  Logstash+Elasticsearch+Kibana(ELK
  Logstash:监控,过滤,收集日志。
  Elasticsearch:存储日志,提供搜索功能。
  kibana:提供web界面,支持查询,统计,和图表展现。
  filebeat:轻量级的日志收集工具。
  很多公司都采用该架构构建分布式日志系统,包括新浪微博,freewheel,畅捷通等

  注意:在应用端收集日志时,建议用filebeat。

效果图

ELK之日志查询、收集与分析系统

ELK之日志查询、收集与分析系统

架构设计

  (1)使用filebeat
    架构设计1:filebeat(1.3)-->logstash(parse)-->es集群-->kibana--ngix
        缺点:如果logstash出问题会导致filebeat收集的数据丢失
    架构设计2:filebeat(1.3)-->logstash(parse)[loadbalance]-->es集群-->kibana--ngix
      filebeat和>logstash耦合性太高
    架构设计3filebeat(1.3)(3台)-->redis-->logstash(parse)-->es集群-->kibana--ngix(可选)  (我这里,目前为了学习,走这条线路)
      里面redis是一个单线程的实例,redis单线程每秒处理能力一般是10W次左右。
    架构设计4:filebeat(5.0)-->redis/kafka-->logstash(parse)-->es-->kibana--ngix
      filebeat(1.3)不支持输出到kafka,5.x版本中支持输出到kafka
  (2)不使用filebeat
      logstash-->kafka-->logstash(parse)-->es-->kibana--ngix
        里面kafka支持水平扩展,可以使用多分区,支持多线程并行执行。
        在应用端收集日志的话,logstash比较重量级,性能消耗比filebeat大
  (3)Filebeat用于日志收集和传输,相比Logstash更加轻量级和易部署,对系统资源开销更小。

后续贴图。

ELK实时日志分析平台环境部署--完整记录

上一篇:Java开源运行分析工具(转)


下一篇:luogu P1082 同余方程