2023最新ELK搭建教程,基于ES 8

2023-11-15

一、ELK介绍

ELK的应用

ELK的应用场景:日志查询,问题排查,上线检查服务器监控,应用监控,错误报警Bug管理性能分析,用户行为分析,安全漏洞分析。

企业 行业 ELK用途
阿里巴巴 电子商务、云计算 用于日志管理和实时监控
腾讯 互联网、科技 用于处理和分析大规模的日志数据
百度 搜索引擎 用于日志分析和搜索相关数据的实时监控
美团 在线服务 用于分析用户行为和业务数据
京东 自营式电商 用于日志分析和监控系统性能
新浪 门户网站、社交媒体 用于日志管理和实时数据分析
字节跳动 移动互联网 用于日志分析、数据挖掘和业务监控
华为 通信、电信设备 用于网络设备监控、故障排查和性能优化
头条 新闻、娱乐、社交媒体 用于实时日志分析、内容推荐和用户行为追踪
贝壳 房地产科技 用于数据分析、智能推荐和市场预测
滴滴出行 移动出行平台 用于日志管理、位置数据分析和实时监控

相比传统方式,集成ELK具有以下优势:

1.实时性:ELK能够实时收集和分析日志数据,能够快速获取系统的最新状态和事件。传统方式可能需要手动查找和解析日志文件,耗费时间和精力。

2.可扩展性:ELK采用分布式架构,可以轻松地扩展以处理大规模的数据。传统方式可能面临存储容量不足或处理能力有限的问题。

3.搜索和过滤功能:ELK提供强大的搜索和过滤功能,可以根据条件、字段或时间范围对日志数据进行快速查询。传统方式可能需要手动解析和筛选日志文件,效率低下。

4.可视化和仪表板:ELK的Kibana组件提供了交互式的可视化和仪表板功能,使得日志数据更直观和易于理解。传统方式可能需要手动整理和绘制图表,不够直观和灵活。

集中存储和管理:ELK能够将各种来源的日志数据集中存储在一个地方,方便进行管理

架构图

二、基本原理

ELK是由三个开源的高性能日志分析及可视化的服务器组件组成

1. Elasticsearch

ElasticSearch是ELK的核心,简称ES,它是一个基于Apache Lucene的开源数据搜索引擎,具备了Lucene的全部特性,使用Java语言编写。支持分词、全文搜索等。

分布式扩展性:Elasticsearch是分布式系统,能够水平扩展以适应数据量和查询负载的增长。

**实时性能:**Elasticsearch以快速响应为目标,具备优秀的实时搜索和分析性能。

**多样数据类型支持:**Elasticsearch支持多种数据类型的索引和查询,包括结构化、文本、地理位置、数值和时间序列数据。

**强大的搜索和分析功能:**Elasticsearch提供丰富的查询语言和灵活的搜索功能,支持全文搜索、过滤、范围查询和聚合等高级操作。

可扩展的生态系统:Elasticsearch具有庞大的开源生态系统,可与其他工具和应用程序集成,构建完整的日志管理、数据可视化和监控解决方案。

ES 上手简单且性能强悍,继承了Lucene的强大数据检索能力,

可以快速搜索数十亿的文件及PB级别的数据。

倒排索引 e.g.

今天/天气/很好

word doc_id
今天 1
天气 1
很好 1

2. Logstash

Logstash是一种开源的数据收集和日志处理工具,它是Elastic公司的一部分,用于将不同来源的数据收集、转换和发送到目标位置。它是Elastic Stack(前身是ELK Stack)的一部分,与Elasticsearch、Kibana和Beats一起构成了强大的日志管理和分析解决方案。

在这里插入图片描述

3. Kibana

Kibana是Elastic Stack中的开源数据可视化和分析平台,用于探索、分析和可视化存储在Elasticsearch中的数据。它提供交互式图表、仪表板和搜索等功能,帮助用户快速理解和利用数据。

4. Filebeat

Filebeat 是一个轻量级的日志文件收集器,通过监控指定的日志文件或目录,实时读取新增的数据行,并将其传输到配置的目标输出。它使用内置的解析器来解析不同格式的日志数据,并支持将数据发送到各种输出目的地,如 Elasticsearch、Logstash、Kafka 等。

实战演练

环境介绍

1. 服务器配置
IP地址 操作系统
192.168.19.1 Windows 11
192.168.19.128 Linux CentOS Stream 9
2. 工具及版本
软件 版本
JDK Java17
Elasticsearch 8.7.1
Kibana 8.7.1
Logstash 8.7.1
Filebeat 8.7.1
下载地址
前置工作
# 建立新用户
$ useradd elk
# 赋予elk用户elk文件夹的所属权限
$ chown -R elk:elk ./elk
#JDk环境准备
$ java -version

1.ES安装部署

1.1解压文件
# 解压
$ tar -zxvf elasticsearch-8.7.1-linux-x86_64.tar.gz
# 修改解压文件夹
$ mv elasticsearch.8.7.1 elasticsearch
1.2 修改elasticsearch.yml
# IP配置为:0.0.0.0 外网才能访问
network.host: 0.0.0.0
# 集群配置
cluster.initial_master_nodes: ["node-1"]
# 配置当前es节点的名称
node.name: node-1
# 配置端口号
http.port: 9200
# 设置免密登录访问
xpack.security.enabled: false
1.3 启动
$ cd /usr/local/elk/elasticsearch/bin
# 后台启动
$ ./elasticsearch -d

2.Kibana安装部署

2.1 解压文件
# 解压
$ tar -zxvf kibana-8.7.1-linux-x86_64.tar.gz
# 修改解压文件夹
$ mv kibana-8.7.1 kibana
2.2 修改配置文件
# kibana 端口
server.port: 5601
# 允许外网访问
server.host: "0.0.0.0"
# 监听ES
elasticsearch.hosts: ["http://localhost:9200"]
2.3 启动
# 后台启动
$ nohup ./kibana &

3.Logstash安装部署

3.1 解压文件
# 解压
$ tar -zxvf logstash-8.7.1-linux-x86_64.tar.gz
# 修改解压文件夹
$ tar -zxvf logstash-8.7.1 logstash
3.2 定义管道文件
# 定义输入
input{
	beats {
		port => 5044
		# 日志类型
		type => 'systemlog'
		# 编码
		codec => plain {charset => "UTF-8"}
	}
}
# 定义输出
output {
	elasticsearch {
		# ES的IP端口地址
		hosts => ["192.168.19.128:9200"]
		# ES日志索引
		index => "log-%{type}-%{+yyyy.MM.dd}"
	}
}
3.3 启动
$ ./logstash -f /usr/local/elk/logstash/config/conf/logstash.conf
# 后台启动
$ nohup ./logstash -f /usr/local/elk/logstash/config/conf/logstash.conf &

4.Filebeat

4.1 创建filebeat.yml文件
filebeat.inputs:
- type: log
  # 是否启用
  enabled: true
  # 监听文件路径
  paths:
    - D:\tools\Liberty\Liberty\usr\servers\defaultServer\logs\*.log

output.logstash:
  # logstash自定义的传输通道端口
  hosts: ["192.168.19.128:5044"]
4.2 启动filebeat
# -e 动态显示 -c 执行配置文件  & 后台启动
$ .\filebeat.exe -e -c .\filebeat.yml

至此为止,我们的ELK(B)就搭建完成啦~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023最新ELK搭建教程,基于ES 8 的相关文章

  • 具有默认值的 Java JAX-RS 自定义参数

    假设我有这个 这只是一个示例 GET Path value address Produces application json public Response getAddress QueryParam user User user 用户是
  • 使用 HttpUrlConnection Android 将 base64 编码的图像发送到服务器

    我正在尝试使用 HttpUrlConnection 将 base64 编码的图像发送到服务器 我遇到的问题是大多数图像均已成功发送 但有些图像会生成 FileNotFound 异常 我的图像编码代码可以在下面找到 public static
  • Java 正则表达式 - 字母数字,最多一个连字符,句点或下划线,七个字符长

    我是 Java 正则表达式工具的新手 尽管它们潜力巨大 但我很难完成这项任务 我想编写一个正则表达式来验证遵循以下语法的输入字符串 小写字母和数字的任意组合 仅一个下划线 一个破折号或一个句号 无其他特殊字符 最小长度为 5 我想出了以下解
  • java.lang.LinkageError:尝试重复的类定义

    为什么会发生错误以及如何修复它 02 13 02 pool 4 thread 2 WARN Exception in thread pool 4 thread 2 02 13 02 pool 4 thread 2 WARN java lan
  • 是否有任何API可以将Microsoft Exchange服务器与Java应用程序集成以进行任务同步?

    我正在尝试将 Java Web 应用程序与 Microsoft Exchange 服务器集成以实现双向日历 即任务 同步 是否有用于此集成的 Java 开源 商业 API 谢谢 文卡特 看一眼j 交易所 http sourceforge n
  • Java Microsoft Excel API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • 容器中的 JVM 计算处理器错误?

    最近我又做了一些研究 偶然发现了这一点 在向 OpenJDK 团队抱怨之前 我想看看是否有其他人观察到这一点 或者不同意我的结论 因此 众所周知 JVM 长期以来忽略了应用于 cgroup 的内存限制 众所周知 现在从 Java 8 更新某
  • 如何在 Eclipse 中使用其他外部 jar 依赖项创建不可运行/不可执行的 jar

    我无法通过 Eclipse 导出向导创建普通的 jar 不可运行 不可执行 它仅创建 jar 文件 但不会导出依赖的 jar 从而在从其他类调用导出的 jar 的方法时出现错误 请帮助 非常感谢 kurellajunior的建议 它是通过使
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • 当您在数组列表上调用remove(object o)时,它如何比较对象?

    当您在 java 中的数组列表上调用remove object o 时 它如何比较对象以找到要删除的正确对象 它使用指针吗 或者它使用 Comparable 接口来比较对象吗 ArrayList remove 依赖于对象的实现Equal方法
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • 改变for循环的顺序?

    我遇到一种情况 我需要根据用户输入以不同的顺序循环遍历 xyz 坐标 所以我是 3D 空间中的一个区域 然后是一组像这样的 for 循环 for int x 0 x lt build getWidth x for int y 0 y lt
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 使用 JAD 反编译 java - 限制

    我正在尝试使用 Java 中的 JAD 反编译几个 jar 文件 我也尝试过 JD GUI 但运气更差 但出现了很多错误 一种类型 易于修复 似乎是内部类 但我也发现了这段代码 static int SWITCH TABLE atp com
  • 春季 CORS。在允许的来源中添加模式

    查看CORS的弹簧指南 以下代码启用所有允许的来源 public class MyWebMVCConfigurer extends WebMvcConfigurerAdapter Override public void addCorsMa
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 摩尔斯电码 至 英语

    我现在的问题是让 摩尔斯电码转英语 正常工作 将英语转换为莫尔斯电码的第一部分工作正常 我知道以前已经有人问过这个问题 但我不知道我做错了什么 我知道我需要在某个地方进行拆分 但我只是不确定将其放在代码中的何处 现在 莫尔斯电码到英语的部分
  • 为什么范围为“provided”的依赖项会隐藏 Maven 中的传递依赖项?

    我的 Maven 项目中有三个模块 这稍微简化了 model包含JPA注释的实体类 坚持实例化一个实体管理器并调用它的方法 应用创建类的实例model 设置一些值并将它们传递给坚持 model and 坚持显然取决于javax persis
  • AWS ElasticSearch Service - 从 CF 模板设置加密选项

    我正在创建一个云形成模板来在AWS中配置elasticsearch服务域 我想将加密下的此属性设置为 true 域的所有流量都需要 HTTPS 但我无法在 AWS 文档中找到执行此操作的方法 用于设置加密属性的其他选项 例如 启用静态数据加

随机推荐

  • 十大Web网站漏洞扫描工具

    1 Nikto 这是一个开源的Web服务器扫描程序 它可以对Web服务器的多种项目 包括3500个潜在的危险文件 CGI 以及超过900个服务器版本 还有250 多个服务器上的版本特定问题 进行全面的测试 其扫描项目和插件经常更新并且可以自
  • 信号槽的返回值(QMetaObject::invokeMethod的用法)——Qt

    前言 之前从未想过信号槽是可以有返回值的 因为虽然信号发出去了 但是它在事件循环中 什么时候执行还不一定 这个想法固然是对的 但是这也不是不能实现的 我查了网上的一些资料 发现差不多有一下三种方法 1 信号槽里加指针或引用 这个不推荐 隐患
  • 并发处理

    1 并发活动 进程的引入 操作系统的特性之一是并发与共享 即在系统中 内存 同时存在几个相互独立的程序 这些程序在系统中既交叉地运行 又要共享系统中的资源 这就会引起一系列的问题 包括 对资源的竞争 运行程序之间的通信 程序之间的合作与协同
  • 分布式锁的实现

    目录 分布式锁 分布式锁的引出 单体锁存在的问题 共享数据不安全 超卖现象 锁的理解 拓展 分流 拓展 分流Nginx简单理解 分布式锁的引出 分布式锁的设计思路 分布式锁的常见应用场景 分布式锁方案 数据库的分布式锁如何实现 Redis分
  • 《手把手教你》系列练习篇之4-python+ selenium自动化测试(详细教程)

    1 简介 今天我们继续前边的练习 学习和练习一下 如何使用webdriver方法获取当前测试页面的URL 如何获取当前页面的title 如何打开浏览器的一个新建页面 如何操作单选按钮等等 这些小练习 来巩固基础 2 webdriver方法获
  • WebGL 实践篇(二)—— 屏幕坐标与裁剪坐标,片段着色器中的颜色定义

    一 裁剪坐标系 canvas坐标系以及屏幕坐标系 裁剪坐标 WebGL坐标系 的范围 1 1 原点在中间 x正值向右 y正值向上 屏幕坐标 原点在左上角 x正值向右 y正值向下 canvas坐标 与屏幕坐标相比 原点向右向下偏移 x y正值
  • 如何安装Jenkins并配置插件(清华源)

    Linux启动jenkins 将 jenkins war 放在 usr local jenkins 目录下 执行命令启动 Jenkins 1 nohup java jar jenkins war httpPort 8000 安装Jenkin
  • Gateway服务的搭建

    1 Gateway的作用 网关的核心功能特性 请求路由 权限控制 限流 架构图 权限控制 网关作为微服务入口 需要校验用户是是否有请求资格 如果没有则进行拦截 路由和负载均衡 一切请求都必须先经过gateway 但网关不处理业务 而是根据某
  • 微信公众号第三方平台开发,零基础入门。想学我教你啊

    在学习微信第三方平台开发之前你应该会的 1 常用接口测试工具的使用 postman 2 学会看第三方平台文档 这个很关键 不过很多还是喜欢百度 白嫖别人的操作文档 3 学习排查问题 分析问题 4 第三方平台的限制 和公众号 订阅号这些关系要
  • 前端node.js上传文件到服务器_从零开始: nodejs 搭建文件索引服务器(Part 1)

    在考虑要用nodejs搭建文件索引服务器来替代我原来那个笨重的Apache服务器 采用省心的bitnami lampstack搭建 然后配了背景图片和图标 之前 说实话我连javascript是什么都不清楚 所以 从语言上讲 确实是从零开始
  • 06-Redis缓存高可用集群

    上一篇 05 Redis高可用集群之水平扩展 1 集群方案比较 哨兵模式 在redis3 0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态 如果master节点异常 则会做主从切换 将某一台slave作为
  • JavaScript基础知识09——数据类型

    哈喽 大家好啊 这里是雷工笔记 我是雷工 数据类型比较常见 无论是对程序员 还是电气工程师来说 都再熟悉不过了 这里跟着教程了解一下 主要看跟自己以往在其他PLC C 组态软件中应用的有啥不同 一 了解数据类型 在计算机的世界就像黑客帝国中
  • 12306 APP 同一乘客、同列火车候补订单与硬座的处理规则!

    问题 国庆节没抢到回家的火车票 候补了该列车的卧铺 怕候补不到车票 又买了该列车的硬座 当候补订单候补到卧铺车票时 怎么处理 方案 结论 直接候补不成功 提示 XX 二代身份证 xxx 存在与本次购票行程冲突的车票
  • ctfshow- web1(50 point)

    0x00 前言 CTF 加解密合集 CTF Web合集 0x01 题目 0x02 Write Up 首先映入眼帘的是登录界面 尝试弱口令无果 可以注册 尝试注册一个账号 通过url发现这里是通过order by进行了排序 测试发现一共5个字
  • CSDN竞赛6期题解

    CSDN编程竞赛报名地址 https edu csdn net contest detail 16 请不要删掉此地址 总结 这次竞赛题目比较简单 没多大必要写题解 更多的还是给出自己的一些体会和建议吧 很多同学已经对比赛规则和编程体验给出了
  • 使用mod_deflate模块压缩页面优化传输速度

    在HTTPD主配置文件中添加如下 并确保deflate模块是启用的 vim etc httpd conf httpd conf SetOutputFilter DEFLATE 调用一个叫DEFLATE输出过滤器 mod deflate co
  • 信息与网络安全基础知识汇总

    一 概述 1 网络信息安全基本概念 信息安全 是指信息网络中的硬件 软件及其系统中的数据受到保护 不受偶然的或者恶意的原因而遭到破坏 更改 泄露 否认等 系统连续可靠正常的运行 信息服务不中断 密码学 是结合数学 计算机科学 电子与通信等学
  • Linux的find命令

    一 find语法 find path option print exec ok command find 路径 参数 二 使用 通过文件名查找 find name 文件名 find etc name passwd 查找 etc目录下的pas
  • easychat项目讲解

    项目简介 本项目是基于Websocket和Servlet实现的多用户聊天室 实现了聊天所需的一些基本功能 功能描述 1 用户信息注册 2 登录 同时标识上 下线用户 3 私聊 点击好友列表中指定用户进行私聊 4 群聊 点击好友列表指定用户建
  • 2023最新ELK搭建教程,基于ES 8

    一 ELK介绍 ELK的应用 ELK的应用场景 日志查询 问题排查 上线检查服务器监控 应用监控 错误报警Bug管理性能分析 用户行为分析 安全漏洞分析 企业 行业 ELK用途 阿里巴巴 电子商务 云计算 用于日志管理和实时监控 腾讯 互联