SpringCloud——ELK搭建(Windows版)

SpringCloud——ELK搭建(Windows版)SpringCloud ELK 搭建 Windows 版 一 介绍 ELK 是目前业内广泛使用的一套集中式日志解决方案 涵盖了收集 传输 存储 分析 告警 ELK 的搭建通常是用 Elasticsearc Logstash Kibana 搭配使用实现的 二 ES Elasticsearc 集群搭建下载官方地址 https artifacts elastic co downloads elasticsearc elasticsearc 7 14 0 windows x86 6

SpringCloud——ELK搭建(Windows版)

一、介绍

二、ES(Elasticsearch)集群搭建

  1. 下载

官方地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-windows-x86_64.zip

  1. 解压
    这里我们准备搭建一个3节点集群,所以解压了三个。
    建议先解压出一个,做好相关配置后,在进行复制调整。
    笔主这里是先解压出了 elasticsearch-7.14.0,做好相关配置后,复制出 elasticsearch-7.14.0-node2elasticsearch-7.14.0-node2,并进行相关调整。
    在这里插入图片描述








  2. 配置
    配置文件为 config 目录下的 elasticsearch.yml 文件。
    主节点 配置文件说明如下:




    # ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticsearch comes with reasonable defaults for most settings. # Before you set out to tweak and tune the configuration, make sure you # understand what are you trying to accomplish and the consequences. # 注意:Elasticsearch 为大多数设置提供了合理的默认值。 # 在开始调整和调整配置之前,请确保您了解要完成的任务和结果。 # # The primary way of configuring a node is via this file. This template lists # the most important settings you may want to configure for a production cluster. # 配置节点的主要方式是通过这个文件。 # 此模板列出了您可能希望为生产集群配置的最重要的设置。 # # Please consult the documentation for further information on configuration options: # 有关配置选项的更多信息,请参阅文档: # https://www.elastic.co/guide/en/elasticsearch/reference/index.html # # ---------------------------------- Cluster ----------------------------------- # # Use a descriptive name for your cluster: # 为您的集群使用描述性名称: # 一个节点只有在与集群中的所有其他节点共享其 cluster.name 时才能加入集群 # 即 同一集群内所有节点的 cluster.name 必须保持一致 # cluster.name: tdc-es # # ------------------------------------ Node ------------------------------------ # # Use a descriptive name for the node: # 使用节点的描述性名称: # Elasticsearch 使用 node.name 作为 Elasticsearch 特定实例的人类可读标识符。 # 该名称包含在许多 API 的响应中。 # 默认情况下,节点名称在 Elasticsearch 启动时默认为机器的主机名。 # node.name: node-1 # # Add custom attributes to the node: # 向节点添加自定义属性: # #node.attr.rack: r1 # # ----------------------------------- Paths ------------------------------------ # # Path to directory where to store the data (separate multiple locations by comma): # 存储数据的目录路径(用逗号分隔多个位置): # # path.data: /es/data path.data: "D:\\es\\data" # # Path to log files: # # path.logs: /es/logs path.logs: "D:\\es\\logs" # # ----------------------------------- Memory ----------------------------------- # # Lock the memory on startup: # 启动时锁定内存: # #bootstrap.memory_lock: true # # Make sure that the heap size is set to about half the memory available # on the system and that the owner of the process is allowed to use this # limit. # 确保堆大小设置为系统可用内存的一半左右,并且允许进程的所有者使用此限制。 # # Elasticsearch performs poorly when the system is swapping the memory. # 当系统交换内存时,Elasticsearch 表现不佳。 # # ---------------------------------- Network ----------------------------------- # # By default Elasticsearch is only accessible on localhost. Set a different # address here to expose this node on the network: # 默认情况下,Elasticsearch 只能在本地主机上访问。在此处设置不同的地址以在网络上公开此节点: # 默认情况下,Elasticsearch 只绑定回环地址,例如 127.0.0.1 和 [::1]。 # 这足以在单个服务器上运行一个或多个节点的集群进行开发和测试,但弹性生产集群必须涉及其他服务器上的节点。 # 注意:当您为 network.host 提供值时,Elasticsearch 假定您正在从开发模式转移到生产模式,并将许多系统启动检查从警告升级到异常。 # # network.host: 192.168.0.1 network.host: 0.0.0.0 # # By default Elasticsearch listens for HTTP traffic on the first free port it # finds starting at 9200. Set a specific HTTP port here: # 默认情况下,Elasticsearch 侦听从 9200 开始的第一个空闲端口上的 HTTP 流量。在此处设置特定的 HTTP 端口: http.port: 9201 # # 传输网络层端口,用于集群间通信 transport.port: 9301 #  # For more information, consult the network module documentation. # 有关更多信息,请参阅网络模块文档。 # # --------------------------------- Discovery ---------------------------------- # # Pass an initial list of hosts to perform discovery when this node is started: # The default list of hosts is ["127.0.0.1", "[::1]"] # 传递初始主机列表以在此节点启动时执行发现: # 默认的主机列表是 ["127.0.0.1", "[::1]"] # 注意:如果后期有新节点加入,新节点的 discovery.seed_hosts 没必要包含所有的节点,只要它里面包含集群中已有的节点信息,新节点就能发现整个集群了。 # discovery.seed_hosts: ["127.0.0.1:9301"] # # Bootstrap the cluster using an initial set of master-eligible nodes: # 使用一组初始的符合主节点的节点引导集群: # 即 初始的候选 master 节点列表 # #cluster.initial_master_nodes: ["node-1", "node-2"] cluster.initial_master_nodes: ["node-1"] # # For more information, consult the discovery and cluster formation module documentation. # 有关更多信息,请参阅发现和集群形成模块文档。 # # ---------------------------------- Various ----------------------------------- # # Require explicit names when deleting indices: # 删除索引时需要明确的名称: # #action.destructive_requires_name: true # 是否可以作为 master 的候选节点 node.master: true # 是否可以存储数据 node.data: true # 是否为预处理节点(默认 true) node.ingest: false 
  3. 启动
    正常情况下双击 bin 目录下的 elasticsearch.bat 即可运行。
    但是,由于笔主由于 JDK 版本环境问题,导致启动失败,不过 ES 7 开始就已经带上了 JDK
    在这里插入图片描述






    需要修改下 bin 目录下的 elasticsearch-env.bat 文件,在 if defined ES_JAVA_HOME {
    前加上 set JAVA_HOME="D:\c-workSpace\elasticsearch\elasticsearch-7.14.0\jdk"
    在这里插入图片描述
    然后双击 bin 目录下的 elasticsearch.bat 即可运行。




  4. 集群节点配置
    node2 节点配置如下

    cluster.name: tdc-es node.name: node-2 path.data: "D:\\es\\data2" path.logs: "D:\\es\\logs2" network.host: 0.0.0.0 http.port: 9202 transport.port: 9302 discovery.seed_hosts: ["127.0.0.1:9301"] node.master: true node.data: true node.ingest: false 

    node3 节点配置如下

    cluster.name: tdc-es node.name: node-3 path.data: "D:\\es\\data3" path.logs: "D:\\es\\logs3" network.host: 0.0.0.0 http.port: 9203 transport.port: 9303 discovery.seed_hosts: ["127.0.0.1:9301"] node.master: true node.data: true node.ingest: false 

    node2node3 节点启动,至此 3 个节点的 ES 集群搭建完成。

三、Logstash 搭建

  1. 下载

官方地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.14.1-windows-x86_64.zip

  1. 解压
    在这里插入图片描述

  2. 配置
    config 目录下创建一个 logstash.conf 文件,文件内容如下:

    input { 
          file { 
          path => "D:/ELK/logs/tdc-gateway.log" # 应用日志文件存放路径 start_position => "beginning" codec => multiline { 
          pattern => "^(20)[0-9]{ 
         2}-[0-9]{ 
         2}-[0-9]{ 
         2}" # 正则表达式,匹配开头为 "年月日" 的为一条日志的开始 negate => true # true表示若pattern正则匹配失败,则执行合并;false表示若pattern正则匹配失败,则执行合并。默认为false what => "previous" # previous表示跟前面的行合并;next表示跟后面的行合并 } } } output { 
          elasticsearch { 
          hosts => ["127.0.0.1:9201"] # ES地址 index => "tdc-%{ 
         +YYYY.MM.dd}" # 索引 } stdout { 
          codec => json } } 
  3. 启动
    bin 目录下打开命令窗口,执行命令:
    .\logstash.bat -f ../config/logstash.conf
    在这里插入图片描述






  4. 使用
    在需要使用 ELK 收集日志的项目中的 logback-spring.xml 文件加入如下配置即可

           <appender name="LOGSTASH2FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <append>true        append>         <file>D:/ELK/logs/tdc-gateway.log         file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">          <fileNamePattern>D:/ELK/logs/tdc-gateway.%d{yyyyMMdd}.log          fileNamePattern>            rollingPolicy> <encoder> <pattern>${FILE_LOG_PATTERN}            pattern>              encoder>               appender> 

四、Kibana 搭建

  1. 下载

官网地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.14.1-windows-x86_64.zip

  1. 解压
    在这里插入图片描述

  2. 配置
    修改 config 目录下的 kibana.yml 文件:

    # 服务端口 server.port: 5601 # 服务地址 server.host: "127.0.0.1" # ES 地址 elasticsearch.hosts: ["http://localhost:9201"] # 启用中文 i18n.locale: "zh-CN" 
  3. 启动
    双击 bin 目录下的 kibana.bat 即可启动。

  4. 创建索引
    页面位置:菜单 > Management > Stack Management > Kibana > 索引模式 > 创建索引
    【注意】笔主这里在前面的 logstash.confoutputelasticsearchindex"tdc-%{+YYYY.MM.dd}",各位根据自己实际情况进行配置即可。
    在这里插入图片描述






  5. 查看日志
    页面位置:菜单 > Analytics > Discover
    在这里插入图片描述
    在这里插入图片描述






版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178850.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:23
下一篇 2026年3月26日 下午4:23


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号