当前位置: 首页 > news >正文

简单ELK框架搭建

简介

        ELK 框架是一套开源的日志管理和分析工具,由 Elasticsearch、Logstash 和 Kibana 三个主要组件组成,现在新增了Filebeat组件,可以更高效的收集数据。

  • Elasticsearch:是一个分布式、高可扩展的开源搜索引擎,能快速准确地从大量日志数据中检索出所需信息。
  • Logstash:是一个数据收集和处理引擎,用于从各种数据源收集日志数据,如文件、网络接口、数据库等,然后对数据进行过滤、转换和格式化等处理。
  • Kibana:是一个开源的数据分析和可视化平台,可视化方式对 Elasticsearch 中的数据进行分析和展示,无需编写复杂的查询语句,即可快速了解数据的分布、趋势和关联关系。
  • Filebeat :Filebeat 是一个轻量级的日志文件收集器,专为转发和集中日志数据而设计,用于监控指定的日志文件或目录,一旦有新的日志产生,Filebeat 就会读取并将其发送。

        ELK 框架的工作流程是,Filebeat收集各种来源的日志数据,发送到Logstash处理过滤后将其发送到 Elasticsearch 进行存储和索引,然后 Kibana 从 Elasticsearch 中获取数据并进行可视化展示,为用户提供直观的日志分析结果。

ELK运行流程图

(我搭建的只是一个简易版本的,如需专业版的请查找其他文件或视频资料)

我是在虚拟机的Docker中搭建的ES和Kabana,首先需要新建一个网络用于ELK

docker network create elk

docker安装elasticsearch

docker run -d \
--name=elasticsearch \
-v es-data:/usr/share/elasticsearch/data \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-e "xpack.security.enabled=false" \
--net elk \
-p 9200:9200 -p 9300:9300 \
docker.elastic.co/elasticsearch/elasticsearch:8.6.2

安装kibana

docker run -d \
--name=kibana \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
-e I18N_LOCALE=zh-CN \
--net elk \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.6.2

测试ES

curl 1ocalhost:9200/_cat/health

测试Kabana,直接访问5601端口就可以,http://192.168.178.78:5601/app/home#/,记得把ip换成自己的。

然后我的Logstash和Filebeat 是安装在客户端的,直接安装在了Windows上。需要再官网下载https://www.elastic.co/,进入后可以先改成中文

然后往下滑,就可以看到下载本地部署的链接了

进去后选择应用和版本

选择需要下载的软件和版本 ,我下载的8.6.2的

进去之后记得下载Windows版本的。 安装Logstash和Filebeat

        Filebeat: 解压前面下载好的filebeat压缩包,打开filebeat.yml文件

打开之后把里边原本的文件注销了 ,然后输入以下配置

filebeat.inputs:      #这个是获取日志
  - type: filestream
    id: your_unique_input_id # 在这里添加一个唯一的 ID
    enabled: true
    paths:
      - D:\IDER\project\a\vehicle\logs\vehicle-system\*.log # 请替换为实际的日志路径

setup.ilim.enabled: false
setup.template.name: "logstash"
setup.template.pattern: "logstash-*"
output.logstash:                     #这个是把日志发送到logstash
  hosts: ["127.0.0.1:5044"]          #这个logstash的ip以及接口,设置成自己的
  index: "logstash-%{+yyyy.MM.dd}"   #发送过去的数据名字,前缀加时间戳

保存后在当前文件夹路径哪里输入cmd,打开黑窗口,然后输入启动命令

.\filebeat.exe -c filebeat.yml -e

        如果一切配置正确,Filebeat将开始读取配置文件中指定的日志文件,并根据你的输出配置将日志数据发送到目标位置(比如Logstash)。你应该能在命令提示符窗口看到Filebeat的运行日志,显示数据正在被处理和发送。 

        Logstash:解压Logstash压缩包文件,在config文件夹下有一个文件:logstash-sample.conf,复制一份,并重命名为logstash.conf,输入以下配置。

input {
  beats {
    port => 5044    #这个监测端口
  }
}

output {
  elasticsearch {
    hosts => ["http://192.168.178.78:9200"]   #输出到ES中
    index => "task-service-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
  }
}

然后进入到bin目录,然后地址栏cmd打开黑窗口,输入启动命令

logstash.bat  -f D:\tools\logstash-7.15.2\config\logstash.conf

启动之后打开Kibana,滑到最后点击Stack Management

然后点击索引,就可以看到,如果没有看到,可以在数据流那里看看有没有。

有了索引或者数据流后,点击 数据视图,然后创建数据视图

创建时名称可以随便填,但是索引模式一般都是前缀加上*号做通配符

创建保存视图后在左上角点击,然后点击Discover

然后显示出来日志记录 

http://www.dtcms.com/a/99185.html

相关文章:

  • 为pip设置国内镜像源
  • Android Jetpack学习总结(源码级理解)
  • 明达IOT 平台助推纺织龙头实现智能管理
  • 动态规划篇(数位统计DP)
  • 用空闲时间做了一个小程序-二维码生成器
  • 【安全】nginx防止host头攻击
  • c++弱指针实现原理
  • Python小练习系列 Vol.5:数独求解(经典回溯 + 剪枝)
  • Linux之基础知识
  • 深度学习处理时间序列(5)
  • 《新凯来:半导体设备制造领域的“国家队”》
  • 【愚公系列】《高效使用DeepSeek》039-政务工作辅助
  • LeetCode 2360.图中的最长环:一步一打卡(不撞南墙不回头) - 通过故事讲道理
  • Redis延时队列在订单超时未报到场景的应用分享
  • 【数据结构】二叉树 — 经典OJ面试题剖析!!!
  • 关于 websocket协议的理解
  • 001 - 前缀和算法:从原理到实战,一文讲透区间和问题
  • 谈谈Minor GC、Major GC和Full GC
  • Java——数组
  • RSA 简介及 C# 和 js 实现【加密知多少系列_4】
  • .NET开发基础知识11-20
  • Lavazza拉瓦萨亮相上海樱花节,增色海派咖啡风情
  • rbpf虚拟机-汇编和反汇编器
  • OpenCV、YOLO与大模型的区别与关系
  • Web开发:数据的加密和解密
  • Python之函数
  • 图片RGBA像素值提取工具v1.0.0发布
  • 【原理系列】计算机组成原理-第一遍阅读总结
  • Flutter_学习记录_AppBar中取消leading的占位展示
  • Python:日志模块操作及基本配置,日志格式化输出