如何快速搭建一个ELK日志框架?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 如何快速搭建一个ELK日志框架?

elasticsearch + logstash + kibana
使用logstash收集日志,将日志输出到elasticsearch后,通过kibana作可视化查询
以windows环境为例

准备以下安装包

elasticsearch-7.16.2
logstash-7.16.2
kibana-7.16.2

1.启动elasticsearch

解压elasticsearch-7.16.2
进入bin目录,运行elasticsearch.bat,默认启动端口为9200
启动完成后,访问localhost:9200测试是否启动成功
image.png

返回集群名称、版本等信息说明启动成功

2.启动kibana

解压kibana-7.16.2
进入bin目录,运行kibana.bat,默认连接es地址为localhost:9200,默认启动端口为5601
启动完成后,访问localhost:5601

image.png

进入上图页面即启动成功

3.启动logstash

解压logstash-7.16.2
复制一份config文件夹下的logstash-sample.conf,命名为logstash.conf
修改其中的配置

input {
   
   
tcp {
   
   
    host => "0.0.0.0"
    port => 5044
    mode => "server"
    codec => json_lines
}
}

output {
   
   
elasticsearch {
   
   
    hosts => ["http://localhost:9200"]
    index => "elk-demo-log-%{+YYYY.MM.dd}"
    #user => "elastic"
    #password => "changeme"
}
}

以上文件配置了一个input,即从哪里取数据,使用tcp协议,将logstash作为一个服务,端口为5044,编码格式为json,定义了一个output,表示将数据输出到哪里,配置一个elasticsearch,指定es服务器与索引名,使用日志的年月日作为索引名。
指定配置文件启动logstash

.\bin\logstash.bat -f .\config\logstash.conf

ELK都启动完成后,建立一个SpringBoot项目作为日志数据源
pom文件中加入logstash依赖

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>5.3</version>
</dependency>

建立一个控制器打印一些日志

@RestController
@RequestMapping
public class Api {
   
   

    Logger log = LoggerFactory.getLogger(Api.class);

    @GetMapping("/api")
    public String api(String str) {
   
   
        log.info(str);
        return str;
    }
}

调几次/api接口打印一些日志

image.png

访问localhost:5601进入kibana
选择Discover菜单

image.png

在上方输入KQL语句查询某个时间段的日志,可以看到ES中加进来了三条刚刚发送的日志doc
左边Available fields可以加进来显示的字段,左上的Selected fields为选择展示的字段。

相关实践学习
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
【涂鸦即艺术】基于云应用开发平台CAP部署AI实时生图绘板
相关文章
|
17天前
|
消息中间件 Java Kafka
搭建ELK日志收集,保姆级教程
本文介绍了分布式日志采集的背景及ELK与Kafka的整合应用。传统多服务器环境下,日志查询效率低下,因此需要集中化日志管理。ELK(Elasticsearch、Logstash、Kibana)应运而生,但单独使用ELK在性能上存在瓶颈,故结合Kafka实现高效的日志采集与处理。文章还详细讲解了基于Docker Compose构建ELK+Kafka环境的方法、验证步骤,以及如何在Spring Boot项目中整合ELK+Kafka,并通过Logback配置实现日志的采集与展示。
192 9
搭建ELK日志收集,保姆级教程
|
10月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2949 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
6月前
|
数据可视化 关系型数据库 MySQL
ELK实现nginx、mysql、http的日志可视化实验
通过本文的步骤,你可以成功配置ELK(Elasticsearch, Logstash, Kibana)来实现nginx、mysql和http日志的可视化。通过Kibana,你可以直观地查看和分析日志数据,从而更好地监控和管理系统。希望这些步骤能帮助你在实际项目中有效地利用ELK来处理日志数据。
505 90
|
11月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
1065 3
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
8月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
275 5
|
10月前
|
存储 监控 安全
|
11月前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
489 1
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
162 2
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。