前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ELK实战(Springboot日志输出查找)

ELK实战(Springboot日志输出查找)

作者头像
老梁
发布2019-09-10 17:32:21
1.7K0
发布2019-09-10 17:32:21
举报

需求

  1. 把分布式系统,集群日志集中处理快速查询
  2. 搭建ELK并与springboot日志输出结合

搭建ELK

  1. 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进行添加修改
  2. 新建docker-compose.yml文件,内容如下
代码语言:javascript
复制
version: '2'
services:
  elasticsearch-central: 
    image: elasticsearch:5.6.4
    container_name: es1
    volumes:
      - /root/mydocker/docker-es/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /root/mydocker/docker-es/data1:/usr/share/elasticsearch/data
    restart: always
    environment:
      - ES_CLUSTERNAME=elasticsearch
      - "ES_JAVA_OPTS=-Xmx50m -Xms50m"
    command: elasticsearch
    ports:
      - "9200:9200"
      - "9300:9300"
  elasticsearch-data: 
    image: elasticsearch:5.6.4
    container_name: es2
    volumes:
      - /root/mydocker/docker-es/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
      - /root/mydocker/docker-es/data2:/usr/share/elasticsearch/data
    restart: always
    environment:
      - ES_CLUSTERNAME=elasticsearch
      - "ES_JAVA_OPTS=-Xmx50m -Xms50m"
    command: elasticsearch
    ports:
      - "9201:9200"
      - "9301:9300"
    links:
      - elasticsearch-central:elasticsearch
  elasticsearch-head:
    image: mobz/elasticsearch-head:5
    container_name: head
    restart: always
    volumes:
      - /root/mydocker/docker-es/head-conf/Gruntfile.js:/usr/src/app/Gruntfile.js
      - /root/mydocker/docker-es/head-conf/app.js:/usr/src/app/_site/app.js
    ports:
      - "9100:9100"
    links:
      - elasticsearch-central:elasticsearch
  kibana:
    image: kibana
    container_name: kibana
    restart: always
    environment:
      - ELASTICSEARCH_URL=http://ip:9200
    links:
      - elasticsearch-central:elasticsearch
    ports:
      - "5601:5601"
  logstash:
    image: docker.elastic.co/logstash/logstash:5.5.1
    command: logstash -f /etc/logstash/conf.d/logstash.conf
    volumes:
      - $PWD/logstash/conf.d:/etc/logstash/conf.d
      - $PWD/log:/tmp
    container_name: logstash551
    hostname: logstash
    restart: always
    depends_on:
      - elasticsearch-central
    ports:
      - "7001-7005:7001-7005"
      - "4567:4567"
  1. 同级目录新建 logstash/conf.d 目录用于挂载,建logstash.conf文件,内容如下
代码语言:javascript
复制
input {
  tcp {
    port => 4567
    codec => json_lines
  }
}
 
output {
  elasticsearch {
    action => "index"
    hosts => ["172.16.147.200:9200","172.16.147.200:9201"]
    index => "%{[appname]}"
  }
}
  1. 使用 docker-compose up -d 启动全部容器
  2. 访问ip:5601 进入kibana管理界面,创建索引
  1. 创建applog索引的监控,用来用kibana查询日志

与springboot结合

  1. 在springboot项目中pom加入
代码语言:javascript
复制
<!-- logstash -->
<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.11</version>
</dependency>
  1. 在logback.xml中加入
代码语言:javascript
复制
<appender name="logstash"
          class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>127.0.0.1:4567</destination>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <!-- encoder必须配置,有多种可选 -->
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"appname":"carer"}</customFields>
    </encoder>
    <connectionStrategy>
        <roundRobin>
            <connectionTTL>5 minutes</connectionTTL>
        </roundRobin>
    </connectionStrategy>
</appender>
<!-- 开发环境 -->
<springProfile name="dev">
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>${PATTERN}</pattern>
        </encoder>
    </appender>
    <logger name="com.zhiyis" level="debug"/>
    <root level="info">
        <appender-ref ref="CONSOLE"/>
        <appender-ref ref="logstash" />
    </root>
</springProfile>
  • 主要是上半部分,下半部分就是加个
  • 要修改的就是127.0.0.1:4567 这个中把logstash地址填上,端口别弄错~我就因为开放端口4567,这里填了网上例子中的4560,明明把logstash配置改成了4560还是不通,后来想了想才发现,我配docker容器开放的端口就只有4567
  • 把springboot项目运行起来,调几个测试接口,然后去kibana看日志
  • 更高级的用法再慢慢研究了,左边一排过滤的能更精准查找,还有表单的统计等等待研究

参考 https://blog.csdn.net/guduyishuai/article/details/79228306 https://www.cnblogs.com/zhyg/p/6994314.html

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求
  • 搭建ELK
  • 与springboot结合
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档