一、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 等。文章来源:https://www.toymoban.com/news/detail-742065.html
实战演练
环境介绍
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)就搭建完成啦~文章来源地址https://www.toymoban.com/news/detail-742065.html
到了这里,关于2023最新ELK搭建教程,基于ES 8的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!