需求

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

搭建ELK

  1. 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进行添加修改
  2. 新建docker-compose.yml文件,内容如下
  1. version: '2'
  2. services:
  3. elasticsearch-central:
  4. image: elasticsearch:5.6.4
  5. container_name: es1
  6. volumes:
  7. - /root/mydocker/docker-es/es1.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  8. - /root/mydocker/docker-es/data1:/usr/share/elasticsearch/data
  9. restart: always
  10. environment:
  11. - ES_CLUSTERNAME=elasticsearch
  12. - "ES_JAVA_OPTS=-Xmx50m -Xms50m"
  13. command: elasticsearch
  14. ports:
  15. - "9200:9200"
  16. - "9300:9300"
  17. elasticsearch-data:
  18. image: elasticsearch:5.6.4
  19. container_name: es2
  20. volumes:
  21. - /root/mydocker/docker-es/es2.yml:/usr/share/elasticsearch/config/elasticsearch.yml
  22. - /root/mydocker/docker-es/data2:/usr/share/elasticsearch/data
  23. restart: always
  24. environment:
  25. - ES_CLUSTERNAME=elasticsearch
  26. - "ES_JAVA_OPTS=-Xmx50m -Xms50m"
  27. command: elasticsearch
  28. ports:
  29. - "9201:9200"
  30. - "9301:9300"
  31. links:
  32. - elasticsearch-central:elasticsearch
  33. elasticsearch-head:
  34. image: mobz/elasticsearch-head:5
  35. container_name: head
  36. restart: always
  37. volumes:
  38. - /root/mydocker/docker-es/head-conf/Gruntfile.js:/usr/src/app/Gruntfile.js
  39. - /root/mydocker/docker-es/head-conf/app.js:/usr/src/app/_site/app.js
  40. ports:
  41. - "9100:9100"
  42. links:
  43. - elasticsearch-central:elasticsearch
  44. kibana:
  45. image: kibana
  46. container_name: kibana
  47. restart: always
  48. environment:
  49. - ELASTICSEARCH_URL=http://ip:9200
  50. links:
  51. - elasticsearch-central:elasticsearch
  52. ports:
  53. - "5601:5601"
  54. logstash:
  55. image: docker.elastic.co/logstash/logstash:5.5.1
  56. command: logstash -f /etc/logstash/conf.d/logstash.conf
  57. volumes:
  58. - $PWD/logstash/conf.d:/etc/logstash/conf.d
  59. - $PWD/log:/tmp
  60. container_name: logstash551
  61. hostname: logstash
  62. restart: always
  63. depends_on:
  64. - elasticsearch-central
  65. ports:
  66. - "7001-7005:7001-7005"
  67. - "4567:4567"
  1. 同级目录新建 logstash/conf.d 目录用于挂载,建logstash.conf文件,内容如下
  1. input {
  2. tcp {
  3. port => 4567
  4. codec => json_lines
  5. }
  6. }
  7. output {
  8. elasticsearch {
  9. action => "index"
  10. hosts => ["172.16.147.200:9200","172.16.147.200:9201"]
  11. index => "%{[appname]}"
  12. }
  13. }
  1. 使用 docker-compose up -d 启动全部容器
  2. 访问ip:5601 进入kibana管理界面,创建索引

  3. 创建applog索引的监控,用来用kibana查询日志

与springboot结合

  1. 在springboot项目中pom加入
  1. <!-- logstash -->
  2. <dependency>
  3. <groupId>net.logstash.logback</groupId>
  4. <artifactId>logstash-logback-encoder</artifactId>
  5. <version>4.11</version>
  6. </dependency>
  1. 在logback.xml中加入
  1. <appender name="logstash"
  2. class="net.logstash.logback.appender.LogstashTcpSocketAppender">
  3. <destination>127.0.0.1:4567</destination>
  4. <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
  5. <level>INFO</level>
  6. </filter>
  7. <!-- encoder必须配置,有多种可选 -->
  8. <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
  9. <customFields>{"appname":"carer"}</customFields>
  10. </encoder>
  11. <connectionStrategy>
  12. <roundRobin>
  13. <connectionTTL>5 minutes</connectionTTL>
  14. </roundRobin>
  15. </connectionStrategy>
  16. </appender>
  17. <!-- 开发环境 -->
  18. <springProfile name="dev">
  19. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  20. <encoder>
  21. <pattern>${PATTERN}</pattern>
  22. </encoder>
  23. </appender>
  24. <logger name="com.zhiyis" level="debug"/>
  25. <root level="info">
  26. <appender-ref ref="CONSOLE"/>
  27. <appender-ref ref="logstash" />
  28. </root>
  29. </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

ELK实战(Springboot日志输出查找)的更多相关文章

  1. 基于Centos 7.4 搭建ELK整合SpringBoot日志收集

    基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...

  2. SpringBoot日志输出至Logstash

    1.springboot项目pom.xml文件下添加如下配置 2.resources目录下创建logback-spring.xml文件 <?xml version="1.0" ...

  3. springboot日志输出到文件

    今天来谈一谈日志,主要是说一说springboot的日志,因为最近在学习springboot.首先在写代码的时候,要养成记日志的习惯,这点真的很重要,因为之前吃了很多亏.过去我对日志很不在意,该有的日 ...

  4. SpringBoot日志输出定义

    在application.yml配置文件中添加 logging: level: root: INFO #根日志输出级别 com.juyss.dao: DEBUG #自定义包的日志输出级别 file: ...

  5. elk实战分析nginx日志文档

    elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...

  6. springboot开启access_log日志输出

    由于在调试时需要查看access_log日志,但是springboot默认并没有开启,因此查看了一下文档,在springboot的配置文件中添加如下设置,即可将日志输出当磁盘文件中以供查看. #日志开 ...

  7. SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出

    写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...

  8. SpringBoot 异步输出 Logback 日志

    一.介绍 1.1 Logback Logback是由log4j创始人设计的另一个开源日志组件,它分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它 ...

  9. springboot+logback日志输出企业实践(下)

    目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...

随机推荐

  1. java.util.logging jdk日志详解

    jdk自带的日志,结构并不复杂,功能也能满足绝大部分功能.日志写入位置是开放的,只要继承了handler都可以接收日志的写入.handler本身依赖于LogRecord对象,该对象代表一个日志.Han ...

  2. 转: rem与px的转换

    rem是相对于根元素<html>,这样就意味着,我们只需要在根元素确定一个参考值,这个参考值设置为多少,完全可以根据您自己的需求来定.· 我们知道,浏览器默认的字号16px,来看一些px单 ...

  3. python学习笔记(七)- 递归、python内置函数、random模块

    1.函数的不固定参数: #参数不是必填的.没有限制参数的个数.返回参数组的元组 def syz(*args): #参数组,不限制参数个数 #‘args’参数的名字可以随便命名 print(args) ...

  4. [转]MAC系统下Sublime Text3 配置Python3详细教程(亲测有效)

    原文地址: https://blog.csdn.net/weixin_41768008/article/details/79859008?tdsourcetag=s_pctim_aiomsg 这段时间 ...

  5. VueJs学习笔记

      在cmd下,进入目录之后 cd 到项目目录下 1 安装node cnpm install   2 启动或者调试 cnpm start (或是npm run dev) 3 上线: npm run b ...

  6. TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations'

    错误: TypeError: while_loop() got an unexpected keyword argument 'maximum_iterations' 参照https://blog.c ...

  7. nodejs 箭头函数

    背景 箭头函数,出现于ES6规范中. 使用 就是lambda函数. 一般使用: (a, b) => { return a + b; } 简略模式: 当参数只有一个时,可以省略括号:当返回值只有一 ...

  8. arguments.callee的作用及替换方案

    arguments.callee的作用 arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,返回正被执行的 Function 对象,也就是所指定的 Funct ...

  9. 利用maven将项目打包成一个可以运行的独立jar包

    目标:希望把Java项目打包成一个完整的jar包,可以独立运行,不需要再依赖其他jar包. 我们在用eclipse中mvn创建mvn项目的时候,选择非webapp,会默认的以jar打包形式,如下图: ...

  10. spring boot + spring batch 读数据库文件写入文本文件&读文本文件写入数据库

    好久没有写博客,换了一家新公司,原来的公司用的是spring,现在这家公司用的是spring boot.然后,项目组布置了一个任务,关于两个数据库之间的表同步,我首先想到的就是spring batch ...