基于Elasticsearch+Logstash+Kibana+Filebeat的日志收集分析及可视化

sudo rm /var/lib/dpkg/lock*

sudo dpkg --configure -a

apt update

tail -f /var/log/car.log

1.1、项目概述

海量的业务应用,也带来了海量的日志数据,给业务应用的运维带来了新的挑战。例如,我们常用的网约车应用,单个平台的日订单数量可以达到上亿条,产生各种类型的日志数据,像用户业务方面会产生交易日志、评价日志、投诉日志等;运营业务方面会产生工单日志、账单日志、用户操作日志等;支撑业务运行方面会产生系统日志、安全日志等等。

当系统发生故障,或者业务出现异常时,运维工程师需要登录到日志所在的服务器上,使用vim、sed、grep等工具进入日志文件中查找故障原因。在没有日志收集、分析、可视化工具的情况下,日志的查找,问题的分析、定位是一个非常繁琐的工作,尤其是目前使用虚拟机或容器实现业务应用的分布式部署,运维管理员需要深入到每一个虚拟机和容器中,进行日志的查找、分析和诊断,工作量和工作难度可想而知。
为解决这些问题,业界已经有了较多的成熟产品和解决方案,像简单的Syslog-ng、Rsyslog,已经商业化的Splunk,还有开源的Scribe、Fluent等等。

但是目前使用热度最高的还是ELKF的组合。ELKF是Elasticsearch、Logstash、Kibana和FileBeat的首字母简称,提供分布式的实时日志搜集和分析的监控,为运维人员提供数据查找、服务诊断、数据分析的一站式日志收集、查找、分析解决方案。

1.1.1、项目简介

首先介绍Elasticsearch、Kibana、Logstash和Filebeat的技术知识。其次,介绍了Elasticsearch、Kibana、Kafka、Logstash和Filebeat的安装部署方法,并演示了在两个节点上分别部署Elasticsearch、Kibana、Kafka、Logstash和Filebeat软件和依赖软件。最后,案例使用Python代码模拟网约车平台的日志数据,使用Filebeat收集日志数据,使用kafka将日志数据流转到Logstash中进行初步的数据过滤和清洗,使用ElasticSearch存储过滤后的日志数据,并且使用Kibana对日志数据从平台约车评价、地域约车、用户群体和网约车平台数字化运营等不同角度进行数据分析。实现了日志的统一收集、过滤、分析、展示的过程。
本项目适合初学者学习搭建ELKF架构以及该架构的工作流程,也适合运维工程师使用本章节提供的方法,解决生产环境中日志管理的问题。

1.1.2、项目适用对象

1.1.3、项目时间安排

1.1.4、项目环境要求

在这里插入图片描述g&pos_id=img-9fTMyybz-1705674811606)

1.1.5、项目架构及流程

1.1.6、项目技术知识

(1)ELK Stack

(2)Filebeat轻量型日志收集器

Filebeat隶属于Beats,是使用Go语言实现的轻量级日志收集器,也是Elastic stack里面的一员。FileBeat是一个没有任何依赖的二进制文件,且占用资源极少,重构了Logstash采集器源码,根据配置将对应位置的日志进行读取,并将它们发送到Logstash或Elasticsearch等。Filebeat可靠性强,能够保证日志至少会上报一次,如果出现中断,能够在恢复正常后,从中断前停止的位置继续开始,不错过任何检测信号。

Filebeat的工作流程如下图所示:当Filebeat启动时,它同时会启动一个或者多个查找器(prospector)用于检测指定目录或者文件。对于存在查找器的日志文件,FIlebeat 会启动收集进程(harvester)。每一个进程都能够为新内容读取单个日志文件,并将数据发送到后台处理程序(Spooler)中,后台处理程序负责将多个进程中的数据进行聚合,最后发送聚合的数据到指定的目的地。

在这里插入图片描述

(3)Logstash日志分析过滤工具

Logstash作为一款功能强大的数据处理工具,能够从许多不同的来源采集数据并转换数据,再将其发送到指定位置,不会受到格式或者复杂度的影响。

Logstash事件处理过程包括三个阶段:输入(Inputs)、过滤(Filters)、输出(Outputs)。在输入阶段,Logstash从数据源处采集数据,在过滤阶段根据要求对数据进行修改,在输出阶段把数据写入指定位置,通常用于日志分析过滤、应用日志、webserver日志、错误日志等。

(4)Elasticsearch分布式日志搜索引擎

Lucene是用于全文检索和搜寻的开源式库,提供了一个高性能、全功能的应用式接口,用来做全文搜索引擎。但Lucene使用时繁琐、复杂,于是出现了Elasticsearch,它基于Java语言编写,对Lucene 进行了一层封装,提供了RESTful web接口让全文检索变得简单。

Elasticsearch是面向文档的(document oriented),这意味着它可以存储整个对象或文档。然而它不仅仅是存储,还会索引每个文档的内容使之可以被搜索。能够对文档(并不是成行成列的数据)进行索引、搜索、排序和过滤操作。

(5)Kibana日志汇总、分析和搜索展示系统

(6)Kafka分布式消息系统

Kafka是一款高吞吐量的分布式发布、订阅消息引擎系统,是Apache基金会顶级开源项目之一,使用Scala和Java编程语言编写。Kafka可以实现不同系统之间消息传递,实现松耦合的异步数据处理。通俗来讲,就是A系统将消息发送给Kafka,B系统再从Kafka读取A系统发送的消息,Kafka从中起到一个消息传递的桥梁作用。Kafka两种运行模式,分别是:点对点传输和发布订阅传输。

1.2、项目环境部署

grok插件

grok插件是Logstash最重要的插件之一,用于非结构化数据解析为结构化和可查询的数据。即将一个key对应的一长串非结构化的value,转成多个结构化的key-value。

从数据分析的角度:非结构化数据不便于检索、统计、分析。

非结构化数据变成结构化数据后才有检索、统计、分析的价值。

mutate数据修改插件

提供了丰富的基础类型数据处理能力,可以重命名、删除、替换和修改事件中的字段。

mutate数据修改插件

常用的配置选项
add_field向事件添加新字段,也可以添加多个字段
remove_field从事件中删除任意字段
add_tag向事件中添加任意标签,在tag字段中添加一段自定义的内容,当tag字段中超过一个内容的时候会变成数组
remove_tag从事件中删除标签(如果存在)
convert将字段值转换为另一种数据结构
id向现场事件添加唯一的ID
lowercase将字符串字段转换为其小写形式
replace用新值替换字段
strip删除开头和结尾的空格
uppercase将字符串字段转换为其小写形式
update用新值更新现有字段
rename重命名事件中的字段
gsub通过正则表达式替换字段中匹配到的值
merge合并数组或hash事件
split通过指定的分隔符分割字段中的字符串为数组

multiline

java错误日志一般都是一条日志很多行的,会把堆栈信息打印出来,当经过logstash解析后,每一行都会当做一条记录存放在ES,那这种情况肯定是需要处理的。这里就需要使用multiline插件,对属于同一条日志的记录进行拼接。

(4)Elasticsearch分布式日志搜索引擎

提供了丰富的基础类型数据处理能力。可以重命名

在这里插入图片描述

Lucene是用于全文检索和搜寻的开源式库,提供了一个高性能、全功能的应用式接口,用来做全文搜索引擎。但Lucene使用时繁琐、复杂,于是出现了Elasticsearch,它基于Java语言编写,对Lucene 进行了一层封装,提供了RESTful web接口让全文检索变得简单。

Elasticsearch是面向文档的(document oriented),这意味着它可以存储整个对象或文档。然而它不仅仅是存储,还会索引每个文档的内容使之可以被搜索。能够对文档(并不是成行成列的数据)进行索引、搜索、排序和过滤操作。

(1)Index索引

(2)Type类型

(3)Filed字段

Filed字段相当于数据表的字段,将文档数据根据不同属性进行分类标识。

(4)Mapping映射

Mapping是对处理数据的方式和规则做一些限制,如某个字段的数据类型、默认值、分析器、是否被索引等等。通过建立映射,可以有效提高数据处理的性能,相当于为结构化数据表添加主键、外键的操作。

(5)Document文档

文档是能够被索引的基础信息单元,如一个产品文档、一个订单文档。文档为JSON格式,JSON是互联网数据交互格式。在一个index/type里面,可以存储任意多的文档。需要注意的是,虽然文档存在于一个索引中,必须赋予文档一个索引的type。插入索引库以文档为单位,类比与数据库中的一行数据。

(6)Cluster集群

集群是由一个或者多个节点组织在一起,一起持有数据并提供索引、搜索功能。一个集群的默认标识为“elasticsearch”,是唯一的名字标识。

(7)Node节点

ElasticSearch是分布式的架构,多个实例协同工作、存储数据、参与索引和检索。一个ElasticSearch的实例成为一个Node节点。虽然每台服务器能够运行多个ElasticSearch实例,但建议生产环境中一台服务器运行一个实例。

(8)Shards&Replicas分片和复制

一个索引能够存储远远超过单个结点硬件限制的数据量,这是因为Elasticsearch能够将索引划分成多份,称之为分片。创建索引时,可以指定分片的数量。每一分片也是一个独立的“索引”,可以将其置于集群中的任何节点上。

由于网络和云的环境,随时存在失败的可能性。例如,某个分片、节点突然处于离线状态或异常消失了,需要为分片创建一份或多份拷贝,建立故障转移机制,该机制叫做复制分配,简称分片。

Elasticsearch&Kibana安装

在这里插入图片描述

java安装成功

在这里插入图片描述

vi+路径

shift+g+g进入最低端

摁i,左下角出现insert

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建topic

在这里插入图片描述

模仿生产消息

在这里插入图片描述

模拟消费消息

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

认真学习正则表达式

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

tail -f /var/log/car.log

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

es索引与mysql索引的区别
正排索引(forward index):正排索引也称为“前向索引”。它是创建倒排索引的基础,通过 **文档到关键字(doc->word)**的映射。以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。

(1)LocalId字段(表中简称"Lid"):表示一个文档的局部编号。

(2)WordId字段:表示文档分词后的编号,也可称为"索引词编号"。

(3)NHits字段:表示某个索引词在文档中出现的次数。

(4)HitList变长字段:表示某个索引词在文档中出现的位置,即相对于正文的偏移量。

倒排索引 ,一般也被称为反向索引(inverted index)。带有倒排索引的文件我们称为倒排索引文件,简称倒排文件(inverted file)。

ES 倒排索引包含两个部分:单词词典和倒排列表

倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息及频率(作关联性算分),每条记录称为一个**倒排项(**Posting)。

倒排所有主要的作用就是召回,正排索引的作用主要是排序(计算分数),聚合等操作,获取dataid对应的detail信息

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/336725.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4496 蓝桥杯 求函数零点 简单

4496 蓝桥杯 求函数零点 简单 //C风格解法1&#xff0c;通过率100% #include <bits/stdc.h> // int a, b; 一定会自动初始化为 0int main(){int a 2, b 3; // 定义a&#xff0c;b&#xff0c;不会自动初始化&#xff0c;最好自己定义时初始化// windows环境下a值固定&…

在WIN从零开始在QMUE上添加一块自己的开发板(二)

文章目录 一、前言往期回顾 二、CPU虚拟化&#xff08;一&#xff09;相关源码&#xff08;二&#xff09;举个例子&#xff08;三&#xff09;测试 三、内存虚拟化&#xff08;一&#xff09;相关源码&#xff08;二&#xff09;举个例子测试 参考资料 一、前言 笔者这篇博客…

[MySQL]基础的增删改查

目录 1.前置介绍 2.数据库操作 2.1显示当前数据库 2.2创建数据库 2.3 使用数据库 2.4 删除数据库 3.常用数据类型 3.1整型和浮点型 3.2字符串类型 4.表的操作 4.1查看表结构 4.2创建表 4.3删除表 5.重点 5.1操作数据库 5.2常用数据类型 5.3操作表 1.前置介绍 …

IEEE-2024年第五届人工智能、机器人及控制国际会议(AIRC 2024)

IEEE--2024年第五届人工智能、机器人及控制国际会议(AIRC 2024) 会议时间: 2024年4月22-24日 会议地点: 埃及开罗 埃及英国大学 会议网址:AIRC 2024 | Artificial Intelligence, Robotics and Controlhttps://www.airc.org/ 埃及开罗 埃及英国大学 会议组织单位&#xff1a; 征…

【精选】中间件 tomcat漏洞复现

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

139基于matlab多旅行商MTSP问题

基于matlab多旅行商MTSP问题&#xff0c;利用遗传算法求解多旅行商问题的算法设计&#xff0c;输出MTSP路径。相互独立路径&#xff0c;同一起点路径。程序已调通&#xff0c;可直接运行。 139 matlab多旅行熵M-TSP (xiaohongshu.com)https://www.xiaohongshu.com/explore/65ab…

宝塔 ftp 服务器发回了不可路由的地址/读取目录列表失败

ftp连接不上&#xff1a; 1.注意内网IP和外网IP 2.检查ftp服务是否启动 &#xff08;面板首页即可看到&#xff09; 3.检查防火墙20端口 ftp 21端口及被动端口39000 - 40000是否放行 &#xff08;如是腾讯云/阿里云等还需检查安全组&#xff09; 4.是否主动/被动模式都不能连接…

2024 Windows10 | 搭建MySQL Cloudbeaver 可视化DBS | Docker Compose本地环境

2024 Windows10 | 搭建MySQL Cloudbeaver 可视化DBS | Docker Compose本地环境 前提条件docker-compose.yml总结 | 用Docker的原因&#xff1f; | 遇到的问题&#xff1f; 前提条件 Windows10 已安装 Docker Desktop提前准备映射用的4个文件夹&#xff08;3个用在 MySQL&#…

51单片机中断

1、什么是中断&#xff1f; CPU在处理某一事件A时&#xff0c;发生了另一事件B请求CPU迅速去处理&#xff08;中断发生&#xff09;&#xff1b; CPU暂时中断当前的工作&#xff0c;转去处理事件B&#xff08;中断响应和中断服务&#xff09;&#xff1b; 待CPU将事件B处理完…

中小企业如何快速融资-----股权融资的四种方式(上)

’在企业融资的多种手段中&#xff0c;股权质押融资、股权交易增值融资、股权增资扩股融资和股权的私募融资&#xff0c;逐渐成为中小企业利用股权实现融资的有效方式。随着市场体系和监管制度的完善&#xff0c;产权市场为投融资者搭建的交易平台日益成熟&#xff0c;越来越多…

Java医药WMS进销存系统

技术架构&#xff1a; jdk8 IntelliJ IDEA maven Mysql5.7 有需要的可以私信我。 系统功能与介绍&#xff1a; 医药进销存系统&#xff0c;主要分两种角色&#xff1a;员工、客户。本系统具有进销存系统的通用性&#xff0c;可以修改为其它进销存系统&#xff0c;如家电进…

c语言-位段

文章目录 前言一、位段是什么&#xff1f;1.1 位段的声明1.2 关于位段的说明 二、位段的内存分配2.1 关于位段内存分配的说明2.2 位段类型为int的内存分配方式&#xff08;Visual Studio 2022&#xff09;2.3 位段类型为char的内存分配方式&#xff08;Visual Studio 2022&…

Vulnhub-LORD OF THE ROOT: 1.0.1

一、信息收集 端口扫描、发现只开了22端口 连接ssh后提示端口碰撞&#xff1a; 端口敲门是一种通过在一组预先指定的关闭端口上产生连接请求&#xff0c;从外部打开防火墙上的端口的方法。一旦收到正确地连接请求序列&#xff0c;防火墙规则就会被动态修改&#xff0c;以允许…

宏任务与微任务执行顺序及对比记录

目录 前言 一、 宏任务、微任务的基本概念 1.宏任务介绍 2.微任务介绍 3.宏任务、微任务发展及出现的原因&#xff1a; 4.宏任务、微任务的基本类型 二、 事件循环模型&#xff08;Event Loop&#xff09; 三、 Promise、async和await 在事件循环中的处理 1.Promise: 2.…

Linux内存管理:(九)内存规整

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 引言 伙伴系统以页面为单位来管…

Pytest 测试框架与Allure 测试报告——Allure2测试报告-L3

目录&#xff1a; allure2报告中添加附件-图片 Allure2报告中添加附件Allure2报告中添加附件&#xff08;图片&#xff09;应用场景Allure2报告中添加附件&#xff08;图片&#xff09;-Python代码示例&#xff1a;allure2报告中添加附件-日志 Allure2报告中添加附件&#xff…

Linux的权限(3)

目录 文件类型 ​d目录文件 -普通文件 l链接文件 b块设备文件 p管道文件 c字符设备文件 文件权限 目录权限 umask 粘滞位 Q1umask权限默认值664/775 Q2"可执行性"权限 Q3"删除"权限 Q4怎么共享一批文件 【1】粘滞位 【2】添加交互人员到所…

第八讲_ArkTS装饰器(五)

ArkTS装饰器&#xff08;五&#xff09; 1. Watch装饰器1.1 Watch装饰器的特点1.2 Watch装饰器使用示例 2. ArkTS装饰器总结 1. Watch装饰器 Watch用于对状态变量的监听。如果需要关注某个状态变量的值是否改变&#xff0c;可以使用Watch为状态变量设置回调函数。 何为状态变…

基于DUP的网络聊天室

基于UDP的网络聊天室的使用&#xff08;select&#xff09;完成的服务器端 #include<head.h> typedef struct de {char name[10];struct sockaddr_in cin;struct de* next; }*linklist; //创建节点 linklist a_creat() {linklist p(linklist)malloc(sizeof(struct de));…

Flink SQL

Flink SQL 来源&#xff1a;B站尚硅谷 sql-client准备 Table API和SQL是最上层的API&#xff0c;在Flink中这两种API被集成在一起&#xff0c;SQL执行的对象也是Flink中的表&#xff08;Table&#xff09;&#xff0c;所以我们一般会认为它们是一体的。Flink是批流统一的处理…