ELK实战(Springboot日志输出查找)
需求
- 把分布式系统,集群日志集中处理快速查询
- 搭建ELK并与springboot日志输出结合
搭建ELK
- 基于我前面的elasticsearch搭建博客文档docker-compose.yml基础上进行添加修改
- 新建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"
- kibana为什么配置一个地址,参考 https://blog.csdn.net/liukuan73/article/details/52635602?locationNum=3&fps=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]}"
}
}
- port表示监听端口,要与你向外开发的TCP端口一直,也就是数据入口的端口
- codec => json_lines 表示以json数据输入
- hosts 表示elasticsearch输入地址
- index 表示es索引名称
- logstash文档 https://doc.yonyoucloud.com/doc/logstash-best-practice-cn/get_start/full_config.html
- 使用 docker-compose up -d 启动全部容器
- 访问ip:5601 进入kibana管理界面,创建索引

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

与springboot结合
- 在springboot项目中pom加入
<!-- logstash -->
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>4.11</version>
</dependency>
- 在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日志输出查找)的更多相关文章
- 基于Centos 7.4 搭建ELK整合SpringBoot日志收集
基于Centos 7.4搭建es7.12.0+logstash-7.12.0+kibana-7.12.0(ELK)整合SpringBoot日志收集 注:Skywalking和logstash可共用一个 ...
- SpringBoot日志输出至Logstash
1.springboot项目pom.xml文件下添加如下配置 2.resources目录下创建logback-spring.xml文件 <?xml version="1.0" ...
- springboot日志输出到文件
今天来谈一谈日志,主要是说一说springboot的日志,因为最近在学习springboot.首先在写代码的时候,要养成记日志的习惯,这点真的很重要,因为之前吃了很多亏.过去我对日志很不在意,该有的日 ...
- SpringBoot日志输出定义
在application.yml配置文件中添加 logging: level: root: INFO #根日志输出级别 com.juyss.dao: DEBUG #自定义包的日志输出级别 file: ...
- elk实战分析nginx日志文档
elk实战分析nginx日志文档 架构: kibana <--- es-cluster <--- logstash <--- filebeat 环境准备:192.168.3.1 no ...
- springboot开启access_log日志输出
由于在调试时需要查看access_log日志,但是springboot默认并没有开启,因此查看了一下文档,在springboot的配置文件中添加如下设置,即可将日志输出当磁盘文件中以供查看. #日志开 ...
- SpringBoot日志配置(详解) 涉及控制台输出日志、生成日志文件、日志级别修改、hibernate日志不输出
写在前面 本篇主要讲述日志配置,看完本篇可以解决下述问题, 控制台输出日志.生成日志文件.日志级别修改.hibernate日志不输出 Git Demo Path:https://github.com/ ...
- SpringBoot 异步输出 Logback 日志
一.介绍 1.1 Logback Logback是由log4j创始人设计的另一个开源日志组件,它分为下面下个模块: logback-core:其它两个模块的基础模块 logback-classic:它 ...
- springboot+logback日志输出企业实践(下)
目录 1.引言 2. 输出 logback 状态数据 3. logback 异步输出日志 3.1 异步输出配置 3.2 异步输出原理 4. springboot 多环境下 logback 配置 5. ...
随机推荐
- SQL Server中使用数据库快照的方式来完成测试环境中数据库的轻量级备份还原操作
在开发或者测试环境的数据库中,经常会发现有开发或者测试人员误删除表或者数据的情况,对于开发或者测试库,一般都没有安排定时的备份任务去备份数据库,一方面是由于存储资源有限,不太可能给开发或者测试环境准备 ...
- Linux jdk安装
Linux上一般会安装Open JDK,关于OpenJDK和JDK的区别:http://www.cnblogs.com/sxdcgaq8080/p/7487369.html 下面开始安装步骤: --- ...
- cdnbest设置301跳转
cdnbest设置301跳转 格式:^http://kangleweb.com/(.*)$ https://www.kangleweb.com/$1 下面是站点里所有域名都跳转到https ...
- HBase Snapshot原理和实现
HBase 从0.95开始引入了Snapshot,可以对table进行Snapshot,也可以Restore到Snapshot.Snapshot可以在线做,也可以离线做.Snapshot的实现不涉及到 ...
- Shell中read命令--学习
read命令 -p(提示语句) -n(字符个数) -t(等待时间) -s(不回显) 1.基本读取read命令接收标准输入(键盘)的输入,或其他文件描述符的输入(后面在说).得到输入后,read命令将数 ...
- ORACLE数据库测试数据插入速度[z]
一,没有优化的速度:Executed in 69.436 seconds drop table t purge;create table t(x int);/*清空共享池,注意在生产环境中千万不能做这 ...
- EF ++属性会更新实体
var lastBaby = await _babyRepository.FirstOrDefaultAsync(); ++lastBaby.sort; -- sort原本为1 -- 最终会生成一条语 ...
- Node.js 中使用 ES6 中的 import / export 的方法大全
https://blog.csdn.net/universsky2015/article/details/83754741
- 李白打酒——C++
话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他 ...
- Spring 框架下 事务的配置(复杂)
//db.properties配置 src下的文件 jdbc.jdbcUrl=jdbc:mysql:///day43jdbc.driverClass=com.mysql.jdbc.Driverjdb ...