ELK(elasticsearch+logstash+kibana+beats)

什么是ELK

  • Elasticsearch:Elasticsearch(以下简称ES) 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。 ES是 Elastic Stack 的核心,采用集中式数据存储,可以通过机器学习来发现潜在问题。ES能够执行及合并多种类型的搜索(结构化数据、非结构化数据、地理位置、指标)。支持 PB级数据的秒级检索。

  • Kibana:Kibana 是一个免费且开放的用户界面,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成

  • Logstash:Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到合适的的“存储库”中。

  • Beats:Beats 是一套免费且开源的轻量级数据采集器,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。

为什么要使用ELK

  • 严格按照开发标准来说,开发人员是不能登录生产服务器查看日志数据的

  • 一个应用可能分布于多态服务器,难以查找

  • 同一台服务区可能部署多个应用,日志分散难以管理

  • 日志可能很大,单个文件通常能达到GB级别,日志无法准确定位,日志查询不方便且速度慢

  • 通常日志文件以非结构化存储,不支持数据可视化查询。

  • 不支持日志分析(比如慢查询日志分析、分析用户画像等)。

使用场景

  • 采集业务日志

  • 采集Nginx日志

  • 采集数据库日志,如MySQL

  • 监控集群性能指标

  • 监听网络端口

  • 心跳检测

Logstash

开源的流数据处理、转换(解析)和发送引擎,可以采集来自不同数据源的数据,并对数据进行处理后输出到多种输出源

工作原理

Logstash的每个处理过程均以插件的形式实现,Logstash的数据处理过程主要包括: Inputs , Filters , Outputs 三部分

数据采集:Inputs

数据过滤:Filter

数据存储:output

Beats

Beats 是一套免费且开源的轻量级数据采集器,集合了多种单一用途数据采集器。它们从成百上千或成千上万台机器和系统向 Logstash 或 Elasticsearch 发送数据。

beats替换了logstash一部分功能(input  采集功能)。因为logstash比较重量级,占用较多资源;而Beats相对轻量级。

Beats的基本特性

  • 开源:Beats 是一个免费且开放的平台,集合了多种单一用途数据采集器,各司其职,功能分离。社区中维护了上百个beat

  • 轻量级:体积小,职责单一、基于go语言开发,具有先天性能优势,不依赖于Java环境,对服务器资源占用极小。Beats 可以采集符合 Elastic Common Schema (ECS) 要求的数据,可以将数据转发至 Logstash 进行转换和解析。

  • 可插拔:Filebeat 和 Metricbeat 中包含的一些模块能够简化从关键数据源(例如云平台、容器和系统,以及网络技术)采集、解析和可视化信息的过程。只需运行一行命令,即可开始探索。

  • 高性能:对CPU、内存和IO的资源占用极小。

  • 可扩展:由于Beats开源的特性,如果现有Beats不能满足开发需要,我们可以自行构建,并且完善Beats社区

 组件

  • Filebeat:文件日志监控采集 ,主要用于收集日志数据

  • Metricbeat:进行指标采集,指标可以是系统的,也可以是众多中间件产品的,主要用于监控系统和软件的性能

  • Packetbeat: 是一个实时网络数据包分析器,通过网络抓包、协议分析,基于协议和端口对一些系统通信进行监控和数据收集。可以将其与Elasticsearch一起使用,以提供应用程序监视和性能分析系统。

  • Heartbeat:心跳检测 (在配置的Url中喊一句:喂,有活着的么?有的话吱个声!)

  • Winlogbeat:Windows事件日志

  • Auditbeat:审计数据(收集审计日志)

  • Functionbeat:云服务生成的日志和指标收集器

Kibana

Kibana 是一个免费且开放的可视化系统,能够让您对 Elasticsearch 数据进行可视化,并让您在 Elastic Stack 中进行导航。您可以进行各种操作,从跟踪查询负载,到理解请求如何流经您的整个应用,都能轻松完成。

之前用的比较多的就是kibana的dev tools的功能,用于写dsl

 kibana中的discover支持可视化的查看数据

基于ELK搭建日志采集系统

流程 

安装logstash

下载:

Past Releases of Elastic Stack Software | Elastic

直接解压

启动:切换到bin目录  ./logstash

./logstash -e 'input{stdin{}}' output{stdout{}}'

-e:加启动选择

stdin:标准化输入

stdout:标准化输出

 在config/logstash-sample.conf中配置

启动时,加 -f指定配置文件

 ./bin/logstash  config/logstash-sample.conf

结果

stdin、stdout:方便排查日志采集问题

FileBeat

安装地址:

Filebeat 7.13.0 | Elastic

原理

 为什么要使用fileBeat

因为logstash有日志采集的功能,但是logstash比较重量级,如果放在业务服务器上,比较占用资源。所以,使用fileBeat在业务服务器上进行日志采集,然后把采集到的日志输出到logstash(单独的服务器)上,这样采集日志就不会占用业务服务器空间

 

filebeat配置

inputs配置

 启动fileBeat

 -e:对启动日志进行输出 

-c:指定配置文件

将fileBeat的输出改为logstash(filebeat.yml)

 logstash的默认端口号:5044

 修改logstash的输入为beats(logstash-sample.conf)

修改logstash的输出为es(logstash-sample.conf)

 output中可以加多个(stdout、elasticsearch等)

可以通过配置,将一部分日志归为一条日志(比如说一些错误日志)

multiline.type: pattern   # 匹配格式是正则
multiline.pattern: '^\['  # 匹配的正则表达式
multiline.negate: true    # 匹配上正则表示是一条数据(false表示匹配不上为新的一条数据)
multiline.match: after    # 匹配不上的追加在上一条后面

logstash添加filter过滤器

logstash最常用的filter是grok

kibana中可以写grok

 将logstash中的filter配置成写的grok正则

启动filebeat前,先把data数据删除(避免之前的日志已经采集过了,没有产生新的日志 )

rm -rf data/

区分input

一个beats可以有多个input,但是只能输出到同一个es的索引中,不方便做数据区分

可以给不同的input加标签区分

 在logstash中进行判断,然后区分index

可以根据grok判断

想根据日志级别区分不同的日志,生成不同的index,可以根据grok中的LOGLEVEL判断

如果要自定义正则表达式的话,可以在logstash的patterns文件中写

 也可以通过字符串判断

基于FileBeat采集nginx日志

安装nginx

查找nginx安装路径

修改nginx配置文件中日志采集格式为json

nginx.conf 

改动后需要重启nginx

修改filebeat支持json输入

 

基于filebeat采集系统日志syslog

format是一种日志规范

采集系统日志

udp、tcp的默认端口是514

修改配置文件 

 重启系统服务

查看系统服务状态 

 在logstash中区分tcp、udp索引

 使用logger测试tcp

 

 使用netcat测试udp

后面的udp.yml是自己创建的文件

数据可视化操作

kibana的dashboard

 管理index patterns

 创建index pattern

方便更好的看一类es索引数据

 创建dashboard

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

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

相关文章

Kubernetes_1.27.3_Harbor结合Nacos实战

Nacos 实战 作者:行癫(盗版必究) 一:Nacos简介 1.简介 ​ Nacos是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台;Nacos 致力于帮助您发现、配置和管理微服务;Nacos 提供了一组简单易用的特…

Python实现将pdf,docx,xls,doc,wps,zip,xlsx,ofd链接下载并将文件保存到本地

前言 本文是该专栏的第31篇,后面会持续分享python的各种干货知识,值得关注。 在工作上,尤其是在处理爬虫项目中,会遇到这样的需求。访问某个网页或者在采集某个页面的时候,正文部分含有docx,或pdf,或xls,或doc,或wps,或ofd,或xlsx,或zip等链接。需要你使用python自…

260道2023最新网络安全工程师面试题(附答案)

2023年过去了一大半,先来灵魂三连问,年初定的目标完成多少了?薪资涨了吗?女朋友找到了吗? ​好了,不扎大家的心了,接下来进入正文。 由于我之前写了不少网络安全技术相关的文章和回答&#xff…

CentOS 8 GLIBC升级失败系统崩溃抢修实战

CentOS 8 GLIBC升级失败系统崩溃抢修实战 1. 恐怖的问题2. 参考解决方案3. 抢修实战3.1 准备工作3.2 抢修流程3.3 解决启动后Permission Denied3.3.1 参考方案3.3.2 解决 4. 总结 服务器为CentOS 8,支持glibc版本为2.28,但编译一个工具的glibc需求版本为…

【Ceph集群应用】CephFS文件系统之MDS接口详解

CephFS文件系统之MDS接口详解 1.创建CephFS文件系统MDS接口1.1 创建cephfs1.2 基于内核的客户端挂载1.3 基于fuse工具方式的客户端挂载 接上文基于ceph-deploy部署Ceph集群详解 1.创建CephFS文件系统MDS接口 服务端操作 (1)在admin管理节点创建mds服务…

Python测试框架Pytest的基础入门

Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.The pytest framework makes it easy to write small tests, yet scales to support complex functional testing for applications and libraries. 通过官方网站介绍…

音频数据分割单独处理后再拼接出现跳跃间断点的处理方法

+hezkz17进数字音频系统研究开发交流答疑 1如图所示 问题1: 对于一个81920字节的音频文件,如果是分割成小块4096输入(无重叠,均分),在频域上做去噪算法,每4k数据返回到时域上再拼接成80k的处理结果文件,发现处理结果有异常有跳跃间断点,像是频谱泄露?分割也需要有重…

java中使用POI生成Excel并导出

注:本文章中代码均为本地Demo版本,若后续代码更新将不会更新文章 需求说明及实现方式 根据从数据库查询出的数据,将其写入excel表并导出 我的想法是通过在实体属性上写自定义注解的方式去完成。因为我们在代码中可以通过反射的方式去获取实体…

华为申请注册盘古大模型商标;京东推出言犀大模型,率先布局产业应用

7月14日科技新闻早知道,一分钟速览。 1.华为申请注册盘古大模型商标: 据天眼查 App 显示,7 月 7 日,华为技术有限公司申请注册“华为云盘古”、“Huawei Cloud Pangu Models”文字及图形商标,国际分类为网站服务、社…

c基本数据类型

关键字 charshort intintlong intfloatdouble 常量和变量 常量:在程序运行过程中,其值不可改变的量变量:其值可以改变的量称为变量 字符数据 字符常量 直接常量:用单引号括起来,如:‘a’,‘b’.转义字…

zabbix 企业级监控(2) 监控linux主机

目录 配置开始 Zabbix添加linux主机 4.为agent.zabbix.com添加模板 环境: (隔天做的更换了IP,不影响实际操作) IP 192.168.50.50 关闭防火墙规则 更改主机名 [rootlocalhost ~]# vim /etc/hostname agent.zabbix.com [rootloca…

【UE5 多人联机教程】01-创建主界面

目录 工程地址 步骤 参考链接 工程地址 GitHub - UE4-Maple/C_MP_Lobby: 多人大厅教程项目 步骤 1. 先新建一个工程 2. 将下载的工程中的Plugins目录拷贝到自己新建的工程下 3. 打开工程,新建一个游戏实例 这里命名为“GI_Main” 在项目设置中设置游戏实例类为…

科技云报道:数字化转型完成后,制造业如何走向“数智”时代?

科技云报道原创。 随着我国数字化转型行动的深入推进和智能制造工程的大力实施,制造业正朝着“数智”时代迈进,生成式AI被视为推动制造业智能化发展的关键驱动力。 据预测,到2027年,将有30%的制造业采用生成式AI来提升产品研发效…

Android ViewGroup onDraw为什么没调用

ViewGroup,它本身并没有任何可画的东西,它是一个透明的控件,因些并不会触发onDraw,但是你现在给LinearLayout设置一个背景色,其实这个背景色不管你设置成什么颜色,系统会认为,这个LinearLayout上…

上海市静安区财政局领导带队调研合合信息,政企共话科技创新

近日,上海市静安区财政局副局长应文婷一行赴市北高新园区,实地走访科技企业上海合合信息科技股份有限公司(简称“合合信息”),了解公司技术创新成果及产业布局,倾听企业在发展过程中的政策需求。合合信息董…

Linux——认识Linux的目录结构 常用命令 vim命令 权限及其控制

目录 linux的目录结构常用linux的命令ls(list)和llcd 切换目录mkdir 创建文件夹touch命令:创建普通文本文件pwd 显示路径whoamisu:普通--超级账号man:查看手册rm:删除网络命令ifconfig重定向 >>cat 查看文本文件clear清屏hi…

python使用Anconda安装Cartopy

安装 Cartopy的话官方推荐是使用conda安装,打开Anconda Prompt后,新建一个环境(如果已有环境可跳过这步),然后激活环境: conda create -n newenv python3.9 conda activate newenv接着按照官网的推荐在Anc…

<数据结构>NO11.归并排序|递归|非递归|优化

文章目录 归并排序递归写法非递归写法修正方案1.归并一段拷贝一段修正方案2.修正区间 算法优化算法分析 归并排序的应用外排序和内排序 归并排序 递归写法 思路: 如果给出两个有序数组,我们很容易可以将它们合并为一个有序数组。因此当给出一个无序数组时&#xf…

【Ceph集群应用】Ceph块存储之RBD接口详解

Ceph块存储之RBD接口详解 1.创建Ceph块存储系统RBD接口1.1 删除镜像1.2 还原镜像1.3 在线扩容1.4 回滚镜像到指定位置1.5 删除快照1.6 快照分层1.7 快照展平1.8 镜像的导出导入 接上文基于ceph-deploy部署Ceph集群详解 1.创建Ceph块存储系统RBD接口 (1)…

区块链-java学习和劝退

字面意思:按照区域划分,每个区域通过可信的账本进行结算,将各个区域链接,形成小中心,大整体的财务结算认证体系; 1、学习前准备 您最好掌握一定的财务基本知识; 2、学习步骤 1)区…