ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana

这篇具有很好参考价值的文章主要介绍了ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ELKF简介

日志系统是一个很重要的系统,一个架构良好的日志系统,可以帮助开发者更清楚的了解服务器的状态和系统安全状况,从而保证服务器的稳定运行。目前,在大型的后端架构中,一个标准的数据采集方案通常被称为ELK,即ElasticSearch、Logstash和Kibana。为了更轻量级的收集数据,还引用了Filebeat。
所以,我们此次选择Elasticsearch + Logstash + filebeat + Kibana架构来进行演示。

Elasticsearch:分布式搜索引擎。具有高可伸缩、高可靠、易管理等特点,可用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 使用Java 基于 Lucene 开发,是现在使用最广的开源搜索引擎之一,Wikipedia 、StackOverflow、Github 等都基于它来构建的。

Logstash:数据收集处理引擎。支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储以供后续使用。

Kibana:可视化化平台。它能够搜索、展示存储在 Elasticsearch 中索引数据。使用它可以很方便的用图表、表格、地图展示和分析数据。

Filebeat:轻量级数据收集引擎。相对于Logstash所占用的系统资源来说,Filebeat 所占用的系统资源几乎是微乎及微。它是基于原先 Logstash-fowarder 的源码改造出来。换句话说:Filebeat就是新版的 Logstash-fowarder,也会是 ELK Stack 在 Agent 的第一选择。

  1. 安装Elasticsearch

    docker拉取镜像,使用7.10.2版本。

    docker pull elasticsearch:7.10.2


    创建挂载目录,并给创建的文件夹授权。

    mkdir -p /worker/elk/elasticsearch
    #文件夹赋权
    sudo chown -R 777 /worker/elk/elasticsearch
    #这里注意:如果777权限不够,就给1000 : 1000权限


    执行docker run脚本

    docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es 镜像ID


    拷贝elasticsearch容器内部的配置到挂载目录

    docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml /worker/elk/elasticsearch/
    docker cp es:/usr/share/elasticsearch/data /worker/elk/elasticsearch/


    修改elasticsearch.yml

    cluster.name: "es-master"
    network.host: 0.0.0.0
    # 0.0.0.0可表示监听所有IP
    http.host: 0.0.0.0
    # 跨越请求
    http.cors.enabled: true
    http.cors.allow-origin: "*"


    删除容器

    docker rm -f es


    再次执行dokcer脚本启动elasticsearch,并设置挂载目录

    docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name es \
         --restart=always \
         -e ES_JAVA_OPTS="-Xms128m -Xmx512m" \
         -h elasticsearch \
         -v /worker/elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
         -v /worker/elk/elasticsearch/data:/usr/share/elasticsearch/data \
         -e LANG=C.UTF-8 \
         -e LC_ALL=C.UTF-8 \
         镜像ID
        
        
    参数说明:
    -p 9200:9200:将容器的9200端口映射到宿主机9200端口
    -p 9300:9300:将容器的9300端口映射到宿主机9300端口,目的是集群互相通信
    --restart=always:docker重启自动启动
    -e "discovery.type=single-node":单例模式
    -e ES_JAVA_OPTS="-Xms128m -Xmx512m":配置内存大小,最小/最大内存
    -v 挂载目录


  2. Kibana

    docker拉去镜像,使用7.10.2版本

    docker pull kibana:7.10.2


    创建挂载目录,并给创建的文件夹授权(与elasticsearch的创建过程类似)。

    mkdir -p /worker/elk/kibana
    #文件夹赋权
    sudo chown -R 777 /worker/elk/kibana


    执行docker run脚本

    sudo docker run -d --name kibana -p 5601:5601 镜像ID


    拷贝kibana容器内部的配置到挂载目录

    docker cp kibana:/usr/share/kibana/config /worker/elk/kibana/
    docker cp kibana:/usr/share/kibana/data /worker/elk/kibana/


    修改kibana.yml配置文件

    server.name: kibana
    server.host: "0.0.0.0"
    elasticsearch.hosts: [ "http://elasticsearch:9200" ]
    # 显示登陆页面
    monitoring.ui.container.elasticsearch.enabled: true
    # 语言
    i18n.locale: "zh-CN"


    删除容器

    docker rm -f kibana


    再次执行dokcer脚本启动kibana,并设置挂载目录

    docker run -d --name kibana -p 5601:5601 \
          --restart=always \
          --link es:elasticsearch \
          -h kibana \
          -v /worker/elk/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
          -v /worker/elk/kibana/data:/usr/share/kibana/data \
          镜像ID
          
    参数说明:
    --link:使用–link参数时,docker会自动在共享两个容器的变量。访问的时候,不再是通过IP的方式来访问,而是通过容器名来访问。上面访问es容器,可以直接elasticsearch:9200可以访问到es容器。


  3. Logstash

    docker拉去镜像,使用7.10.2版本

    docker pull logstash:7.10.2


    创建挂载目录,并给创建的文件夹授权。

    mkdir -p /worker/elk/logstash
    #文件夹赋权
    sudo chown -R 777 /worker/elk/logstash


    创建容器

    docker run -p 4560:4560 --name logstash -d 镜像ID


    拷贝logstash容器内部的配置到挂载目录

    docker container cp logstash:/usr/share/logstash/config /worker/elk/logstash 
    docker container cp logstash:/usr/share/logstash/pipeline /worker/elk/logstash
    docker container cp logstash:/usr/share/logstash/data /worker/elk/logstash


    修改logstash.yml的文件的默认配置,配置文件的路径(/worker/elk/logstash/config)

    http.host: "0.0.0.0"
    #允许监控
    xpack.monitoring.enabled: true
    xpack.monitoring.elasticsearch.hosts: [ "http://elasticsearch:9200" ]


    修改logstash.conf的文件配置,配置文件的路径(/worker/elk/logstash/pipeline),根据具体情况配置

    # 监听5044端口作为输入源
    input {
      beats {
        port => 5044
      }
    }
    
    # 过滤
    filter {
      grok {
        match => { "message" => "%{COMBINEDAPACHELOG}" }
      }
      date {
        match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ]
      }
    }
    
    # 输出到es
    output {
      elasticsearch {
        hosts => ["elasticsearch:9200"]
        # 索引名称,这里获取filebeat设置的参数
        index => "%{[fields][service]}-%{+YYYY.MM.dd}"
      }
    
      stdout {
        codec => rubydebug
      }
    }


    停止并删除容器

    docker rm -f logstash


    重新启动容器并设置挂载目录

    docker run -d \
        --name logstash \
        -p 5044:5044 \
        --restart=always \
        -h logstash \
        --link es:elasticsearch \
        -v /worker/elk/logstash/config:/usr/share/logstash/config \
        -v /worker/elk/logstash/pipeline:/usr/share/logstash/pipeline \
        镜像ID


    进入logstash容器,安装插件

    bin/logstash-plugin install logstash-codec-json_lines


  4. filebeat

    docker pull docker.elastic.co/beats/filebeat:7.10.2


    然后,执行docker启动脚本。

    docker run  -d --name filebeat -p 9000:9000 镜像ID


    接着,创建filebeat挂载目录,并给创建的文件授权。

    mkdir -p /worker/elk/filebeat
    sudo chown -R 777 /worker/elk/filebeat
    
    # 将容器内的文件复制到主机上。
    docker cp filebeat:/usr/share/filebeat/filebeat.yml /worker/elk/filebeat


    修改配置文件filebeat.yml

    filebeat.config:
      modules:
        path: ${path.config}/modules.d/*.yml
        reload.enabled: false
    
    processors:
      - add_cloud_metadata: ~
      - add_docker_metadata: ~
    
    filebeat.inputs:
    - type: tcp
      enabled: true
      # 设置参数
      fields:
        service: estate
      max_message_size: 10MiB
      host: "0.0.0.0:9000"
    
    # 输出到logstash
    output.logstash:
      hosts: ["logstash:5044"]


    删除容器

    docker rm -f filebeat


    接着,修改docker启动脚本,增加-v挂载目录。

    docker run  -d \
    	--name filebeat \
    	-p 9000:9000 \
    	-h filebeat \
    	-v /worker/elk/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml \
    	--restart=always \
    	--link logstash:logstash \
    	-e TZ=Asia/Shanghai \
    	-e output.logstash.hosts=["logstash:5044"] \
        镜像ID


  5. 连接filebeat

    springboot项目连接filebeat做日志输出,地址为192.168.189.128:9000 (根据自己ip来),具体可以参考其他文章。

  6. 配置kibana

    进入kibana页面,地址为http://192.168.189.128:5601/ (根据自己ip来)。
    ELKF日志系统,Elasticsearch,Logstash,Filebeat,Kibana,日志系统搭建

    ELKF日志系统,Elasticsearch,Logstash,Filebeat,Kibana,日志系统搭建输入logstash配置的索引index名称,点击下一步。
    ELKF日志系统,Elasticsearch,Logstash,Filebeat,Kibana,日志系统搭建
    ELKF日志系统,Elasticsearch,Logstash,Filebeat,Kibana,日志系统搭建

ELKF日志系统,Elasticsearch,Logstash,Filebeat,Kibana,日志系统搭建
看到已经有日志输出。文章来源地址https://www.toymoban.com/news/detail-447057.html

到了这里,关于ELKF日志系统搭建部署教程:从零开始构建Elasticsearch + Logstash + Filebeat + Kibana的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SpringCloud--从零开始搭建微服务基础环境入门教程【一】

    😀前言 本篇博文是关于SpringCloud–从零开始搭建微服务基础环境入门教程【一】,希望你能够喜欢😉 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉 💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来

    2024年02月10日
    浏览(40)
  • React--》从零开始搭建一个文章后台管理系统

    目录 项目准备 项目搭建 scss预处理器的使用 配置基础路由 组件库antd的使用 开发者工具的安装 登录模块 基本样式搭建 创建表单结构 获取表单数据并进行相关登录操作 对登录模块的token进行相关处理 路由鉴权实现 后台页面模块 基本页面结构搭建 菜单高亮显示 展示个人信

    2023年04月17日
    浏览(35)
  • 从零开始部署yolov8到安卓手机详细教程【Android Studio】

    首先你需要配置好pytorch环境,本文不再详细阐述,若未配置好环境,可以参考: https://blog.csdn.net/weixin_43507693/article/details/109015177 安装yolov8可参考: https://blog.csdn.net/weixin_44120785/article/details/128681117 Android Studio官网链接:https://developer.android.google.cn/ 自行配置AS环境(网上很多相

    2024年01月25日
    浏览(38)
  • linux系统从零开始搭建CICD jenkins环境

    本文教你从零开始搭建jenkins环境,开始你的CICD之旅。 1.1 系统与安装环境 本文的环境为云服务器环境,系统为linux Red-hat系统。版本信息如下: Linux version 3.10.0-1160.88.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP 如果是linux其它系统,也

    2024年02月04日
    浏览(39)
  • 【安装教程】ubuntu20.04/22.04从零开始搭建autoware.universe

    目录 1. 基本配置情况 2. ROS2 Humble和git安装  2.1 ros2 humble安装(对应ubuntu22.04,仅源码安装需要) 2.2 git安装  3. 克隆autoware代码  4.自动安装依赖项(推荐) 5. 手动安装依赖项(在一键配置失效下使用,这里仅列出docker安装中需要的依赖)  5.1 cuda安装  5.2 docker engine安装 5.3 

    2024年01月18日
    浏览(46)
  • 从零开始搭建后端信息管理系统(新手小白比如)

    如果你是新手小白,首先我们要进行一些准备工作,安装一些基础软件, 备注一下:这里安装的vue环境的后台管理系统,不同的后台管理系统,需要安装不同的插件 准备工作: 安装 Visual Studio Code nodejs 配置插件    首先安装开发环境Visual Studio Code 打开官网:下载 Visual Stu

    2024年04月11日
    浏览(45)
  • 从零开始在 Linux 上搭建 Hadoop 平台:一个详细的教程和必备配置文件

    在信息时代,大数据处理是企业发展必不可少的一部分。Hadoop 是一种分布式计算平台,能够高效地处理大数据集。然而,搭建 Hadoop 集群可以相当复杂,需要正确配置和调整多个组件。本文将向您展示如何从零开始在 Linux 上搭建 Hadoop,以及如何配置 Hadoop 的必备文件。 选择

    2024年02月08日
    浏览(41)
  • 从零开始的PICO教程(2)--搭建VR场景并打包至PICO中运行

    在开发VR游戏的时候, 第一个要解决的问题就是PICO环境配置 ,为了验证自己的环境配置是否正确,这里以能否打包到PICO 上运行为标准。衡量你们的环境配置是否正确,向注定波澜壮阔的虚拟世界发出一声:Hello World!WoW! 1、大纲 经过该教程你将学会 如何搭建一个简单的场

    2024年02月03日
    浏览(58)
  • 教你从零开始搭建双系统——Linux(Manjaro)和Win双系统

    苦于不知如何搭建双系统?带你不踩坑,快速上手安装双系统,准备~上车!!! 目录 前期准备: 正式开始: 启动现有系统,将 U 盘插入电脑(再次提醒最好是 64G 的 U 盘) 安装 ventoy 到 U 盘 出现问题  报错 U 盘找不到了 解决报错 U 盘分区 下载 Win 和 Manjaro 的ISO镜像文件 WI

    2024年02月19日
    浏览(42)
  • 从零开始的QQ开放平台机器人-------Gensokyo框架部署运行开发教程合集

    大家好,我是早苗狐,一名有5年QQ机器人开发运营经验的机器人爱好者. 随着QQ为机器人开放了越来越多的接口能力,基于QQ开放平台Api能力的新框架逐渐应运而生, 本文就带给大家如何通过一系列操作,部署,运行,维护和开发一个新的QQ机器人. QQ开放平台地址: QQ开放平台 QQ开放平台

    2024年02月03日
    浏览(66)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包