Spring Boot 两步集成 日志收集ELK与分布式系统监控CAT

日志收集ELK与分布式系统监控CAT


Spring Boot项目集成方法

一. pom.xml引入starter依赖
<dependency>
    <groupId>com.louis</groupId>
    <artifactId>ylog-spring-boot-starter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>
二. bootstrap.yml配置文件开启日志
ylog:
  enable-y-log: ${YLog_Enable:true}
  app-name: ${spring.application.name}
  env: ${spring.profiles.active}
  cat:
    enable-cat: ${YLog_Enable_Cat:true}
    http-port: ${YLog_Cat_HttpPort:8081}
    port: ${YLog_Cat_Port:2280}
    cat-servers: ${YLog_Cat_Servers:192.168.102.212}
    enable-spring-bean-aop: true
  elk:
    enable-elk: ${YLog_Enable_Elk:true}
    logstash-host: ${YLog_Enable_elk:192.168.102.130:30309}

附录:服务安装


一. ELK安装

1. ElasticSearch安装
  • 下载所需版本压缩包并解压
  • 修改/config/elasticsearch.yml
    network.host=127.0.0.1
    network.port=9200
  • 启动/bin/elasticsearch.bat
  • 浏览器访问http://localhost:9200/,正常返回ES服务器json格式信息,即为安装成功
2. Logstash安装
  • 下载所需版本压缩包并解压
  • 修改/config/logstash.yml
    xpack.monitoring.elasticsearch.hosts: ["http://localhost:9200"]
  • 新建/config/log4j_to_es.conf文件,文件内容如下:
    input {
        tcp {
            port => 4560
            codec => json_lines
        }
    }
    output {
            elasticsearch {
                    hosts => "127.0.0.1:9200"
                    index => "applog"
            }
            stdout { codec => rubydebug}
    }
    • 新建/bin/run_default.bat文件,文件内容如下:

      D:\ELK\logstash-7.4.0\bin\logstash.bat -f D:\ELK\logstash-7.4.0\bin\log4j_to_es.conf
      pause
    • 启动/bin/run_default.bat
    • 查看控制台输出,没有ERROR。浏览器访问http://localhost:9600/, 正常返回服务器json格式信息,即为安装成功
3. Kibana安装
  • 下载所需版本压缩包并解压
  • 修改/config/kibana.yml
    elasticsearch.hosts: ["http://localhost:9200"]
    elasticsearch.requestTimeout: 90000
  • 运行/bin/kibana.bat
  • 访问http://localhost:5601 正常展示kibana页面,即为安装成功

官方文档: gitbook

二. CAT安装

  • 下载官方开源源码: https://github.com/dianping/cat.git
  • 切换到2.0.0版本(一部分cat插件在3.0.0的版本中移除了,需要先在2.0.0的版本上安装到本地maven库):
    git checkout v2.0.0
  • 执行mvn命令安装插件
    mvn clean install -Dmaven.test.skip=true
  • 切换到3.0.0版本
    git checkout v3.0.0
  • 新建mysql数据库cat, 执行3.0.0分支下的/script/CatApplication.sql脚本完成初始化
  • 新增配置文件client.xml到tomcat安装盘,如文件目录:C:\data\appdatas\cat\client.xml,配置内容:
    <?xml version="1.0" encoding="utf-8"?>
    <config mode="client" xmlns:xsi="http://www.w3.org/2001/XMLSchema" xsi:noNamespaceSchemaLocation="config.xsd">
      <servers>
          <!-- Local mode for development -->
          <server ip="10.0.75.1" port="2280" http-port="8080" />
          <!-- If under production environment, put actual server address as list. -->
          <!-- <server ip="192.168.7.71" port="2280" /> -->
      </servers>
    </config>

    本地调试时ip为本机内网地址,写127.0.0.1可能导致服务启动失败

    • 新增配置文件server.xml到tomcat安装盘,如文件目录C:\data\appdatas\cat\server.xml,配置内容:

      <?xml version="1.0" encoding="utf-8"?>
      
      <!-- Configuration for development environment-->
      <config local-mode="false" hdfs-machine="false" job-machine="true" alert-machine="false">
      
          <storage  local-base-dir="/data/appdatas/cat/bucket/" max-hdfs-storage-time="15" local-report-storage-time="7" local-logivew-storage-time="7">
      
          </storage>
      
          <console default-domain="Cat" show-cat-domain="true">
              <remote-servers>10.0.75.1:8080</remote-servers>
          </console>
      
      </config>

      本地调试时ip为本机内网地址,写127.0.0.1可能导致服务启动失败

    • 新增配置文件datasources.xml到tomcat安装盘,如文件目录C:\data\appdatas\cat\datasources.xml,配置内容:
      <?xml version="1.0" encoding="utf-8"?>
      
      <data-sources>
          <data-source id="cat">
              <maximum-pool-size>3</maximum-pool-size>
              <connection-timeout>1s</connection-timeout>
              <idle-timeout>10m</idle-timeout>
              <statement-cache-size>1000</statement-cache-size>
              <properties>
                  <driver>com.mysql.jdbc.Driver</driver>
                  <url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>
                  <user>root</user>
                  <password>123456</password>
                  <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true]]></connectionProperties>
              </properties>
          </data-source>
          <data-source id="app">
              <maximum-pool-size>3</maximum-pool-size>
              <connection-timeout>1s</connection-timeout>
              <idle-timeout>10m</idle-timeout>
              <statement-cache-size>1000</statement-cache-size>
              <properties>
                  <driver>com.mysql.jdbc.Driver</driver>
                  <url><![CDATA[jdbc:mysql://127.0.0.1:3306/cat]]></url>
                  <user>root</user>
                  <password>123456</password>
                  <connectionProperties><![CDATA[useUnicode=true&autoReconnect=true]]></connectionProperties>
              </properties>
          </data-source>
      </data-sources>
  • 执行mvn命令打包源码
    mvn clean install -Dmaven.test.skip=true
  • 拷贝/cat-home/target/cat-home-3.0.0.jar到tomcat的安装目录下,并重命名为car.jar: /webapps/cat.jar
  • 启动tomcat
  • 访问http://localhost:8080/cat, 正常展示cat主页,即为安装成功

ylog-spring-boot-starter源码: github

原文地址:https://www.cnblogs.com/LouisGuo/p/12170608.html

时间: 2024-10-28 19:53:04

Spring Boot 两步集成 日志收集ELK与分布式系统监控CAT的相关文章

【ELK】3.spring boot 2.X集成ES spring-data-ES 进行CRUD操作 完整版

spring boot 2.X集成ES 进行CRUD操作  完整版 内容包括: ========================================================================================= 1.CRUD:单字段查询.复合查询.分页查询.评分查询 2.时间范围查询 3.GET方法传入时间类型解析不了的问题 4.term和match查询的区别 5.filter+query查询的区别 6.自定义ES的mapping,自定义setti

Spring Boot系列——如何集成Log4j2

上篇<Spring Boot系列--日志配置>介绍了Spring Boot如何进行日志配置,日志系统用的是Spring Boot默认的LogBack. 事实上,除了使用默认的LogBack,Spring Boot还可以使用Log4j.Log42等作为自己的日志系统.今天就那Log4j2来举例,说明Spring Boot是如何集成其他日志系统的. 添加jar包依赖 上篇提到过,Spring Boot默认使用LogBack,但是我们没有看到显示依赖的jar包,其实是因为所在的jar包spring-

elk日志收集之rsyslog软连接监控文件深度坑

业务中通过rsyslog监控本地文件收集了一些redis和mc的慢日志,推到elk集群分析,这些日志一天一个文件,每晚零点5分通过计划任务用软连接的方式将新的文件固定到指定文件下,但是最近发现日志丢了很多,分析中发现了一个深坑,先说下现有的配置: ....................... 浏览全部请点击运维网咖社地址:elk日志收集之rsyslog软连接监控文件深度坑

深入Spring Boot:快速集成Dubbo + Hystrix

背景Hystrix 旨在通过控制那些访问远程系统.服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力.Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以及监控和配置等功能.Dubbo是Alibaba开源的,目前国内最流行的java rpc框架.本文介绍在spring应用里,怎么把Dubbo和Hystrix结合起来使用.Spring Boot应用生成dubbo集成spring boot的应用配置spring-cloud-starter-netflix-hys

spring cloud和spring boot两个完整项目

spring cloud和spring boot两个完整项目 spring cloud 是基于Spring Cloud的云分布式后台管理系统架构,核心技术采用Eureka.Fegin.Ribbon.Zuul.Hystrix.Security.OAth.Mybatis.Ace-cache等主要框架和中间件,UI采用Bootstrap.jquery等前端组件. spring boot项目是使用spring boot + thymeleaf 开发个人博客项目. CSDN下载地址: https://do

Laravel 和 Spring Boot 两个框架比较创业篇(二:人工成本)

前面从开发效率比较了 Laravel 和 Spring Boot两个框架,见:Laravel 和 Spring Boot 两个框架比较创业篇(一:开发效率) ,这一篇打算比较一下人工成本. 本文说的人工成本是狭义的技术支出成本.当然人工成本不单纯是开发人员的人工成本,同时包含了团队协作管理.架构设计.运维等方面的人工(团队)成本. 本文从以下几个维度分析: 程序员 技术管理 程序员 相信这个是大家比较关注的维度,很好理解,就是要根据需求撸一套产品出来,无论是后端.前端.APP还是小程序.中台,都

spring boot快速入门 10: 日志使用

第一步:pom 文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/PO

Spring Boot之Swagger2集成

一.Swagger2简单介绍 Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档.它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明.另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API. 二.Spring Boot集成Swagger2步骤 1)引入Swagger2的Maven坐标 <!--swa

Spring Boot 使用 Aop 实现日志全局拦截

前面的章节我们学习到 Spring Boot Log 日志使用教程 和 Spring Boot 异常处理与全局异常处理,本章我们结合 Aop 面向切面编程来实现全局拦截异常并记录日志. 在 Spring Boot 中 Aop 与 Ioc 可以说是 Spring 的灵魂,其功能也是非常强大. 1 新建 Spring Boot 项目 1)File > New > Project,如下图选择 Spring Initializr 然后点击 [Next]下一步 2)填写 GroupId(包名).Arti