ELK介绍

一、前言

前面的章节我们介绍通过ES Client将数据同步到ElasticSearch中,但是像日志这种数据没有必要自己写代码同步到ES那样会折腾死,直接采用ELK方案就好,ELK是Elasticsearch、Logstash、Kibana三款开源软件的缩写,ELK主要用于收集多台服务器日志统一整合后提供给用户。E和K前面都有介绍,L即Logstash它可以从各种数据源收集数据,并对数据进行过滤、分析和统一格式并将输出结果存储到指定位置。

二、Logstash工作原理介绍

图片来源于网络。

Logstash事件处理分为三个阶段

1、输入
使用输入将数据导入logstash,常见的输入file、syslog、redis、beats。

2、过滤器
过滤器是logstash管道的中间处理设备,一些常见有用过滤器:
grok:解析和构造任意文本。Grok是非结构化日志解析为结构化日志最佳方式。
mutate:对字段进行一般转换,可以重命令、删除、替换和修改事件中字段。

3、输出
一个事件可以有多个输出,一些常见的输出:elasticsearch、file、graphite。

四、ELK几种架构

1、各节点部署Logstash

Logstash部署于各节点,收集日志、数据、经过分析过滤后发送给远端ES.

优点是架构简单,缺点是Logstash比较占资源,并且当Logstash故障时数据会丢失,这种加构用来收集系统日志没什么问题,但用于同步业务数据肯定是不行的。

2、增加消息队列

在各节点部署Logstash Agent将日志数据收集然后发送给Kafka,Kafka再将数据传给Logstash进行过滤后发送给ES。引入消息队列,即使Logstash故障,数据也不会丢失。

3、Beats

收集端由logstash换成更轻量级的Beats,Beats有各种收集器,比如FileBeats(日志文件收集)、PacketBeats(网络数据包收集)等。

三、一个简单的ELK搭建例子

1、ES安装配置

下载地址:
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.2-linux-x86_64.tar.gz
解压后修改elasticsearch.yml,将xpack这些都设置为false,不然可能会报错。然后
./elasticsearch -d启动即可。
jvm.options 调整参数设置,不然机器搞崩掉了 -Xms512m -Xmx512m。

访问http://121.36.200.208:9200/有返回JSON,即说明安装正常。

2、Logstash安装配置

下载地址:

https://artifacts.elastic.co/downloads/logstash/logstash-8.5.2-linux-x86_64.tar.gz
解压后,执行./logstash -e 'input { stdin { } } output { stdout {} }', 在控制台输入字符,如果输出JSON表示安装成功。
config/jvm.options   JVM参数调整一下 -Xms512m  -Xmx512m
编写logstash配置文件 logstash-test.conf,配置从4560端口接收数据,然后输出到ES。

启动 ./bin/logstash -f ./config/logstash-test.conf

3、Kibana安装配置

下载地址 
https://artifacts.elastic.co/downloads/kibana/kibana-8.5.2-linux-x86_64.tar.gz
解压安装,kibana.yml  修改 server.host: "0.0.0.0" 允许远程访问。
./kibana启动
http://121.36.200.208:5601/  即可以打开kibana控制台

4、SpringBoot项目

快速搭建一个SpringBoot项目,logback-spring.xml配置如下

配置一个LogstashTcpSocketAppender,指定输出目标为4560端口。

代码中增加以slf4j日志输出

5、查看效果

请求 http://121.36.200.208:8080/testLogstash?billsCode=1

然后在Kibana上索引就可以查看到索引文件如下。

Kibana配置Data View

最后进入Discover,可以快速根据关键词搜索日志内容了。

最后我们再也不用到每台服务器上用grep命令去查日志了,用了ELK确实方便了很多。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模拟实现简单的通讯录

前言:生活中处处都会看到或是用到通讯录,今天我们就通过C语言来简单的模拟实现一下通讯录。 鸡汤:跨越山海,终见曙光! 链接:gitee仓库:代码链接 目录 主函数声明部分初始化通讯录实现扩容的函数增加通讯录所…

【Idea】idea、datagrip设置输入法

https://github.com/RikudouPatrickstar/JetBrainsRuntime-for-Linux-x64/releases/tag/jbr-release-17.0.6b829.5https://github.com/RikudouPatrickstar/JetBrainsRuntime-for-Linux-x64/releases/tag/jbr-release-17.0.6b829.5 下载后解压并重命名为 jbr, 然后替换对应 ide…

python爬取沈阳市所有肯德基餐厅位置信息

# 爬取沈阳所有肯德基餐厅位置信息 import requests import json import reurl http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?opkeyword headers {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0…

C理解(五):编译,链接库,宏,关键字,变量

编译 编译过程 文件.c->(预处理)->文件.i->(编译)->文件.S->(汇编)->文件.o->(链接)->elf程序 预处理 内容:加载头文件(#include),清除注释(//,./*),替换条件编译(#if #elif #endif #ifdef),替换宏定义(#define) …

MySQL数据库——索引(5)-索引使用(上),验证索引效率、最左前缀法则、范围查询、索引失效情况、SQL提示

目录 索引使用 验证索引效率 最左前缀法则 范围查询 索引失效情况 索引列运算 字符串不加引号 模糊查询 or连接条件 数据分布影响 SQL提示 use index ignore index force index 索引使用(上) 验证索引效率 在讲解索引的使用原则之前&…

Docker快速入门

Docker快速入门 前言 Docker是什么? Docker是一种开源的容器化平台,用于构建、部署和运行应用程序。它通过使用容器来实现应用程序的隔离和封装,使得应用程序可以在不同的计算环境中以一致的方式运行。 容器是一种轻量级的虚拟化技术&…

分布式事务-TCC异常-空回滚

1、空回滚问题: 因为是全局事务,A服务调用服务C的try时服务出现异常服务B因为网络或其他原因还没执行try方法,TCC因为C的try出现异常让所有的服务执行cancel方法,比如B的try是扣减积分 cancel是增加积分,还没扣减就增…

华为乾坤区县教育安全云服务解决方案(1)

华为乾坤区县教育安全云服务解决方案(1) 课程地址方案背景客户痛点分析区县教育网概述区县教育网业务概述区县教育网业务安全风险分析区县教育网安全运维现状分析区县教育网安全建设痛点分析 安全解决方案功能概述架构概述方案架构设备选型 课程地址 本…

Linux shell 脚本中, $@ 和$# 分别是什么意思

Linux shell 脚本中, 和 和 和# 分别是什么意思? $:表示所有脚本参数的内容 $#:表示返回所有脚本参数的个数。 示例:编写如下shell脚本,保存为test.sh #!/bin/sh echo “number:$#” echo “argume:$” 执行…

特种设备安全监测终端,降低安全隐患风险!

特种设备运行关系到人民生命财产安全,关系到经济健康发展,关系到社会的稳定。有关特种设备的事故基本都发生在使用过程中,因此,使用过程的安全管理是特种设备的管理重点。针对国内特种设备本身存在事故隐患及安装、维修、操作、指…

ElasticSearch - 基于 JavaRestClient 操作索引库和文档

目录 一、RestClient操作索引库 1.1、RestClient是什么? 1.2、JavaRestClient 实现创建、删除索引库 1.2.1、前言 1.2.1、初始化 JavaRestClient 1.2.2、创建索引库 1.2.3、判断索引库是否存在 1.2.4、删除索引库 1.3、JavaRestClient 实现文档的 CRUD 1.3…

ElementUI之首页导航及左侧菜单(模拟实现)

目录 ​编辑 前言 一、mockjs简介 1. 什么是mockjs 2. mockjs的用途 3. 运用mockjs的优势 二、安装与配置mockjs 1. 安装mockjs 2. 引入mockjs 2.1 dev.env.js 2.2 prod.env.js 2.3 main.js 三、mockjs的使用 1. 将资源中的mock文件夹复制到src目录下 2. 点击登…

【Unity Build-In管线的SurfaceShader剖析_PBS光照函数】

Unity Build-In管线的SurfaceShader剖析 在Unity Build-In 管线(Universal Render Pipeline)新建一个Standard Surface Shader文件里的代码如下:选中"MyPBR.Shader",在Inspector面板,打开"Show generat…

Zygisk-IL2CppDumper对抗方案

众所周知,Unity引擎中有两种脚本编译器,分别是 Mono 和 IL2CPP 。这两种脚本编译器各有优势,同时也存在一些安全性问题,本文将从游戏安全角度对其进行分析并提供对策。 Mono 是由跨平台的开源.NET 实现,它允许开发者使…

Unity如何实现TreeView

前言 最近有一个需求,需要实现一个TreeView的试图显示,开始我一直觉得这么通用的结构,肯定有现成的UI组件或者插件可以使用,结果,找了好久,都没有找到合适的插件,有两个效果差强人意。 最后在回家的路上突然灵光一闪,想到了一种简单的实现方式,什么插件都不用,仅使用…

《学术小白学习之路12》进阶-基于Python实现中文文本的DTM主题动态模型构建

《学术小白学习之路》基于Python实现中文文本的DTM主题动态模型构建 一、数据选择二、数据预处理三、输入数据ID映射词典构建四、文档加载成构造语料库五、DTM模型构建与结果分析六、结果进行保存七、保存模型一、数据选择 所选取的数据集是论文摘要,作为实验数据集,共计12条…

从1开始的Matlab(快速入门)

MATLAB软件版本:MATLAB R2016b 本文是博主从零开始学Matlab的记录,适合第一次接触Matlab的同学阅读。 一、基础介绍 1.1界面认识 1.2变量命名 注:Matlab中的注释 %% 独占一行的注释(有上下横线分割) % 普通注释 …

react项目优化

随着项目体积增大,打包的文件体积会越来越大,需要优化,原因无非就是引入的第三方插件比较大导致,下面我们先介绍如何分析各个文件占用体积的大小。 1.webpack-bundle-analyzer插件 如果是webpack作为打包工具的项目可以使用&…

Vivado与Notepad++关联步骤

填写内容 先看"关联步骤"再看此处: 在“editor”栏中填写 Notepad的路径,并加上[file name] -n[line number], 这里我的 Notepad 的路径为 C:/Program Files (x86)/Notepad/notepad.exe ; 故这里我就填上以下内容即可…

xxl-job 2.2之后版本高版本executor未授权访问漏洞

xxl-job 低版本executor未授权访问 低版本的executor未授权访问漏洞是 POST /run HTTP/1.1 Host: your-ip:9999 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like G…