docker搭建最新ELFK分布式日志收集系统(elasticsearch+logstash+filebeats+kibana7.16.1)

这篇具有很好参考价值的文章主要介绍了docker搭建最新ELFK分布式日志收集系统(elasticsearch+logstash+filebeats+kibana7.16.1)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

随着分布式项目的集群部署,日志的存储也分散开来,在日后出现问题进行日志定位时就会出现很困难,服务器很多会做负载均衡,这样最终请求所落在的服务器也随机起来,所以好的方式就是集中收集起来,不需要一台一台服务器去查,方便查看。

一、ELFK是什么?

ELFK是Elasticsearch+Logstash+Filebeats+Kibana。
其中,ES是一个高度可扩展的全文搜索和分析引擎,能够对大容量的数据进行接近实时的存储、搜索和分析操作,通常会跟Kibana部署在一起,由Kibana提供图形化的操作功能。LogStash是一个数据收集引擎,他可以动态的从各种数据源搜集数据,并对数据进行过滤、分析和统一格式等简单操作,并将输出结果存储到指定位置上。但是LogStash服务过重,如果在每个应用上都部署一个logStash,会给应用服务器增加很大的负担。因此,通常会在应用服务器上,部署轻量级的filebeat组件。filebeat可以持续稳定的收集简单数据,比如Log日志,统一发给logstash进行收集后,再经过处理存到ES。

二、搭建步骤

1.搭建的机器环境背景

我是拿了一台Centos7的机器上用docker安装了Elasticsearch+Logstash+Kibana,因为我的一些应用部署的是在windows上,所以就把Filebeats安在了N个windows服务器上,所以这篇中filebeats安装是windows,后续有机会再更新linux环境上。

elfk,docker,分布式,elasticsearch

2.安装docker

3.拉取镜像

docker pull elasticsearch:7.16.1
docker pull kibana:7.16.1
docker pull logstash:7.16.1

4.创建自定义网络

docker network --subnet=172.18.0.0/16 create elk_net
查看创建的网络
docker network ls

–subnet 自定义子网掩码,不同的集群使用不同的网络,保证集群是健康和安全的

elfk,docker,分布式,elasticsearch

5.配置启动Elasticsearch

建立下面文件结构并在config下新建elasticsearch.yml

elfk,docker,分布式,elasticsearch
elfk,docker,分布式,elasticsearch

接着启动es
docker run -it --privileged=true -d -p 9200:9200 -p 9300:9300 --name es --net elk_net --ip 172.18.0.2 -v /mnt/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /mnt/elasticsearch/data:/usr/share/elasticsearch/data -v /mnt/elasticsearch/logs:/usr/share/elasticsearch/logs -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" elasticsearch:7.16.1

-name 取别名
–net 指定网络
-ip 指定ip
-v 表示挂载自定义目录,后续修改配置可以直接修改该文件进行重启生效。

elfk,docker,分布式,elasticsearch

docker ps -a
查看docker容器镜像运行状况

6.配置启动Kibana

建立下面文件结构并在config下新建kibana.yml

elfk,docker,分布式,elasticsearch
elfk,docker,分布式,elasticsearch

启动kibana
docker run -d --privileged=true --name kibana -p 5601:5601 --net elk_net --ip 172.18.0.4 -v /mnt/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.16.1

浏览器访问kibana成功!

elfk,docker,分布式,elasticsearch

7.配置启动Logstash

建立下面文件结构并在config下
/mnt/logstash/config/pipelines.yml
/mnt/logstash/config/logstash.yml
/mnt/logstash/config/robotwx.conf(收集项目1)
/mnt/logstash/config/robottaskcenter.conf(收集项目2)
/mnt/logstash/config/robotoffice.conf(收集项目3)

elfk,docker,分布式,elasticsearch

/mnt/logstash/config/pipelines.yml
elfk,docker,分布式,elasticsearch

/mnt/logstash/config/logstash.yml
elfk,docker,分布式,elasticsearch

/mnt/logstash/config/robotwx.conf(收集项目1)
elfk,docker,分布式,elasticsearch

/mnt/logstash/config/robottaskcenter.conf(收集项目2)elfk,docker,分布式,elasticsearch

/mnt/logstash/config/robotoffice.conf(收集项目3)
elfk,docker,分布式,elasticsearch

上述配置指的是我有3个收集的项目,一个项目使用一个管道,input 里的port是logstash的监听端口5044,如何在一个端口区分3个收集项目呢也就是3个filebeat?通过filebeat配置文件中设置[fields][name]进行区分,下面讲filebeat安装时会说明。
1.一个filebeat对应一个pipeline.id和一个path.config。
2.pipelines.yml中的[fields][name]对应的是filebeat程序中的配置,path.config对应的是robot.conf路径。*
3.robot.conf中的address对应的是pipelines.yml中的output中的send_to。*

配置好filebeats后启动logstash。

docker run -d -it --privileged=true --name=logstash --net elk_net 
--ip 172.18.0.3 -p 5047:5047  -p 5044:5044 -p 9600:9600 
-v /mnt/logstash/config/:/usr/share/logstash/config 
-v /mnt/nginx/logs/:/usr/share/logs/ logstash:7.16.1

8.配置启动filebeat(windows)

下载filebeat-7.16.1安装

elfk,docker,分布式,elasticsearch
在C:\Program Files\Elastic\Beats\7.16.1\filebeat中修改filebeat.yml文件(用收集项目2举例)

###################### Filebeat Configuration Example #########################

# This file is an example configuration file highlighting only the most common
# options. The filebeat.reference.yml file from the same directory contains all the
# supported options with more comments. You can use it as a reference.
#
# You can find the full configuration reference here:
# https://www.elastic.co/guide/en/beats/filebeat/index.html

# For more available modules and options, please see the filebeat.reference.yml sample
# configuration file.

# ============================== Filebeat inputs ===============================

filebeat.inputs:

# Each - is an input. Most options can be set at the input level, so
# you can use different inputs for various configurations.
# Below are the input specific configurations.

# filestream is an input for collecting log messages from files.
- type: filestream

  # Change to true to enable this input configuration.
  enabled: true

  # Paths that should be crawled and fetched. Glob based paths.
  paths:
      - C:\Users\Administrator\Desktop\wxTest\taskCenter_robot.log
  fields:
      name: robottaskcenter



# ================================== Outputs ===================================

# Configure what output to use when sending the data collected by the beat.

# ------------------------------ Logstash Output -------------------------------
output.logstash:
  # The Logstash hosts
  hosts: ["10.12.2.113:5044"]


type:7.16后统一改成filestream
paths:对应你想监听的log文件
fields:name: robottaskcenter对应上面所讲的
hosts:就是你的logstash启动端口
其余配置见官网

windows下启动filebeats
cd C:\Program Files\Elastic\Beats\7.16.1\filebeat
filebeat.exe -c filebeat.yml -e
打印没有error就是成功了

三、Kibana中建立索引进行查看

elfk,docker,分布式,elasticsearch

点击discover可以看到你创建的索引,刷新就能看到日志了。
elfk,docker,分布式,elasticsearch

总结

到这就结束了,logstash+filebeat部署起来确实费了些劲,涉及到对日志的过滤暂时还没有研究,中间也遇到很多问题记录一下,有问题的地方可以互相交流指正。文章来源地址https://www.toymoban.com/news/detail-719932.html

到了这里,关于docker搭建最新ELFK分布式日志收集系统(elasticsearch+logstash+filebeats+kibana7.16.1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ELK分布式日志收集快速入门-(一)-kafka单体篇

    JDK 安装教程自行百度-这个比较简单。 zookeeper zookeeper安装参考地址((2条消息) 快速搭建-分布式远程调用框架搭建-dubbo+zookper+springboot demo 演示_康世行的博客-CSDN博客) 修改zookeeper配合文件 启动成功 开放端口号 下载kafka安装包 安装遇到的问题(由于网站证书不安全导致) 解

    2023年04月08日
    浏览(35)
  • 分布式技术--------------ELK大规模日志实时收集分析系统

    目录 一、ELK日志分析系统 1.1ELK介绍 1.2ELK各组件介绍 1.2.1ElasticSearch 1.2.2Kiabana 1.2.3Logstash 1.2.4可以添加的其它组件 1.2.4.1Filebeat filebeat 结合logstash 带来好处 1.2.4.2缓存/消息队列(redis、kafka、RabbitMQ等) 1.2.4.3Fluentd 二、为什么要使用 ELK 三、完整日志系统基本特征 四、ELK 的工作

    2024年04月17日
    浏览(38)
  • 云原生可观测框架 OpenTelemetry 基础知识(架构/分布式追踪/指标/日志/采样/收集器)...

    OpenTelemetry 是一个开源的可观测性框架,由云原生基金会(CNCF)托管。它是 OpenCensus 和 OpenTracing 项目的合并。旨在为所有类型的可观测信号(如跟踪、指标和日志)提供单一标准。 https://opentelemetry.io https://www.cncf.io https://opencensus.io OpenTelemetry 指定了如何收集遥测数据并将其发送到

    2024年01月16日
    浏览(50)
  • 【手记】基于SpringCloud搭建ELK分布式日志追踪

    ELK: 是 Elasticsearch、Logstrash 和 Kibana 的缩写,它们代表的是一套成熟的日志管理系统,ELK Stack已经成为目前最流行的集中式日志解决管理方案。 Elasticsearch: 分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实

    2024年01月16日
    浏览(38)
  • Docker搭建MinIo分布式系统

    文件系统是负责管理和存储文件的系统软件,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文件。 下图指示了文件系统所处的位置: 通过概念可以简单理解为:一个计算机无法存储海量的文件,通过网络将若干计算机组织起来共同去存储海

    2024年02月04日
    浏览(36)
  • 基于Docker搭建hdfs分布式实验环境

    理论知识 Docker Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任

    2023年04月08日
    浏览(37)
  • (实战)docker-compose部署分布式日志方案EFK(Elasticsearch+Fluentd+Kibana)

    目录 背景 技术架构 部署安装 环境准备 配置Logback并模拟产生日志 制作fluentd镜像 运行docker-compose 效果展示         在现代的软件开发和运维领域,监控和日志管理是至关重要的任务。随着应用程序规模的扩大和分布式系统的普及,有效地跟踪和分析日志数据成为了挑战

    2024年02月03日
    浏览(32)
  • 使用docker搭建minio分布式对象存储系统

    这里我简单的和大家介绍一下什么是minio ? 附上Minio官网链接:https://minio.org.cn/ MinIO是一种开源的对象存储服务器,通过使用标准的HTTP/REST API来访问和管理数据。它采用分布式架构,具有高性能、高可用性和可扩展性。MinIO可以帮助用户轻松管理和存储大量的非结构化数据,

    2024年02月12日
    浏览(49)
  • 基于 Docker 搭建 Hadoop 分布式及 Docker 基本操作使用

    Docker的整个生命周期有三部分组成:镜像(image)+容器(container)+仓库(repository)简单来讲,镜像是文件,容器是进程容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件,在Docker的生命周期中,最核心的两个部分,一个是镜像 (Images),一个是容器 (Containers)。 镜像

    2024年02月11日
    浏览(48)
  • 学习笔记MinIo对象存储-Docker分布式集群搭建踩坑!

    ​ MinIO 是一款基于Go语言的高性能对象存储服务,在Github上已有39K+Star。它采用了Apache License v2.0开源协议,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等。 本文将使用 MinIO 来自建一个对象存储服务用于存储图片。 ​ M

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包