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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 如何快速搭建一个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为选择展示的字段。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
10天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
110 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
1月前
|
XML JSON Java
Logback 与 log4j2 性能对比:谁才是日志框架的性能王者?
【10月更文挑战第5天】在Java开发中,日志框架是不可或缺的工具,它们帮助我们记录系统运行时的信息、警告和错误,对于开发人员来说至关重要。在众多日志框架中,Logback和log4j2以其卓越的性能和丰富的功能脱颖而出,成为开发者们的首选。本文将深入探讨Logback与log4j2在性能方面的对比,通过详细的分析和实例,帮助大家理解两者之间的性能差异,以便在实际项目中做出更明智的选择。
211 3
|
2月前
|
存储 消息中间件 网络协议
日志平台-ELK实操系列(一)
日志平台-ELK实操系列(一)
|
13天前
|
存储 监控 安全
|
20天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
76 1
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
44 2
|
1月前
|
SQL XML 监控
SpringBoot框架日志详解
本文详细介绍了日志系统的重要性及其在不同环境下的配置方法。日志用于记录系统运行时的问题,确保服务的可靠性。文章解释了各种日志级别(如 info、warn、error 等)的作用,并介绍了常用的日志框架如 SLF4J 和 Logback。此外,还说明了如何在 SpringBoot 中配置日志输出路径及日志级别,包括控制台输出与文件输出的具体设置方法。通过这些配置,开发者能够更好地管理和调试应用程序。
|
2月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
2月前
|
运维 NoSQL Java
SpringBoot接入轻量级分布式日志框架GrayLog技术分享
在当今的软件开发环境中,日志管理扮演着至关重要的角色,尤其是在微服务架构下,分布式日志的统一收集、分析和展示成为了开发者和运维人员必须面对的问题。GrayLog作为一个轻量级的分布式日志框架,以其简洁、高效和易部署的特性,逐渐受到广大开发者的青睐。本文将详细介绍如何在SpringBoot项目中接入GrayLog,以实现日志的集中管理和分析。
223 1
|
3月前
|
消息中间件 Kafka 开发工具
rsyslog+ELK收集Cisco日志
rsyslog+ELK收集Cisco日志