java日志传输到logstash

Java企业级应用日志结构化存储与优化实践 日志结构化是提升系统可观测性的关键技术,其核心原理是将非结构化日志转换为统一格式的键值对数据。通过JSON格式化、链路追踪标识注入等技术手段,可以实现日志数据的标准化存储与高效检索。在Java生态中,结合Logback、Logstash等工具链,能够有效解决企业级应用中的日志管理痛点。特别是在AI集成场景(如LangChain4j框架)下,结构化日志对调用链路追踪、敏感信息脱敏等需求尤为重要。典型应用包括实时计算关键指标(如API成功率、P99耗时)、冷热数据分离存储优化等。本文通过电商客服机器人案例,详细 阅读详情

java需要 有专门的日志配置文件一般和application.yaml放在同级目录,名称叫logback-spring.xml

在logback-spring.xml中增加将日志传输到logstash的配置

    <property name="SERVICE_NAME" value="api-gateway" />  #配置公共变量

    <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>10.1.60.9:30016</destination>
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"service":"${SERVICE_NAME}", "env":"${profiles.active}"}</customFields>   #为日志增加服务名称和环境字段,环境字段变量是执行java命令时定义传入
        </encoder>
    </appender>             #配置传输日志到logstash

    <!-- 开发环境配置 -->
    <springProfile name="dev">
        <root level="INFO">
            <appender-ref ref="CONSOLE" />
        </root>
    </springProfile>

    <!-- 测试环境配置 -->
    <springProfile name="test">
        <root level="INFO">
            <appender-ref ref="FILE" />
            <appender-ref ref="LOGSTASH" />  #配置在test环境中日志传给logstash
        </root>
    </springProfile>


    <!-- 生产环境配置 -->
    <springProfile name="prd">
        <root level="INFO">
            <appender-ref ref="FILE" />
            <appender-ref ref="LOGSTASH" />
        </root>
    </springProfile>

配置依赖,需要在公共配置文件中配置该依赖pom.xml文件

<dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>6.6</version>  #版本需要根据日志插件使用的版本来决定
            </dependency>
        </dependencies>
</dependencyManagement>

除了该pom.xml,还要在具体使用的模块中配置pom.xml文件,使用该依赖

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

java端配置完成

配置logstash

input {
        tcp {
            port => 5044      
            #设置日志收集端口
            codec => json_lines   #java的json日志是一行一行的,所以使用json_lines
        }
      }
      filter {
        #增加判断字段,不需要可以将该if字段删除
        if ![name] {
            mutate {
               add_field => { "name" => "xxx" }
            }
        }
        mutate {
          remove_field => ["host","port"]  #将json日志中的host、prot项去掉
        }
      }
      output {
        #stdout {                
        #         #该被注释的配置项用于将收集的日志输出到logstash的日志中,主要用于测试看收集的日志中包含哪些内容
        #  codec => rubydebug
        #}

        elasticsearch {
            hosts => "elasticsearch.elk:9200"
            index => "%{name}-%{env}-%{service}-%{+YYYY.MM.dd}" #使用日志中的变量命名
        }
}

链路追踪日记1-日志的生成到查询(Skywalking、Logstash 、Elasticsearch) 轮转是指将旧的日志文件进行备份和归档,并创建一个新的日志文件来继续记录新的日志信息的过程。但是并不是实现日志的记录功能。SkyWalking Agent通过配置启动脚本的-javaagent参数被加载到应用程序的jvm里面,她会自动拦截应用程序的日志输出,并识别出应用场景里应该包含追踪信息的场景,然后从当前追踪上下文获取traceId等信息注入到日志信息。可以根据配置找到日志文件。在应用程序的执行过程中,根据预设的日志级别,和日志框架(logback)的配置,当满足日志记录条件时,日志信息会被生成。 阅读详情

相关推荐

Java日志黑洞的“全息投影”:用ELK+SkyWalking+Kafka构建零延迟观测宇宙

优秀的日志系统不是‘记录过去’,而是构建‘观测未来的虫洞’——每个日志都是时空连续体的全息投影!

墨夶的博客 643

日志采集 logback集成logstash ELK springboot

日志采集 logback集成logstash ELK springboot

global_coding的博客 2320

SkyWalking跨线程Trace传递实战:手把手教你用RunnableWrapper解决异步链路中断问题

本文深入解析了SkyWalking在异步编程场景下链路追踪中断的根源,并提供了使用RunnableWrapper等官方包装类的实战解决方案。通过详细的原理解析和代码示例,手把手指导开发者如何实现跨线程的Trace传递,确保分布式系统监控链路的完整性,有效解决异步任务导致的链路中断问题。

sand8的博客 495

logback集成ELK实现分布式日志收集查看

在项目开发中需要经常的查看日志,以前的项目日志输出比较单一,所以查看也比较方便,但是我现在参与的项目是微服务架构,查看日志很麻烦,生产环境出现问题不能够很快的定位问题,所以我搭建了一套日志收集系统,以下都是干货。 在本地进行测试时我使用的window环境,优点是可视化界面修改配置文件方便,启动方便。 线上环境全部使用CentOS。 技术使用: kibana-7.3.2-windows-x86_...

weixin_43368623的博客 1497

DS18B20温度传感器项目实战:从驱动编写到LCD显示,打造你的第一个温控系统

本文详细介绍了如何使用DS18B20温度传感器和LCD1602显示屏构建一个完整的温控系统。从硬件连接、OneWire协议实现到温度数据采集与LCD显示,全面解析了系统整合与工程化实现的关键步骤,帮助开发者快速掌握嵌入式温度监测系统的开发技巧。

weixin_42525328的博客 349

AI Agent在智能投研中的实战:多智能体信息整合与策略生成

本文将带你从0到1完整搭建一套基于LangChain和AutoGen的多智能体AI投研系统首先,我们会一起梳理智能投研的核心痛点、金融数据的独特性,以及为什么传统AI Agent,尤其是多智能体协同架构,是破局的唯一最优解;RAG检索增强生成(但这次是金融领域定制化的,包括向量检索+时序数据检索+知识图谱检索的“三元检索增强”)、AutoGen多智能体协同框架。

软件工程实践的博客 381

ELK日志分析平台-logstash搭建手册(SpringBoot)

###1.logstash ####1.各分布式项目下创建logback-logstash.xml配置文件 ```xml <?xml version="1.0" encoding="UTF-8"?> <configuration> <include resource="org/springframework/boot/logging/logback/base....

qq_29280647的博客 338

22、用户界面流程(UI Flow)全解析

本文全面解析了用户界面流程(UI Flow)的概念、创建步骤及其在系统设计中的应用。通过示例和操作步骤,详细介绍了如何确定屏幕范围、识别屏幕、创建过渡和标记触发器,并阐述了UI Flow在导航识别、验证、可用性优化、测试用例开发和需求推导中的重要作用。文章还结合问答系统案例,展示了UI Flow的实际应用价值,帮助读者深入理解并有效运用这一工具提升系统用户体验。

rice5的博客 154

java 分布式微服务配置统一的日志输出包括logstash

logstash在微服务中这样配置

weixin_58301478的博客 2205

深入Kafka:从SASL_PLAINTEXT到SASL_SSL的迁移之旅

本文详细介绍了如何将Apache Kafka从SASL_PLAINTEXT模式迁移到更安全的SASL_SSL模式。内容包括创建密钥库和信任库、生成证书签名请求、设置证书颁发机构、签署CSR以及修改Kafka配置文件的完整步骤。针对常见问题如SSL握手失败和循环连接尝试提供了解决方案。通过实施这些步骤,可以确保Kafka数据传输的安全性,实现客户端身份验证和加密传输。文章强调在操作过程中需仔细检查配置文件和证书信息,以确保迁移顺利完成。

m0_74337424的博客 84

ResNet改进(45):结合通道混洗(ShuffleNet)的混合架构

本文提出了一种创新的卷积神经网络(CNN)架构CustomResNet,它将ResNet34与通道混洗(ChannelShuffle)技术相结合。该模型通过ShuffleBlock模块替换原始ResNet层,包含三个核心组件:1) ChannelShuffle模块实现通道分组混洗;2) ShuffleBlock模块整合点卷积、分组卷积和残差连接;3) CustomResNet主模型保持ResNet整体架构但替换核心层为ShuffleBlock。这种设计既保留了ResNet的残差学习能力,又通过通道混洗增强特

2401_82355416的博客 210

SpringBoot2 集成 ELK 实现日志收集

ELK 即 Elasticsearch、Logstash、Kibana 组合起来可以搭建线上日志系统,本文主要讲解使用ELK 来收集 SpringBoot2 应用产生的日志。

lovelichao12的专栏 2547

Scale-up,scale-out技术概述

本文系统分析了Scale-up与Scale-out两种扩展技术在现代计算中的应用与发展。Scale-up通过增强单节点性能,适用于高耦合任务,而Scale-out通过横向扩展节点,实现高可用性和无限扩展。在芯片层面,Chiplet技术推动Scale-up发展;在数据中心层面,二者协同工作构建强大集群。光模块在长距离高带宽传输中发挥关键作用。文章对比了NVIDIA、AMD和Broadcom三家公司的技术路线,指出NVIDIA采用封闭生态,AMD选择开放标准,Broadcom则主导底层连接技术。未来发展方向将聚

元直的博客 1446

ELK菜鸟手记 (四) - 利用filebeat和不同端口把不同服务器上的log4j日志传输到同一台ELK服务器...

1. 问题描述  我们需要将不同服务器(如Web Server)上的log4j日志传输到同一台ELK服务器,介于公司服务器资源紧张(^_^)   2. 我们需要用到filebeat 什么是filebeat? filebeat被用来ship events,即把一台服务器上的文件日志通过socket的方式,传输到远程的ELK。 可以传输到logstash,也可以直接传输到elasticse...

weixin_33896069的博客 363

【DeepSeek R1构建本地RAG知识库】数据结构化清洗-工作流自动清洗

在构建本地RAG知识库时,数据结构化清洗是关键但繁琐的步骤。传统方法效率低且易出错,而低代码/无代码平台如Dify提供了更高效的解决方案。Dify通过可视化工作流设计,集成大模型智能处理,支持多格式输入输出,无需编码即可完成复杂的数据清洗任务。文章详细介绍了数据结构化的核心困境、目标、价值及类型,并比较了TXT与Markdown在RAG系统中的适用性。最后,通过Dify平台实战演示了如何在20分钟内完成规则制度文档的结构化清洗,输出标准化数据,展示了自动化工作流在数据处理中的高效性和便捷性。

少说,多做 1222

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

6、ELK+Kafka

环境 10.0.0.51: Logstash、Kafka、Filebeat 一、Zookkeeper和Kafka安装 1、依赖 Kafka Kafka依赖于Zookkeeper 两个都依赖于Java Kafka依赖于Zookeeper 官方网站:https://zookeeper.apache.org/ 下载ZK的二进制包 解压到对应目录完成安装 2、下载解压ZK,复制默认配置文件 tar...

光明小学王小雨的博客 564

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

.NET Core使用NLog通过Kafka实现日志收集

一、前言NET Core越来越受欢迎,因为它具有在多个平台上运行的原始.NET Framework的强大功能。Kafka正迅速成为软件行业的标准消息传递技术。这篇文章简单...

dotNET跨平台 2053

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

威胁狩猎:基于ELK的日志监控

ELK Stack即以前的Elastic Stack,Elk Stack是Elastic公司专门为集中化日志管理设计的免费开源软件组合。它允许搜索、分析和可视化来自不同来源的日志。最好使用Root 权限进行配置。

Palpitate_LL的博客 856

java logstash_java项目日志写到logstash-TCP/UDP

好处:项目日志写到logstash,然后发送到ElasticSearch,可以方便查看搜索日志,还可以做报表分析。logstash是一个数据采集工具,有多种渠道,比如文件,tcp,udp等,如果是采集日志文件,那么需要在存放文件所在的服务器上,启动一个logstash服务,不方便快速部署;而采用tcp/udp的方式相对来讲就简单一点,只需要将数据发送到logstash服务就行。这里主要讲一下网络传...

weixin_29945371的博客 1164

logstash-gelf 项目推荐

logstash-gelf 项目推荐 logstash-gelf Graylog Extended Log Format (GELF) implementation in Java for all major logging frameworks: log4j, log4j2, java.util.logging, lo...

gitblog_00079的博客 845

Logstash-Logback-Encoder 教程

本教程将引导您了解 `logstash-logback-encoder` 项目,这是一个用于生成JSON格式日志的Logback编码器。让我们从项目的目录结构、启动文件和配置文件介绍开始。 ## 1. 项目目录结构及介绍 在 `logstash-logback-encoder` 的源代码仓库中,主要目录和文件包括: - `src/main/java`: 存放所有Java源代码,主要实现编码器

gitblog_00540的博客 1711

Elastic Stack 日志收集系统笔记

人活在世上,什么都不要怕,做自己认为对的事儿,慢慢放下输赢和计算。                                     &

wanger5354的博客 1520

ELK搭建

ELK是一组开源工具的缩写,它由Elasticsearch、Logstash和Kibana三个组件组成,用于处理、分析和可视化大量日志数据。1.需要准备一台linux服务器(最好是CentOS7),内存至少4g以上(三个组件都比较占用内存)2.需要有docker使用经验。

wuliyouMaozhi的博客 3137

Java中日志采集框架-JUL、Slf4j、Log4j、Logstash

日志采集是指在软件系统、网络设备、服务器或其他IT基础设施中自动收集日志文件和事件信息的过程。这些日志通常包含了时间戳、事件类型、源和目标信息、错误代码、用户操作记录等关键数据。日志采集的目的是为了监控系统运行状态、分析系统性能、审计用户行为、故障排查和安全监控等。

weixin_44929475的博客 2189

java日志 log4j 对接logstash 实操详解

一、 前言        java程序日志接入elk日志系统,我们最常用到的方案就是用filebeat或者是logstash读取java程序生成的日志文件,那么,我们是否可以忽略日志文件这个载体,直接让java日志传输到elk系统中呢?这里就讲解一下,如何配置,log4j对接logstash。 二、log4j中的配置        在log4j配置中,有现成的logstash模块,配置的时候...

wayds的博客 6813

Grafana Loki 日志传输工具

Promtail也是裸机上的首选客户端,它可以配置为跟踪给定主机路径的所有文件中的日志。Promtail 和 Prometheus一起运行在K8s中,可以实现强大的调试功能:如果Promtail 和 Prometheus使用相同的标签,用户可以使用Grafana等工具根据标签集在度量和日志之间切换。Grafna 技术栈推荐客户端,支持收集度量、日志、跟踪和持续性能分析的遥测数据,跟Prometheus、OpenTelemetry、Grafana开源生态系统完全兼容。Prometheus 系列文章。

分享技术干货和灵感、推荐新书和好玩的项目、分享Java面试题 2018
上一篇: 补传pom文件到nexus
下一篇: minio单节点部署
Apex   Predator
博客等级 码龄6年 9371粉丝 289原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值