前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springcloud集成elk

springcloud集成elk

作者头像
johnhuster的分享
发布2022-03-29 14:41:54
6480
发布2022-03-29 14:41:54
举报
文章被收录于专栏:johnhuster

springcloud是一个应用很广的微服务全家桶,阿里开发了自己的springcloud alibaba分支,elk是一款不错的监控工具,尤其是日志分析,可以将springcloud微服务项目的日志通过logstash-logback-encoder传送到elk的logstash上,好了废话不多少了,直接进入环境搭建流程:

1.使用docker-compose搭建elk环境,docker-compose.yml文件内容如下:

代码语言:javascript
复制
version: "3"
services:
  elasticsearch:
    image: docker.io/elasticsearch:6.8.0
    environment:
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
    volumes:
      - ./es/data:/usr/share/elasticsearch/data
    container_name: elasticsearch680
    hostname: elasticsearch
    privileged: true
    restart: always
    ports:
      - "9200:9200"
      - "9300:9300"
  logstash:
   image: docker.io/logstash:6.8.0
   volumes:
    - ./logstash.conf:/etc/logstash.conf
   privileged: true
   environment:
    LOGSPOUT: ignore
   ports:
    - "4560:4560/tcp"
   links:
    - elasticsearch
   command: -f /etc/logstash.conf
  kibana:
    image: docker.io/kibana:6.8.0
    environment:
      - ELASTICSEARCH_URL=http://elasticsearch:9200
    container_name: kibana680
    hostname: kibana
    depends_on:
      - elasticsearch
    restart: always
    ports:
      - "5601:5601"

2.logstash.conf文件内容如下:

代码语言:javascript
复制
input {
   tcp {
        port => 4560
        mode => "server"
        tags => ["tags"]

    ##格式json
        codec => json_lines
    }

}

output {
        elasticsearch {
        #ES地址
                hosts => "192.168.111.137:9200"
        #指定索引名字
                index => "applog"
        }
        stdout { codec => rubydebug}
}

3.通过docker-compose up -d启动elk环境,前提是已经安装好docker-compose环境,具体怎么安装这里不再赘述。

4.上面是elk环境的搭建,也就是服务端,客户端也就是springcloud项目具体工作有两个:1.添加依赖,在logback-xxxx.xml文件加入对应appender

代码语言:javascript
复制
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>
代码语言:javascript
复制
    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.111.137:4560</destination>
        <!-- 日志输出编码 -->
        
        
        <encoder charset="UTF-8"
                class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
            <providers>
                <timestamp>
                    <timeZone>UTC</timeZone>
                </timestamp>
                <pattern>
                    <pattern>
                        {
                        "logLevel": "%level",
                        "serviceName": "${springAppName:-SpringApp}",
                        "pid": "${PID:-}",
                        "thread": "%thread",
                        "class": "%logger{40}",
                        "line":"%L",
                        "message": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>
    </appender>   

     <root level="INFO">
        <appender-ref ref="console" />
        <appender-ref ref="LOGSTASH"></appender-ref>
    </root>

5.上述过程不出意外的话整个环境就搭建好了:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/08/20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档