一口气完成ELK 日志平台的搭建,我感觉我又行了!

6,748 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第7天,点击查看活动详情

前言

大家好,我是小郭,最近在玩 ELK 日志平台,它是 Elastic 公司推出的一整套日志收集、分析和展示的解决方案。

只有学习了,操作了才能算真正的学会使用了,虽然看起来简单,但是里面的流程步骤还是很多的,将步骤和遇到的问

题记录和总结下,今天主要分享下在Docker环境下部署完成ELK日志平台的搭建。

目的:一步一步完成搭建操作与踩坑记录、与开发环境的日志结合,反映真实的日志场景。

什么是 ELK ?

ELK 指的是⼀套完整的⽇志集中处理解决⽅案,将Elasticsearch + Logstash + Kibana 三个开源⼯具配合使⽤,以满足用户对⽇志的查询、排序、统计需求。

ELK常见架构:

Elasticsearch + Logstash + Kibana

这是一种最简单的架构。通过 Logstash 来收集日志,通过 Elasticsearch 对日志进行分析,将所得结果展示用 Kibana展示。

这种架构也是官网介绍的方式,但是在实际生产中很少使用。

filebeat + Elasticsearch + Logstash + Kibana

相比第一种架构,此架构增加了一个 filebeat 模块。filebeat 是一个轻量的日志收集代理,部署在客户端。

优点: 相较于logstash消耗更少的资源

缺点: 当 logstash 出现故障时,日志会出现丢失。

filebeat + kafka + Elasticsearch + Logstash + Kibana

这种架构是对于第二种架构的完善,通过增加中间件,来避免数据的丢失。

当 Logstash 出现故障,日志还存留在中间件中,当Logstash 再次启动,则会读取中间件中积压的日志。

工作流程

今天我们主要来说一说第二种架构方式

  1. Filebeat收集数据

  2. 将收集数据汇总给Logstash,Logstash进行数据清洗

  3. 将数据写入Elasticsearch

  4. 用Kibana进行可视化展示

搭建部署 Elasticsearch 数据库

# 从零到一搭建ELK日志,在Docker环境下部署 Elasticsearch 数据库

部署 Elasticsearch 数据库1.png

部署 Kibana 可视化工具

# 从零到一搭建ELK日志,在Docker环境下部署 Kibana 可视化工具

部署 Kibana 可视化工具1.png

部署 Filebeat 日志收集工具

# 从零到一搭建ELK日志,在Docker环境下部署 Filebeat 日志收集工具

部署 Filebeat 日志收集工具1.png

部署 logstash 转换工具

# 从零到一搭建ELK日志,在Docker环境下部署 logstash 工具

docker安装1.png

踩坑记录

  1. Filebeat 数据未上报成功,导致一直显示30秒内无更新数据

image.png

解决方法:修改配置,将配置修改为正确的地址,我们需要设置 filebeat 的配置文件路径为容器内的路径。

filebeat.inputs:
- type: log
  enabled: true
  paths:
    - /usr/share/filebeat/logs/*
  1. 验证是否有生成es的索引,有生成才算成功
curl <http://localhost:9200/_cat/indices?v>

总结

今天主要完成Filebeat 收集数据写入 logstash处理,再将数据写入 Elasticsearch 后 Kibana 进行可视化展示的全过程。

后续我们将集成我们的springBoot应用,以及加上 Kafka 和 Grafana 监控完来完善整个日志平台。

日志收集平台.png

欢迎大家评论、点赞、收藏~

如有不对的地方欢迎指出!

告辞.jpg