前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >架构师之路----一步步搭建日志监控系统(Spring+SpringMVC+Redis+ELK)

架构师之路----一步步搭建日志监控系统(Spring+SpringMVC+Redis+ELK)

作者头像
春哥大魔王
发布2018-04-16 10:48:40
2.7K0
发布2018-04-16 10:48:40
举报
原文地址

https://my.oschina.net/u/1000241/blog/844651

前言

对于一个优秀的软件架构而言,软件初期的技术选型,开发过程中的系统分割(服务化,SOA,微服务),以及系统上线之后的监控运维,这三方面都是非常重要的。这一篇主要记录对一个线上项目进行监控,通过日志的采集与记录可以有效的观察程序的瓶颈和异常信息,对线上bug的排除有着极其重要的作用。

技术选型

  • spring
  • spring mvc
  • redis
  • logback
  • ELK

开发web工程搭建

通过maven创建一个基于spring mvc的web工程,启动之后成功显示hello world(过程略)。

pom文件
代码语言:javascript
复制
<!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!--spring-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <!--Spring Web + Spring MVC-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
构建成功

引入logback进行日志输出

本次日志组件使用的是logback;

pom文件
代码语言:javascript
复制
        <!--logback-->
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>1.1.3</version>
        </dependency>
        <dependency>
            <groupId>org.logback-extensions</groupId>
            <artifactId>logback-ext-spring</artifactId>
            <version>0.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>1.7.12</version>
        </dependency>

        <!--logstash begin -->
        <dependency>
            <groupId>com.cwbase</groupId>
            <artifactId>logback-redis-appender</artifactId>
            <version>1.1.5</version>
        </dependency>
logback.xml
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?><configuration>
    <appender name="LOGSTASH" class="com.cwbase.logback.RedisAppender">
        <source>SpringELK</source>
        <type>dev-type</type>
        <tags>dev</tags>
        <host>127.0.0.1</host>
        <port>6379</port>
        <key>logstash</key>
    </appender>

    <logger name="com.zcj.springELK" level="DEBUG"/>

    <root level="DEBUG">
        <appender-ref ref="LOGSTASH" />
    </root></configuration>
日志输出
代码语言:javascript
复制
    private Logger log = LoggerFactory.getLogger(HomeController.class);

    @RequestMapping(value = "/hello", method = RequestMethod.GET)    public String hello() {        log.error("Main错误");        return "/home/hello";
    }

安装redis,并启动

(过程略)

下载并配置ELK

由于新版本的elasticsearch支持是jdk 1.8,我的jdk是1.7所以要谨慎选择elk版本。

将logstash,kibana配置为windows服务

启动web项目,并观察kibana日志状况

观察kibana

彩蛋

至此一个简单的基于spring+spring mvc+redis+elk的日志系统搭建成功了!

code 完整地址:https://github.com/zhangcj/springELK

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 春哥talk 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 原文地址
  • 前言
  • 技术选型
  • 开发web工程搭建
    • pom文件
      • 构建成功
      • 引入logback进行日志输出
        • pom文件
          • logback.xml
            • 日志输出
            • 安装redis,并启动
            • 下载并配置ELK
              • 将logstash,kibana配置为windows服务
              • 启动web项目,并观察kibana日志状况
                • 观察kibana
                • 彩蛋
                相关产品与服务
                Elasticsearch Service
                腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档