ELK从入门到实践

ELK从入门到实践

ELK从入门到实践

参考文章:

ELK 圣经:Elasticsearch、Logstash、Kibana 从入门到精通https://developer.aliyun.com/article/1639868

Elastic Stack(ELK)从入门到实践

https://www.bilibili.com/video/BV1iJ411c7Az?spm_id_from=333.788.player.switch&vd_source=d75f8514642af2f16d1d35d5be0812bb&p=2

1760848838709-f7967808-d053-4ee0-b5b4-91df27143733.png

ELK日志平台介绍

ELK指的是Elastic公司下面Elasticsearch、Logstash、Kibana三大开源框架首字母大写简称

1760849090589-450cfb39-8538-4bb1-b12a-e7779515789a.webp

1760849434718-e0f974fd-9b08-41f5-8085-99617e21cb3d.png

  1. Elasticsearch(存储)

Elasticsearch是一个高度可扩展的全文搜索和分析引擎,基于Apache Lucence(事实上,Lucence也是百度所采用的搜索引擎)构建,能够对大容量的数据进行接近实时的存储、搜索和分析操作。

  1. Logstash(收集分析)

Logstash是一个数据收集引擎,它可以动态的从各种数据源搜集数据,并对数据进行过滤、分析和统一格式等操作,并将输出结果存储到指定位置上。Logstash支持普通的日志文件和自定义Json格式的日志解析。

负责日志清洗: 日志 过滤,格式处理,等等。 有大量的 自定义完成。

  1. Kibana(可视化)

Kibana是一个数据分析和可视化平台,通常与Elasticsearch配合使用,用于对其中的数据进行搜索、分析,并且以统计图标的形式展示。

  1. Beats

Beats是elastic公司开源的一款采集系统监控数据的代理agent,是在被监控服务器上以客户端形式运行的数据采集器的统称。

ELK架构优点如下:

处理方式灵活,配置相对简单、检索性能高、集群线性扩展、页面美观

安装部署

这里通过docker将ELK一键部署

打开 PowerShell(管理员),依次复制执行:

# 1. 创建专用网络
docker network create elk

# 2. 启动 Elasticsearch(单节点 + 1 GB 内存)
docker run -d --name elasticsearch --net elk `
  -p 9200:9200 -p 9300:9300 `
  -e "discovery.type=single-node" `
  -e "ES_JAVA_OPTS=-Xms1g -Xmx1g" `
  -e "xpack.security.enabled=false" `
  -v esdata:/usr/share/elasticsearch/data `
  elasticsearch:7.17.28

# 创建logstash.conf
@"
input { beats { port => 5044 } }
output { elasticsearch { hosts => ["elasticsearch:9200"] } }
"@ > logstash.conf

# 3. 启动 Logstash(带 beats 输入)
docker run -d --name logstash --net elk `
  -p 5044:5044 -p 9600:9600 `
  -e "LS_JAVA_OPTS=-Xms512m -Xmx512m" `
  -v ${PWD}/logstash.conf:/usr/share/logstash/pipeline/logstash.conf `
  logstash:7.17.28

# 4. 启动 Kibana,让docker自动寻找可用端口(随机)
docker run -d --name kibana --net elk `
  -p 5603:5601 `
  -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" `
  kibana:7.17.28

如此就部署好了

#查看kibana映射
docker port kibana
#如5601/tcp -> 0.0.0.0:32768就是访问http://localhost:32768/
服务 URL 预期结果
Elasticsearch http://localhost:9200 返回 JSON 集群信息
Kibana http://localhost:32768 出现欢迎页面(无登录框)
Logstash docker logs logstash 看到 Pipeline started

相应端口展示

1760877909257-731a8c35-6509-4c32-8da8-190a3139f615.png

1760878060766-c77d3145-6b2e-4f64-9c71-c4ca1aa9b474.png

1760878074913-e63b5894-b930-41af-881b-30e8676d01e2.png

Elasticsearch

基本概念

索引:是Elasticsearch对逻辑数据的逻辑存储

  • 可以把索引看成关系型数据库的表,Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片,每个分片可以有多个副本

文档:存储在Elasticsearch中的主要实体叫文档document。用关系型数据库来类比的话,一个文档相当于数据库表中的一行数据。

映射:所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条,哪些词条 会被过滤,这种行为叫做映射,一般由用户自己定义规则。

基于Kibana Lens进行数据可视化,灵活分析航班 数据

首先导入样本数据,这里选择中间的flight data

1760887474256-ac7e59c2-34eb-4ff6-966b-0315da44b3f4.png

然后在dashboard中创建相关视图,处理分析数据

1760889743799-fdbf205e-513f-408b-96e7-744a5625c746.jpeg

实验结果

1760889769930-f9f9f394-1afa-4798-bd1a-ccbd2d17c181.jpeg

更新: 2025-10-20 15:06:51
原文: https://www.yuque.com/cindahy/ovgbb0/nln09rk5pmzazr0g

LICENSED UNDER CC BY-NC-SA 4.0
评论