分布式日志系统

JerryXia 发表于 , 阅读 (793)

我们采用了一个经典的组合 logstash + elasticsearch + kibana。

日志系统整体架构图

说明:

多个独立的agent(Shipper)负责收集各应用不同来源的数据,中心agent(Indexer)负责汇总和分析数据,在中心agent前的Broker(使用redis实现)作为缓冲区,中心LogStash后的ElasticSearch用于存储和搜索数据,前端的Kibana提供丰富的图表展示。

  • Shipper表示日志发送者,在应用中使用NLog组件来发送日志数据;
  • Broker作为远程agent与中心agent之间的缓冲区,使用redis实现,一是可以提高系统的性能,二是可以提高系统的可靠性,当中心agent提取数据失败时,数据保存在redis中,而不至于丢失;
  • 中心agent也是LogStash,从Broker中提取数据,可以执行相关的分析和处理(Filter);
  • ElasticSearch用于存储最终的数据,并提供搜索功能;
  • Kibana提供一个简单、丰富的web界面,数据来自于ElasticSearch,支持各种查询、统计和展示;

在搭建完成之后要做的:

  1. 使用LogStash的Filter对日志数据进行过滤和分析;
  2. 使用Redis的Cluster模式替换当前的多点单机模式;
  3. 在elasticsearch中对数据进行高级的分析和查询;
  4. 熟悉Kibana的展示组件以及查询语法;

添加新评论