Springboot+ELK实现日志系统简单搭建
前面简单介绍了ELK三剑客中的其中两个Elasticsearch和Kibana的简单使用,如果对这两个不了解,可以看下下面的
现在来看看这最后一个Logstash
还是这个地方https://elasticsearch.cn/download/ 下载与es,kibana版本对应的Logstash,然后解压。
1.和es一样,如果机器内存小,有想玩这个的,记得把config下面的jvm.options文件中的jvm参数设置小点,我设置的256m:
-Xms256m
-Xmx256m
2.写配置文件logstash.conf,默认有个logstash-sample.conf这个文件,可以直接拿来修改
内容如下:
#暴露9090端口作为输入
input {
tcp {
#host 192.168.0.69
port => 9090
}
}
#输出到elasticsearch,此输出创建一个名为myserver的索引
output {
elasticsearch {
hosts => ["http://192.168.0.67:9200"]
index => "myserver"
}
}
以上就是最简单的配置了
3.使用此配置文件启动logstash:./bin/logstash -f ./config/logstash.conf

4.创建spingboot工程,springboot日志本来就用的logback,但是我们还需要引入相关的logstash依赖
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>6.2</version>
</dependency>
5.在appliction.properties配置文件指定logstash服务的端口位置,就是上面logstash 暴露出来的输入端口,我们上面的是9090端口
logstash.address=192.168.0.69:9090
6.logback日志配置文件:logback-spring.xml(resources下面和工程appliction配置文件同级)
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--logstash地址,从application.properties中获取-->
<springProperty scope="context" name="LOGSTASH_ADDRESS" source="logstash.address"/> <!--输出到logstash的appender-->
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<!--可以访问的logstash日志收集端口-->
<destination>${LOGSTASH_ADDRESS}</destination>
<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
<providers>
<timestamp>
<timeZone>Asia/Shanghai</timeZone>
</timestamp>
<pattern>
<pattern>
{
"app": "my-server",
"level": "%level",
"thread": "%thread",
"logger": "%logger{50} %M %L ",
"message": "%msg"
}
</pattern>
</pattern>
<stackTrace>
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<maxDepthPerThrowable>100</maxDepthPerThrowable>
<rootCauseFirst>true</rootCauseFirst>
<inlineHash>true</inlineHash>
</throwableConverter>
</stackTrace>
</providers>
</encoder>
</appender> <root level="INFO">
<appender-ref ref="LOGSTASH"/>
</root>
</configuration>
7.启动springboot服务,这个时候我们会发现控制台不会再输出日志了,因为日志输出到logstash,再由logstash发送到es去了。
调用我们接口查看下服务是否成功启动了

说明服务已经成功启动,现在去看kibana查看日志信息
8.搜索是否有myserver的索引,可以看到tomcat 8080端口启动的日志

我们每次都这样搜索来看是不是很不方便,我们可以把这个索引加到discover中,后续只需要在里面搜索我们想要内容就行了
9.Management --->Index Patterns --->Create index pattern--->搜索匹配的索引然后创建



创建好了就可以在kibana的index列表看见这个索引了

现在就可以discover中使用这个索引了,不用再去dev tools工具中去写查询了

我们着看刚才调用接口打印的日志就可以在discover中看见了


10.discover中信息筛选:默认的筛选时间是15分钟内的,如果时间比较久了就需要重新选择下时间,然后输入要搜索的内容port,我们就可以看到之前服务起动的日志了

ELK简单的集成使用,大概就是这个样子了,当然logstash中还可以去过滤处理数据。像我们现在的日志在kibana里面的格式是很难看的。
Springboot+ELK实现日志系统简单搭建的更多相关文章
- ELK分布式日志系统的搭建
前言 ELK即分别为ElasticSearch.Logstash(收集.分析.过滤日志的工具).Kibana(es的可视化工具),其主要工作原理就是由不同机器上的logstash收集日志后发送给es, ...
- 【7.1.1】ELK日志系统单体搭建
ELK是什么? 一般来说,为了提高服务可用性,服务器需要部署多个实例,每个实例都是负载均衡转发的后的,如果还用老办法登录服务器去tail -f xxx.log,有很大可能错误日志未出现在当前服务器中, ...
- .NET下日志系统的搭建——log4net+kafka+elk
.NET下日志系统的搭建--log4net+kafka+elk 前言 我们公司的程序日志之前都是采用log4net记录文件日志的方式(有关log4net的简单使用可以看我另一篇博客),但是随着 ...
- ELK +Nlog 分布式日志系统的搭建 For Windows
前言 我们为啥需要全文搜索 首先,我们来列举一下关系型数据库中的几种模糊查询 MySql : 一般情况下LIKE 模糊查询 SELECT * FROM `LhzxUsers` WHERE UserN ...
- ELK统一日志系统的应用
收集和分析日志是应用开发中至关重要的一环,互联网大规模.分布式的特性决定了日志的源头越来越分散, 产生的速度越来越快,传统的手段和工具显得日益力不从心.在规模化场景下,grep.awk 无法快速发挥作 ...
- Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南
win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些 ...
- springboot+ELK+logback日志分析系统demo
之前写的有点乱,这篇整理了一下搭建了一个简单的ELK日志系统 借鉴此博客完成:https://blog.csdn.net/qq_22211217/article/details/80764568 设置 ...
- mysql日志系统简单使用
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBM ...
- springboot elk实时日志搭建
https://blog.csdn.net/yy756127197/article/details/78873310 基本的上的过程如这篇博客,logback的配置文件和依赖不太一样 具体见源码其中的 ...
- ELK+Kafka日志收集环境搭建
1.搭建Elasticsearch环境并测试: (1)删除es的容器 (2)删除es的镜像 (3)宿主机调内存: 执行命令:sudo sysctl -w vm.max_map_count=655360 ...
随机推荐
- python函数定义、调用、参数、返回
python函数定义语法: 定义: Def foo(): print('bar') print('bar2') 如果函数内容特别少,可以一行定义 : Def foo(): print('bar') ...
- vue-test --------模板引用
<template> <input type="text" v-model.lazy="message"> <div>{{m ...
- VMware安装虚拟机详细步骤
在VMware中安装CentOS7 01.目录 CentOS7的下载 CentOS7的配置 CentOS7的安装 CentOS7的网络配置 自动获取IP 固定获取IP 02.安装前提 准备工作: 提前 ...
- JXNU acm选拔赛 最小的数
最小的数 Time Limit : 3000/1000ms (Java/Other) Memory Limit : 65535/32768K (Java/Other) Total Submissi ...
- 使用dtd定义属性
- 别再傻傻地用 ifconfig 查地址了!这条命令足以让你摘掉小白工程师的帽子
大家好,我是民工哥. 众所周知,在 Linux 系统中,ip 和 ifconfig 这个两命令的功能十分相似,ifconfig 是 net-tools 中已被弃用的一个命令,很多年前就已经没有维护了. ...
- python中,如何优雅的解析和管理命令行参数
背景 我们在编写python程序时,程序中经常会提供多种功能或者模式,在实际使用时根据不同的参数使用不同的功能.那么如何获取命令行传入进来的参数呢? 一般方法 一般情况下,我们会使用 sys 模块,如 ...
- 文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题
七.设计算法,仅使用三次实数乘法即可完成复数 a+bi和c+di 相乘.算法需接收a.b.c和d 为输入,分别生成实部 ac-bd 和虚部ad+bc. 文心一言: 可以使用如下算法来计算复数 a+bi ...
- .NET Conf China 2023分享-.NET应用国际化-AIGC智能翻译+代码生成
今年.NET Conf China 2023技术大会,我给大家分享了 .NET应用国际化-AIGC智能翻译+代码生成的议题,今天整理成博客,分享给所有人. 随着疫情的消退,越来越多的企业开始向海外拓展 ...
- ChatGPT 同类工具推荐
原文: https://openaigptguide.com/chatgpt-similar%20software/ ChatGPT是一款由美国OpenAI公司开发的人工智能语言模型,类似的软件有: ...