SpringCloud——ELK搭建(Windows版)
一、介绍
二、ES(Elasticsearch)集群搭建
- 下载
官方地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.14.0-windows-x86_64.zip
- 解压
这里我们准备搭建一个3节点集群,所以解压了三个。
建议先解压出一个,做好相关配置后,在进行复制调整。
笔主这里是先解压出了elasticsearch-7.14.0,做好相关配置后,复制出elasticsearch-7.14.0-node2和elasticsearch-7.14.0-node2,并进行相关调整。
- 配置
配置文件为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 - 启动
正常情况下双击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即可运行。 - 集群节点配置
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: falsenode3节点配置如下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将
node2和node3节点启动,至此 3 个节点的 ES 集群搭建完成。
三、Logstash 搭建
- 下载
官方地址:https://artifacts.elastic.co/downloads/logstash/logstash-7.14.1-windows-x86_64.zip
- 解压

- 配置
在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 } } - 启动
在bin目录下打开命令窗口,执行命令:
.\logstash.bat -f ../config/logstash.conf
- 使用
在需要使用 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 搭建
- 下载
官网地址:https://artifacts.elastic.co/downloads/kibana/kibana-7.14.1-windows-x86_64.zip
- 解压

- 配置
修改config目录下的kibana.yml文件:
# 服务端口 server.port: 5601 # 服务地址 server.host: "127.0.0.1" # ES 地址 elasticsearch.hosts: ["http://localhost:9201"] # 启用中文 i18n.locale: "zh-CN" - 启动
双击bin目录下的kibana.bat即可启动。
- 创建索引
页面位置:菜单 > Management > Stack Management > Kibana > 索引模式 > 创建索引
【注意】笔主这里在前面的logstash.conf的output的elasticsearch的index是"tdc-%{+YYYY.MM.dd}",各位根据自己实际情况进行配置即可。
- 查看日志
页面位置:菜单 > Analytics > Discover

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