0
点赞
收藏
分享

微信扫一扫

springboot + Vue前后端项目(第二十一记)

一叶轻舟okok 2024-06-29 阅读 2

目录

一、SpringBoot3.X整合logback配置1.1 log4j、logback、self4j 之间关系

1.2 SpringBoot3.X整合logback配置

二、日志可视化分析ElasticStack

2.1为什么要有Elastic Stack

2.2 什么是Elastic Stack

三、ElasticSearch8.X源码部署

四、Kibana源码部署

五、LogStash8.X源码安装部署

5.1 LogStash宏观配置文件组成

 5.2 安装部署

六、FileBeat安装部署

6.1为什么要有FileBeat?

6.2FileBeat配置

七、ElasticStack全链路配置

7.1 Filebeat部署

  本博文将详细阐述如何通过一系列技术栈——包括Filebeat、Logstash、Elasticsearch(ES)和Kibana——来处理、索引、存储并可视化nannanw-demo.log日志文件的整个过程。将详细介绍这些步骤,确保您能够轻松地检索、分析和洞察日志文件中的重要信息。

 通过下面的流程,nannanw-demo.log日志文件将被Filebeat高效地收集,并通过Logstash进行必要的转换和过滤,然后发送到Elasticsearch集群中进行索引和存储。最终,用户将能够通过Kibana这个强大的数据可视化工具来检索和分析这些日志数据,从而获取有价值的业务洞察。

一、SpringBoot3.X整合logback配置
1.1 log4j、logback、slf4j 之间关系

1.2 SpringBoot3.X整合logback配置

打印代码:

  private static final Logger logger =
            LoggerFactory.getLogger(ProductController.class);

    @RequestMapping("findById")
    public Object findById(@RequestParam("id") long id ){
        ProductDO productDO = productService.findById(id);
        logger.info("这个是查询接口日志,info级别");
        logger.error("这个是查询接口日志,error级别");
        return productDO;
    }

配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <property name="LOG_HOME" value="./logs" />

    <!--采用打印到控制台,记录日志的方式-->
    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!-- 采用保存到日志文件 记录日志的方式,
    %d{yyyy-MM-dd HH:mm:ss.SSS}:输出日志发生的时间,精确到毫秒。
    [%thread]:输出日志所在的线程名。
    %-5level:输出日志级别,使用占位符%5level可以保持日志级别的对齐。
    %logger{36}:输出日志所在的类名(只输出类名的后36个字符)。
    %msg:输出日志消息。
    %n:新行。
    -->
    <appender name="rollingFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME}/nannanw-demo.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/nannanw-demo-%d{yyyy-MM-dd}.log</fileNamePattern>
        </rollingPolicy>
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>


    <!-- 指定某个类单独打印日志  logger是配置某个包或者类采用哪几个appender记录日志,比如控制台/文件;-->
    <logger name="net.nannanw.service.impl.LogServiceImpl"
            level="INFO" additivity="false">
        <appender-ref ref="rollingFile" />
        <appender-ref ref="console" />
    </logger>

    <root level="INFO" additivity="false">
        <appender-ref ref="rollingFile" />
    </root>

</configuration>


二、日志可视化分析ElasticStack

2.1为什么要有Elastic Stack

2.2 什么是Elastic Stack

常见的数据采集流程:Beats 采集(Filebeat/Metricbeat)–> Logstash –> Elasticsearch –> Kibana
Elasticsearch:一个分布式实时搜索和分析引擎,能够快速地存储、搜索和分析大量结构化和非结构化数据,它是Elastic Stack的核心组件,提供分布式数据存储和搜索能力。

Logstash:是一个用于数据收集、转换和传输的数据处理引擎,支持从各种来源(如文件、日志、数据库等)收集数据
可以对数据进行结构化、过滤和转换,然后将数据发送到Elasticsearch等目标存储或分析系统。

Kibana:数据可视化和仪表盘工具,连接到Elasticsearch,通过简单易用的用户界面创建各种图表、图形和仪表盘

Beats:是轻量级的数据收集器,用于收集和发送各种类型的数据到Elasticsearch或Logstash
Beats提供了多种插件和模块,用于收集和传输日志、指标数据、网络数据和安全数据等

总结:Elastic Stack的架构主要是将各个组件连接起来形成数据处理和分析的流程

三、ElasticSearch8.X源码部署

1.上传安装包和解压:
tar -zxvf elasticsearch-8.4.1-linux-x86_64.tar.gz


2.新建一个用户,安全考虑,elasticsearch默认不允许以root账号运行
创建用户:useradd es_user
设置密码:passwd es_user


3.修改目录权限
# chmod是更改文件的权限   
# chown是改改文件的属主与属组  
# chgrp只是更改文件的属组。

chgrp -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chown -R es_user /usr/local/software/elk_test/elasticsearch-8.4.1
chmod -R  777 /usr/local/software/elk_test/elasticsearch-8.4.1

4.修改文件和进程最大打开数,需要root用户,如果系统本身有这个文件最大打开数和进程最大打开数配置,则不用
在文件内容最后添加后面两行(切记*不能省略)
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535


5.修改虚拟内存空间,默认太小
在配置文件中改配置 最后一行上加上,执行 sysctl -p(立即生效)
vim /etc/sysctl.conf 
vm.max_map_count=262144
6.修改elasticsearch的JVM内存,机器内存不足,常规线上推荐16到24G内存
vim config/jvm.options
-Xms1g
-Xmx1g


7.修改 elasticsearch相关配置

vim config/elasticsearch.yml

cluster.name: nannanw-application
node.name: node-1
path.data: /usr/local/software/elk_test/elasticsearch-8.4.1/data
path.logs: /usr/local/software/elk_test/elasticsearch-8.4.1/logs
network.host: 0.0.0.0
http.port: 9200
cluster.initial_master_nodes: ["node-1"]
xpack.security.enabled: false
xpack.security.enrollment.enabled: false
ingest.geoip.downloader.enabled: false


8.配置说明

9.启动ElasticSearch
切换到es_user用户启动, 进入bin目录下启动, &为后台启动,再次提示es消息时 Ctrl + c 跳出
./elasticsearch &

10.常见命令,可以用postman访问(使用阿里云网络安全组记得开放端口)

 11.常见问题注意


四、Kibana源码部署

1.上传安装包和解压
tar -zxvf kibana-8.4.1-linux-x86_64.tar.gz

2.配置用户权限
chgrp -R es_user /usr/local/software/elk_test/kibana-8.4.1
chown -R es_user /usr/local/software/elk_test/kibana-8.4.1
chmod -R  777 /usr/local/software/elk_test/kibana-8.4.1

3.修改配置文件 
vim config/kibana.yml

server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://112.74.7.xxx:9200"]
i18n.locale: "zh-CN" #汉化

server.port: 指定Kibana服务器监听的端口号,Kibana将在5601端口上监听HTTP请求。
server.host: 指定Kibana服务器绑定的网络接口地址, "0.0.0.0"表示监听所有可用的网络接口。
elasticsearch.hosts: 指定ES集群的主机地址,可以配置多个,Kibana将连接到位于"112.74.7.xxx"主机上、使用默认HTTP端口9200的es
i18n.locale: 指定Kibana界面的语言区域,"zh-CN"表示使用简体中文作为语言。

4.启动,切换到es_user 用户, 建议先不用守护进程方式启动,可以直接启动查看日志
./kibana &

5.访问(网络安全组记得开发端口)
# 验证请求
http://112.74.7.xxx:5601

#查看集群健康情况
GET /_cluster/health

#查看分片情况
GET /_cat/shards?v=true&pretty

#查看节点分布情况
GET /_cat/nodes?v=true&pretty

#查看索引列表
GET /_cat/indices?v=true&pretty

验证连接es是否成功:


五、LogStash8.X源码安装部署

5.1 LogStash宏观配置文件组成

 5.2 安装部署

1.上传安装包和解压
tar -zxvf logstash-8.4.1-linux-x86_64.tar.gz

JVM内存不够的话修改 config/jvm.options

2.创建新配置文件 touch config/test-logstash.conf

注: 这个内容输入得时候,注意不要有多余得换行符 空格等得。建议在linux中 vim直接编辑。

3.配置文件

4.启动,进入bin目录

./logstash -f /usr/local/software/elk_test/logstash-8.4.1/config/test-logstash.conf &

执行成功后,进入kibana索引管理页面查看:

出现下图得这种就表示logstash内容已经写入es了


通过kibana查看es日志:

可以指定traceId:888888889123进行检索

六、FileBeat安装部署

6.1为什么要有FileBeat?

6.2FileBeat配置

七、ElasticStack全链路配置

数据采集链路
Beats 采集(Filebeat/Metricbeat)–> Logstash –> Elasticsearch –> Kibana

7.1 Filebeat部署

1.安装包和解压
tar -zxvf filebeat-8.4.1-linux-x86_64.tar.gz

2.进入目录,创建配置文件 touch test-filebeat.yml
 

模拟日志数据,准备日志文件,/usr/local/software/elk_test/nannanw-demo.log 


3.配置LogStash配置文件


input:指定Logstash接收数据的输入插件。使用beats插件作为输入.beats插件用于接收来自Beats数据采集器的日志数据。
beats:指定使用的输入插件是beats插件。
port:指定beats插件监听的端口号, Logstash会监听5044端口,等待来自Beats采集器的数据。

4.启动logstash (停止之前进程)
./logstash -f /usr/local/software/elk_test/logstash-8.4.1/config/test-beat-logstash.conf &

5.启动filebeat,停止方案 ps -ef |grep filebeat
./filebeat -e -c test-filebeat.yml &

6.kibana验证

全文到这就结束了,以上内容就是nannanw-demo.log 从文件到写入es 到kibana展示检索得全部过程~

举报

相关推荐

0 条评论