SpringBoot利用ELK实现日志收集

这篇具有很好参考价值的文章主要介绍了SpringBoot利用ELK实现日志收集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot利用ELK实现日志收集

ELK是Elasticsearch、Logstash、Kibana他们三个组合起来可以搭建日志系统,本文主要记录使

用ELK收集SoringBoot应用产生的日志

Elasticsearch、Logstash、Kibana作用

  • Elasticsearch:存储日志信息

  • Logstash: 日志收集,springboot利用Logstash把日志发送个Logstash,然后Logstash将日志传递

给Elasticsearch。

  • Kibana:通过web端对日志进行可视化操作

对Elasticsearch安装

  • 下载Elasticsearch镜像

    docker pull Elasticsearch:7.6.2
    
  • 修改虚拟内存地址,否则可能出现内存过小无法启动

    sysctl -w vm.max_map_count=262144
    
  • 启动Elasticsearch服务:

    docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \ 
    -e "discovery.type=single-node" \ 
    -e "cluster.name=elasticsearch" \ 
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ 
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ 
    -d elasticsearch:7.6.2
    
  • 启动时/usr/share/elasticsearch会出现没有访问权限,需要修改/mydata/elasticsearch/data/权

    限,然后重新启动elasticsearch

    chmod 777 /mydata/elasticsearch/data/
    
  • 安装IKAnalyzer中文分词器,并重新启动:

    docker exec -it elasticsearch /bin/bash 
    #此命令需要在容器中运行 
    elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis- ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip 
    docker restart elasticsearch
    

:离线安装elasticsearch中插件

  • 1.下载elasticsearch-analysis-ik-7.6.2.zip

    https://github.com/medcl/elasticsearch-analysis- ik/releases/download/v7.6.2/elasticsearch-analysis-ik-7.6.2.zip
    
  • 2.上传到linux

  • 3.上传的linux复制到elasticsearch容器中

    docker cp elasticsearch-analysis-ik-7.6.2.zip elasticsearch:/
    
  • 4.安装插件

    docker exec -it elasticsearch /bin/bash elasticsearch-plugin install file:elasticsearch-analysis-ik-7.6.2.zip docker restart elasticsearch
    
  • 如果防火墙没有关闭

    firewall-cmd --zone=public --add-port=9200/tcp --permanent 
    firewall-cmd --reload
    

安装Logstash的Docker镜像

  • 1.下载Logstash镜像

    docker pull logstash:7.6.2
    
  • 2.添加Logstash配置文件logstash.conf

    input {
      tcp {
        mode => "server"
        host => "0.0.0.0"
        port => 4560
        codec => json_lines
        type => "manage"
      }
      tcp {
        mode => "server"
        host => "0.0.0.0"
        port => 4561
        codec => json_lines
        type => "star"
      }
      tcp {
        mode => "server"
        host => "0.0.0.0"
        port => 4562
        codec => json_lines
        type => "love"
      }
    }
    filter{
      if [type] == "record" {
        mutate {
          remove_field => "port"
          remove_field => "host"
          remove_field => "@version"
        }
        json {
          source => "message"
          remove_field => ["message"]
        }
      }
    }
    output {
      elasticsearch {
        hosts => "es:9200"
        index => "leinfty-%{type}-%{+YYYY.MM.dd}"
      }
    }
    
  • 3.创建/mydata/logstash,将logstash.conf拷贝到该目录

    mkdir /mydata/logstash
    
  • 4.启动logstash

    docker run --name logstash -p 4560:4560 -p 4561:4561 -p 4562:4562 \
    --link elasticsearch:es \
    -v /mydata/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf \
    -d logstash:7.6.2
    

Kibana安装

  • 1.下载Kibana镜像

    docker pull kibana:7.6.2
    
  • 2.启动Kibana

    docker run --name kibana -p 5601:5601 \
    --link elasticsearch:es \
    -e "elasticsearch.hosts=http://es:9200" \
    -d kibana:7.6.2
    
  • 3.如果防火墙没有关闭

    firewall-cmd --zone=public --add-port=5601/tcp --permanent 
    firewall-cmd --reload
    
  • 4.将kibana变为中文

    docker exec -it kibana bash 
    cd config 
    vi kibana.yml
    
  • 5.在kibana.yml中添加

    il8n.locale:"zh-CN"
    
  • 6.访问http://xxxx:5601进行测试

SpringBoot利用ELK实现日志收集

SpringBoot集成Logstash

添加Logstash依赖

<!--集成logstash--> 
<dependency> 
    <groupId>net.logstash.logback</groupId> 
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.3</version> 
</dependency>

添加配置文件logback-spring.xml,使得logbach日志输入到logstash

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml"/>
    <include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
    <!--应用名称-->
    <property name="APP_NAME" value="leinfty-love"/>
    <!--日志文件保存路径-->
    <property name="LOG_FILE_PATH" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}}/logs}"/>
    <contextName>${APP_NAME}</contextName>
    <!--每天记录日志到文件appender-->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_FILE_PATH}/${APP_NAME}-%d{yyyy-MM-dd}.log</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
        <encoder>
            <pattern>${FILE_LOG_PATTERN}</pattern>
        </encoder>
    </appender>
    <!--输出到logstash的appender-->
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <!--可以访问的logstash日志收集端口-->
        <destination>ip:4562</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="FILE"/>
        <appender-ref ref="LOGSTASH"/>
    </root>
</configuration>

application.yml中添加配置进行测试

logging: 
    file: 
        path: /var/logs 
    level: 
        root: info 
    config: classpath:logback-spring.xml

查看收集的日志

  • 1.创建索引

SpringBoot利用ELK实现日志收集

SpringBoot利用ELK实现日志收集

SpringBoot利用ELK实现日志收集

SpringBoot利用ELK实现日志收集

权限控制

  • 进入es容器

    docker exec -it elasticsearch bash
    
  • 修改配置

    vi config/elasticsearch.yml
    
  • 启用安全配置

    xpack.security.enabled: true
    
    xpack.license.self_generated.type: basic
    
    xpack.security.transport.ssl.enabled: true
    
  • 重启es容器

    exit
    docker restart elasticsearch
    
  • 设置密码

    docker exec -it elasticsearch bash
    
    bin/elasticsearch-setup-passwords interactive
    

    按提示填入各类应用的密码

  • 进入kibana容器

    docker exec -it kibana bash
    
  • 配置kibana连接elastic的设置

    vi config/kibana.yml
    
    elasticsearch.username: "elastic"
    elasticsearch.password: "xxx"
    
  • 重启kibana容器

    docker restart kibana
    
  • 配置logstash连接elastic的设置

    vi /mydata/logstash/logstash.conf
    
    output {
      elasticsearch {
        hosts => "es:9200"
        user => "elastic"
        password => "xxx"
        index => "leinfty-%{type}-%{+YYYY.MM.dd}"
      }
    }
    
  • 重启logstash

    docker restart logstash
    
  • 验证账号登录
    SpringBoot利用ELK实现日志收集文章来源地址https://www.toymoban.com/news/detail-403539.html

到了这里,关于SpringBoot利用ELK实现日志收集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于elk的springboot web日志收集存储方案

    web系统的日志按照价值排序分类 controller层的接口访问日志(debug日志) 自定义包下的其他日志(debug日志) 全局日志 ① 全局错误日志 ② 部分组件的debug日志 ③ 部分组件的Info日志 一般来讲,1和2的价值最大,2可基于实际业务情况,进一步划分,如component目录下日志,ser

    2024年02月09日
    浏览(32)
  • Elk+Filebeat+Kafka实现日志收集

    1.实验组件 2.安装前准备 3.安装Zookeeper 1.安装Kafka 2.命令行测试  1.安装Filebeat 2.时间同步 3.配置filebeat 4.配置logstash 1.安装配置filebeat 2.配置logstash

    2024年02月05日
    浏览(45)
  • 【日志篇】Spring Boot 整合 ELK 实现日志收集与检索

    Elasticsearch 入门必读 Docker安装ELK 【数据篇】SpringBoot 整合 Elasticsearch 实践数据搜索引擎 整合前务必先看看 【Docker安装ELK】 这篇文章!!! Demo 地址:mingyue-springboot-logstash 1.添加 logback.xml 2.编辑 logstash 配置文件 到这儿就结束了,哈哈哈~ 启动项目,接下来走验证流程,看看日

    2024年02月05日
    浏览(34)
  • Elasticsearch实践:ELK+Kafka+Beats对日志收集平台的实现

    可以在短时间内搜索和分析大量数据。 Elasticsearch 不仅仅是一个全文搜索引擎,它还提供了分布式的多用户能力,实时的分析,以及对复杂搜索语句的处理能力,使其在众多场景下,如企业搜索,日志和事件数据分析等,都有广泛的应用。 本文将介绍 ELK+Kafka+Beats 对日志收集

    2024年02月08日
    浏览(34)
  • ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

    大致流程:将nginx 服务器(web-filebeat)的日志通过filebeat收集之后,存储到缓存服务器kafka,之后logstash到kafka服务器上取出相应日志,经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环境准备 二、搭建zookeeper集群 前提条件:三台机器分别修改时区、关闭防火墙

    2024年02月04日
    浏览(45)
  • 基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

           先准备3台Nginx服务器,用做后端服务器,(由于机器有限,也直接用这三台机器来部署ES集群),然后准备2台服务器做负载均衡器(Nginx实现负载均衡具体实现操作有机会在介绍),如果是简单学习测试,可以先使用3台Nginx服务器就可以,先告一段落。 3台Nginx服务

    2024年02月15日
    浏览(32)
  • 【ELK日志收集系统】

    目录 一、概述 1.作用 2.为什么使用? 二、组件 1.elasticsearch 1.1 作用 1.2 特点 2.logstash 2.1 作用 2.2 工作过程 2.3 INPUT 2.4 FILETER 2.5 OUTPUTS 3.kibana 三、架构类型 1.ELK 2.ELKK 3.ELFK 4.ELFKK 四、案例 - 构建ELK集群 1.环境配置 2.安装node1与node2节点的elasticsearch 2.1 安装 2.2 配置 2.3 启动ela

    2024年02月10日
    浏览(38)
  • ELK---日志收集系统

    1.要收集哪些日志? ①系统日志–为监控做准备 ②服务日志–数据库–MySQL–慢查询日志、错误日志、普通日志 ③业务日志–log4j( 必须要收集的是业务日志 ) 注:log4j—Java类的数据业务日志 (1)要有针对性的去收集 (2)调整日志级别 2.日志收集后,如何展示?(可视化

    2023年04月08日
    浏览(38)
  • ELK日志收集系统

    ELK由三个组件构成 作用:日志收集 日志分析 日志可视化     日志分析     开源的日志收集、分析、存储程序     特点         分布式         零配置         自动发现         索引自动分片         索引副本机制         Restful风格接口         多数据源

    2024年02月10日
    浏览(37)
  • ELK日志收集记录

    logstash在需要收集日志的服务器里运行,将日志数据发送给es 在kibana页面查看es的数据 es和kibana安装: Install Elasticsearch with RPM | Elasticsearch Guide [8.8] | Elastic Configuring Elasticsearch | Elasticsearch Guide [8.8] | Elastic Install Kibana with RPM | Kibana Guide [8.8] | Elastic 需要收集日志的服务器里安装

    2024年02月09日
    浏览(55)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包