IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ElasticSearch+Logstash+Kibana -> 正文阅读

[大数据]ElasticSearch+Logstash+Kibana

第一节 ELK介绍?

第二节 Windows下环境准备?

第三节 单机版实战操作—spring boot整合 ELK?

第四节 单机版实战操作—Mysql整合ELK?

第五节 单机版实战操作—本地日志文件整合ELK?

第一节 ELK介绍

日志是程序产生的,遵循一定格式(通常包含时间戳)的文本数据通常由服务器生成,输出到不同的文件中,一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。通常当系统发生故障时,工程师需要登录到各个服务器上,使用 grep / sed / awk 等 Linux 脚本工具去日志里查找故障原因。在没有日志系统的情况下,首先需要定位处理请求的服务器,如果这台服务器部署了多个实例,则需要去每个应用实例的日志目录下去找日志文件。每个应用实例还会设置日志滚动策略(如:每天生成一个文件),还有日志压缩归档策略等。

这样一系列流程下来,对于排查故障以及及时找到故障原因,造成了比较大的麻烦。因此,把这些日志集中管理,并提供集中检索功能,不仅可以提高诊断的效率,同时对系统情况有个全面的理解,避免事后救火的被动。日志数据在以下几方面具有非常重要的作用:

1.数据查找:通过检索日志信息,定位相应的 bug ,找出解决方案

2.服务诊断:通过对日志信息进行统计、分析,了解服务器的负荷和服务运行状态

3.数据分析:可以做进一步的数据分析,比如根据请求中的课程 id ,找出 TOP10 用户感兴趣课程。

业界通用的日志数据管理解决方案ELK?它主要包括 Elasticsearch 、 Logstash 和 Kibana 三个系统。

Logstash?:数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。

Kibana?:可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。

Elasticsearch?:分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点。可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建自己的搜索引擎。

Filebeat?:轻量级数据收集引擎。基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 shipper 端的第一选择

单机版架构

这种架构下把 Logstash 实例与 Elasticsearch 实例直接相连。Logstash 实例直接通过 Input 插件读取数据源数据(比如 Java 日志, Nginx 日志等),经过 Filter 插件进行过滤日志,最后通过 Output 插件将数据写入到 ElasticSearch 实例中。

集群版架构

架构首先由Logstash分布于各个节点上搜集相关日志、数据,并经过分析、过滤后发送给远端服务器上的Elasticsearch进行存储Elasticsearch将数据以分片的形式压缩存储并提供多种API供用户查询,操作。用户亦可以更直观的通过配置Kibana Web Portal方便的对日志查询,并根据数据生成报表

优点搭建简单,易于上手。

缺点Logstash耗资源较大,运行占用CPU和内存高。另外没有消息队列缓存,存在数据丢失隐患。

消息队列版架构

引入了消息队列机制,位于各个节点上的Logstash Agent先将数据/日志传递给Kafka(或者Redis),并将队列中消息或数据间接传递给Logstash,Logstash过滤、分析后将数据传递给Elasticsearch存储。最后由Kibana将日志和数据呈现给用户。因为引入了Kafka(或者Redis),所以即使远端Logstash server因故障停止运行,数据将会先被存储下来,从而避免数据丢失。

优点:适合于较大集群的解决方案,引入了消息队列机制,均衡了网络传输,从而降低了网络闭塞尤其是丢失数据的可能性

缺点:由于Logstash中心节点和Elasticsearch的负荷会比较重,需要配置集群模式,且依然存在Logstash占用系统资源过多的问题。

LogStash-forward版架构

首先,Logstash-forwarder将日志数据搜集并统一发送给主节点上的Logstash,Logstash分析、过滤日志数据后发送至Elasticsearch存储,并由Kibana最终将数据呈现给用户。

这种架构解决了Logstash在各计算机点上占用系统资源较高的问题。经测试得出,相比Logstash,Logstash-forwarder所占用系统CPU和MEM几乎可以忽略不计。另外,Logstash-forwarder和Logstash间的通信是通过SSL加密传输,起到了安全保障。如果是较大集群,可以配置logstash集群和Elasticsearch集群,引入High Available机制,提高数据传输和存储安全。但在此种架构下Logstash-forwarder和Logstash间通信必须由SSL加密传输,这样便有了一定的限制性

Beats版架构

将Logstash-forwarder替换为Beats。经测试,Beats满负荷状态所耗系统资源和Logstash-forwarder相当,但其扩展性和灵活性有很大提高。Beats platform目前包含有Packagebeat、Topbeat和Filebeat三个产品,均为Apache 2.0 License。同时用户可根据需要进行二次开发。

不管采用上面哪种ELK架构,都包含了其核心组件,即:Logstash、Elasticsearch 和Kibana。当然这三个组件并非不能被替换,只是就性能和功能性而言,这三个组件已经配合的很完美,是密不可分的。各系统运维中究竟该采用哪种架构,可根据现实情况和架构优劣而定。

  • Windows下环境准备

软件

版本

下载地址

Java

1.8及以上

Elasticsearch

7.5.2

https://www.elastic.co/cn/downloads/past-releases#elasticsearch

Elasticsearch-head-master

https://github.com/zt1115798334/elasticsearch-head-master

Logstash

7.5.2

https://www.elastic.co/cn/downloads/past-releases#logstash

kibana

7.5.2

https://www.elastic.co/cn/downloads/past-releases#kibana

filebeat

7.5.2

https://www.elastic.co/cn/downloads/past-releases#filebeat

安装参考教程:Elasticsearch7.x(二)——详细的记录一个简易的 Spring boot 2.x 集成 ELK的demo_笑里笑外~的博客-CSDN博客

Filebeat 教程 - 梯子教程网

  • 单机版实战操作—spring boot整合 ELK

?启动Elasticsearch服务

  1. 进入Elasticsearch安装目录,双击bin目录下的elasticsearch.bat
  2. 显示started则成功启动

  3. 可在浏览器地址栏输入127.0.0.1:9200查看

启动Elasticsearch-head服务

  1. 进入Elasticsearch-head文件目录,进入cmd窗口,输入 npm ?start即可启动

  1. 在浏览器地址栏输入127.0.0.1:9100查看

启动logstash服务

  1. 进入logstash安装目录下的bin目录,新建 logstash.conf,加入以下信息并保存

?

创建springboot项目

  1. 引入依赖

?

  1. 修改application.yml文件?
  2. 新建logback.xml

?

  1. 生成日志

?

  1. 查看数据?

?

  • 单机版实战操作—Mysql整合ELK

启动ElasticsearchElasticsearch-head服务同上节。

启动Logstash服务

  1. 进入logstash安装目录下的bin目录,新建 logstash_mysql.conf,加入以下信息并保存?
  2. 在bin目录下进入cmd窗口,输入 .\logstash -f .\logstash_mysql.conf,即可启动该服务
  3. 查看数据

?

?

  • 单机版实战操作—本地日志文件整合ELK

启动ElasticsearchElasticsearch-head服务同上节。

启动logstash服务

  1. 进入logstash安装目录的bin目录,新建 logstash_log.conf,加入以下信息并保存

?

  1. 在bin目录下进入cmd窗口,输入 .\logstash -f .\logstash_log.conf,即可启动该服务

启动filebeat服务

  1. 进入fileBeat文件目录,编辑filebeat.yml文件

转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消正在上传…重新上传取消转存失败重新上传取消

  1. 进入cmd控制,输入filebeat.exe运行该服务
  2. 查看数据

转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消正在上传…重新上传取消转存失败重新上传取消

转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消转存失败重新上传取消正在上传…重新上传取消转存失败重新上传取消

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:37:48  更:2022-03-24 00:40:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:31:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码