需求

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

搭建ELK

  1. 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进行添加修改
  2. 新建docker-compose.yml文件,内容如下
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文件,内容如下
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管理界面,创建索引

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

与springboot结合

  1. 在springboot项目中pom加入
<!-- logstash -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
  1. 在logback.xml中加入
<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

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. LeetCode OJ 117. Populating Next Right Pointers in Each Node II

    题目 Given a binary tree struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode * ...

  2. 为datagrid、treegrid增加右键表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中

    var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* gri ...

  3. 《DOM Scripting》学习笔记-——第三章 DOM

    <Dom Scripting>学习笔记 第三章 DOM 本章内容: 1.节点的概念. 2.四个DOM方法:getElementById, getElementsByTagName, get ...

  4. MFC笔记3

    1. C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下: 工具(T) -&g ...

  5. python入门(八):文件操作

    1.数据的保存: 1) 内存:常用的变量都是在内存里面的 缺点:关机或进程死掉数据丢失 解决方法:将数据保存至文件中 2 )文件:文本内容.二进制的文件内容 3 )数据库:保存    2.读文件: 1 ...

  6. Spring使用Jackson处理json数据

    1.搭建SpringMVC+Spring环境 2.配置web.xml.SpringMVC-config.xml <?xml version="1.0" encoding=&q ...

  7. 20175314 《Java程序设计》第四周学习总结

    20175314 <Java程序设计>第四周学习总结 教材学习内容总结 每个子类只能有一个父类,而一个父类可以有多个子类.可以使用关键字extends来定义一个类的子类:class 子类名 ...

  8. tab页

    图片: 代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <t ...

  9. [leetcode]99. Recover Binary Search Tree恢复二叉搜索树

    Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing ...

  10. $.fn.extend() 问:我来这个世上到底是干嘛的?

    好好好 乖  本宝宝来告诉你  你来是干嘛的啊~ 话不多说 直接上码 当然如下代码是在jquery环境下运行的 HTML JS 完事~~~ 当你点击div元素的时候  你会发现弹出来“我被单击了”这句 ...