行业资讯 2025年08月6日
0 收藏 0 点赞 493 浏览 4856 个字
摘要 :

文章目录 前言 1、ELK概述 2、环境&版本 3、Elasticsearch 3.1、下载Elasticsearch 3.2、安装Elasticsearch 3.3、配置Elasticsearch 3.4、启动Elasticsearch 4、L……




  • 前言
  • 1、ELK概述
  • 2、环境&版本
  • 3、Elasticsearch
    • 3.1、下载Elasticsearch
    • 3.2、安装Elasticsearch
    • 3.3、配置Elasticsearch
    • 3.4、启动Elasticsearch
  • 4、Logstash
    • 4.1、下载Logstash
    • 4.2、安装Logstash
    • 4.3、配置Logstash
    • 4.4、启动Logstash
  • 5、Kibana
    • 5.1、下载Kibana
    • 5.2、安装Kibana
    • 5.3、配置Kibana
    • 5.4、启动Kibana
  • 6、SpringBoot集成ELK
    • 6.1、添加依赖
    • 6.2、修改Logback配置
    • 6.3、启动SpringBoot项目
    • 6.4、在Kibana中查看日志
  • 总结

前言

本文详细介绍了在CentOS 7操作系统上搭建ELK以及在SpringBoot项目中整合ELK的步骤。以下内容来自掘金用户汪小成。

1、ELK概述

ELK代表Elasticsearch、Logstash和Kibana三个开源项目的首字母缩写。这三个项目共同构成了一个成熟且强大的实时日志集中处理方案。在这个方案中,Logstash用于日志收集,Elasticsearch则用于数据存储和索引,而Kibana则提供了一个直观的可视化界面,用于查看存储在Elasticsearch中的日志数据。

2、环境&版本

服务器系统版本、JDK版本、ELK版本信息如下:

环境 版本 端口号
Centos 7.9
JDK 1.8
Elasticsearch 7.2.1 39100
Logstash 7.2.1 39102
Kibana 7.2.1 39101

ElasticsearchLogstashKibana三个开源项目都需要在Java环境下运行,所以需要提前在服务器上安装JDK。

centos的环境搭建的JDK1.8。本文中没有讲述JDK的安装,有需要的朋友可以参考《Centos7 安装JDK1.8》文章。

3、Elasticsearch

3.1、下载Elasticsearch

$ wget –c  https://mirrors.huaweicloud.com/elasticsearch/7.2.1/elasticsearch-7.2.1-x86_64.rpm

为了更快的下载速度,我选择在华为开源镜像站下载Elasticsearch。

3.2、安装Elasticsearch

$ rpm -ivh elasticsearch-7.2.1-x86_64.rpm

3.3、配置Elasticsearch

Elasticsearch配置文件位置:/etc/elasticsearch

进入配置文件所在文件夹:

$ cd /etc/elasticsearch

备份配置文件(非必要):

$ cp elasticsearch.yml elasticsearch.backup.yml

使用vim打开elasticsearch.yml配置文件,按下i进入编辑模式。修改内容如下:

network.host: 0.0.0.0
http.port: 39100
discovery.seed_hosts: [\"127.0.0.1:39100\"]

配置项说明:

network.host用于设置绑定的主机地址,可以是IP地址或主机名。http.port用于设置监听的HTTP端口,出于一些特殊原因,我将elasticsearch的端口号由默认的9200修改为39100discovery.seed_hosts用于设置集群节点的种子主机地址,用于节点发现和加入集群。

3.4、启动Elasticsearch

# 启动Elasticsearch
$ sudo systemctl start elasticsearch

将Elasticsearch设置为开机启动(非必要):

# 将Elasticsearch设置为开机自启
$ sudo systemctl enable elasticsearch

查看Elasticsearch的运行状态:

$ sudo systemctl status elasticsearch

或者,使用如下命令检查Elasticsearch是否启动成功:

# 检查Elasticsearch是否启动成功
$ netstat -antp | grep 39100

待Elasticsearch启动成功后,可以使用curl命令来测试Elasticsearch是否正常运行。例如:

$ curl http://127.0.0.1:39100

如果返回类似以下内容,说明Elasticsearch已经成功运行:

{
  \"name\" : \"localhost.localdomain\",
  \"cluster_name\" : \"elasticsearch\",
  \"cluster_uuid\" : \"NqlpN5iJQmeSV_TvHqPo6w\",
  \"version\" : {
    \"number\" : \"7.2.1\",
    \"build_flavor\" : \"default\",
    \"build_type\" : \"rpm\",
    \"build_hash\" : \"fe6cb20\",
    \"build_date\" : \"2019-07-24T17:58:29.979462Z\",
    \"build_snapshot\" : false,
    \"lucene_version\" : \"8.0.0\",
    \"minimum_wire_compatibility_version\" : \"6.8.0\",
    \"minimum_index_compatibility_version\" : \"6.0.0-beta1\"
  },
  \"tagline\" : \"You Know, for Search\"
}

最后,使用如下命令修改Centos防火墙配置开放端口号供外访问:

$ sudo firewall-cmd --zone=public --add-port=39100/tcp --permanent

重新加载防火墙规则以使更改生效:

$ sudo firewall-cmd --reload

4、Logstash

4.1、下载Logstash

在华为开源镜像站下载Logstash:

$ wget –c https://repo.huaweicloud.com/logstash/7.2.1/logstash-7.2.1.rpm

4.2、安装Logstash

$ rpm -ivh logstash-7.2.1.rpm

4.3、配置Logstash

/etc/logstash/conf.d文件夹下创建logstash.conf配置文件,配置文件内容如下:

input {
    tcp {
        host => \"0.0.0.0\"
        port => 39102
        mode => \"server\"
        codec => json_lines
    }
}
output {
    elasticsearch {
        hosts => \"localhost:39100\"
        index => \"%{[appname]}-%{+YYYY.MM.dd}\"
    }
}

配置说明:

input – 用于定义数据的输入源,即Logstash的数据来源。

tcp – 用于指定Logstash监听指定的IP和端口,接收 TCP 连接传入的数据。

host – 监听的主机IP地址,这里的0.0.0.0表示监听所有可用的网络接口。

port – 监听的端口号。我这里将端口号由默认的9600改为了39102

mode – 连接模式。

codec – 数据编码解码方式,json_lines表示接收到的数据将以JSON行的形式解析。

output – 用于定义数据的输出目录。

elasticsearch – 表示将数据输出到Elasticsearch集群。

hosts – 用于设置Elasticsearch集群的主机地址和端口号。

index – 用于指定Elasticsearch索引的名称。这里使用 %{[appname]} 表示索引名称从数据中的appname字段获取。%{+YYYY.MM.dd}表示在索引中包含日期信息。

4.4、启动Logstash

$ sudo systemctl start logstash

最后,使用如下命令修改Centos防火墙配置开放端口号供外访问:

$ sudo firewall-cmd --zone=public --add-port=39102/tcp --permanent

重新加载防火墙规则以使更改生效:

$ sudo firewall-cmd --reload

5、Kibana

5.1、下载Kibana

$ wget –c https://repo.huaweicloud.com/kibana/7.2.1/kibana-7.2.1-x86_64.rpm

5.2、安装Kibana

$ rpm -ivh kibana-7.2.1-x86_64.rpm

5.3、配置Kibana

进入/etc/kibana文件夹,修改kibana.yml配置文件中如下内容:

server.port: 39101
server.host: \"0.0.0.0\"
elasticsearch.hosts: [\"http://localhost:39100\"]
i18n.locale: \"zh-CN\"

配置说明:

server.port – 用于指定Kibana服务监听的端口号,这里我将端口号由默认的5601改成了39101

server.host – 用于指定Kibana服务监听的主机地址。”0.0.0.0″表示监听所有可用的网络接口,即可以从任意IP地址访问Kibana。

elasticsearch.hosts – 用于设置Elasticsearch集群的主机地址和端口号。

i18n.locale – 用于设置界面语言,这里将界面语言设置成了中文。

5.4、启动Kibana

$ sudo systemctl start kibana

最后,使用如下命令修改Centos防火墙配置开放端口号供外访问:

$ sudo firewall-cmd --zone=public --add-port=39101/tcp --permanent

重新加载防火墙规则以使更改生效:

$ sudo firewall-cmd --reload

6、SpringBoot集成ELK

Spring Boot应用输出日志到ELK的大体流程如下图所示:
CentOS7搭建SpringBoot项目整合ELK环境详解
说明:

Spring Boot应用产生日志数据,使用Logback日志框架记录日志。

Logstash作为日志收集器,接收Spring Boot应用发送的日志数据。

Logstash解析和过滤日志数据,可能会对其进行格式化和处理。
处理后的日志数据被发送到ElasticsearchElasticsearch将日志数据存储在分布式索引中。

Kibana连接到Elasticsearch,可以查看存储在Elasticsearch中的日志数据。

6.1、添加依赖

修改pom.xml文件,添加如下配置:

dependency>
    groupId>net.logstash.logbackgroupId>
    artifactId>logstash-logback-encoderartifactId>
    version>7.2version>
dependency>

6.2、修改Logback配置

修改Logback的配置文件:

+
+    
+    60.211.159.140:39102
+    
+    
+        
+        {\"appname\":\"spring-boot-elk\"}
+    
+


    +    

6.3、启动SpringBoot项目

这一步,我就不废话了。

6.4、在Kibana中查看日志

1、在浏览器地址样中输入服务器IP+Kibana端口号 –> 点击管理 –> 点击索引模式 –> 点击创建索引模式
CentOS7搭建SpringBoot项目整合ELK环境详解
2、输入索引模式名称 –> 点击下一步
CentOS7搭建SpringBoot项目整合ELK环境详解
3、设置时间筛选字段名称,我这里没有使用时间筛选。
CentOS7搭建SpringBoot项目整合ELK环境详解
4、点击Discover图标就可以看到Spring Boot项目输出的日志了。
CentOS7搭建SpringBoot项目整合ELK环境详解

总结

以上就是作者分享的CentOS7搭建Spring Boot项目整合ELK环境全部内容详解,希望对你有帮助!

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/9097.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号