ASP.NET Core分布式日志系统ELK实战演练

时间:2023-12-15 17:27:08

一、ELK简介

 ELK是Elasticsearch、Logstash和Kibana首字母的缩写。这三者均是开源软件,这三套开源工具组合起来形成了一套强大的集中式日志管理平台。

•  Elasticsearch

分布式搜索和分析引擎。具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。

•  Logstash

日志收集器。搜集各种数据源,并对数据进行过滤、分析、格式化等操作,然后存储到 Elasticsearch。

•  Kibana

数据分析和可视化平台。与 Elasticsearch 配合使用,对其中数据进行搜索、分析、图表展示。

•  Filebeat

一个轻量级开源日志文件数据搜集器,Filebeat 读取文件内容,发送到 Logstash 进行解析后进入 Elasticsearch,或直接发送到 Elasticsearch 进行集中式存储和分析。

ELK + Filebeat 搭建日志系统 - 简书

 https://www.jianshu.com/p/4c853f80892b

二、ELK原理介绍

基于ELK的使用方式,Logstash 作为日志搜集器,Elasticsearch 进行日志存储,Kibana作为日志呈现。

三、ELK架构介绍

基于ELK的使用方式,Logstash 作为日志搜集器,Elasticsearch 进行日志存储,Kibana作为日志呈现,大致以下几种架构。

•  架构一

Logstash 多个的原因是考虑到程序是分布式架构的情况,每台机器都需要部署一个 Logstash,如果确实是单服务器的情况部署一个 Logstash 即可。

前面提到 Logstash 会对数据进行分析、过滤、格式化等操作,这一系列操作对服务器的 CPU 和内存资源的消耗都是比较高的,所以这种架构会影响每台服务器的性能,所以并不推荐采用。

•  架构二

相比于架构一,增加了一个MQ 和 Logstash, Logstash 的输出和输入支持 Kafka、Redis、RabbitMQ 等常见消息队列, MQ 前的 Logstash 只作为日志收集和传输,并不解析和过滤,先将日志加入队列,由 MQ 后面的

Logstash 继续解析和过滤,这样就不至于每台服务器消耗资源都很多。

•  架构三

这种架构是基于架构二简化来的,实际在使用过程中也是可以采取的,日志直接进入 MQ,Logstash 消费 MQ 数据即可。

四、ELK简易环境安装

ES和kibana的版本要一致,不然的话,可能就一步小心的话就会出现掉坑了。

五、分布式日志解决方案ELK在ASP.NET Core中运用

六、总结

6.1、使用ELK必要性(解决运维痛点)

•  开发人员不能登录线上服务器查看详细日志

•  各个系统都有日志,日至数据分散难以查找

•  日志数据量大,查询速度慢,或者数据不够实时

作者:跟着阿笨一起玩NET

链接:https://www.jianshu.com/p/8f1364103a8d

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。