spring boot 整合RabbitMQ和logstash 收集Logback日志,保存到ElasticSearch

本文介绍了如何在Spring Boot项目中配置RabbitMQ和Logstash,以便将Logback日志数据发送到ElasticSearch进行存储。在配置过程中,需要在logback-spring.xml中设置,pom.xml添加RabbitMQ依赖,application.yml中配置相关参数。Logstash的配置文件logstash.conf也需要正确设置。当启动项目后,如果未将日志推送到RabbitMQ,可能需要手动创建交换机、队列并绑定,确保routing key与logback中的routingKeyPattern匹配。

项目配置如下:

logback-spring.xml:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>


    <springProperty scope="context"  name="LOG_HOME" source="log.path" defaultValue="/logs/credit"/>
    <springProperty  name="rabbitmqHost" source="spring.rabbitmq.host"/>
    <springProperty  name="rabbitmqPort" source="spring.rabbitmq.port"/>
    <springProperty  name="rabbitmqUsername" source="spring.rabbitmq.username"/>
    <springProperty  name="rabbitmqPassword" source="spring.rabbitmq.password"/>


    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%white(%d{yyyy-MM-dd HH:mm:ss.SSS}) %red([%thread]) %blue(%-5level) %blue(%logger) - %msg%n
            </pattern>
        </encoder>
    </appender>

    <appender name="eventFile"
              class="ch.qos.
要在一个项目中同时使用Redis、RabbitMQ、Nginx、ElasticsearchLogstashKibana,并将其打包成JAR文件运行,你需要将这些组件集成到一个Spring Boot项目中,并通过Maven或Gradle来管理依赖构建过程。以下是一个基本的步骤指南: ### 1. 创建Spring Boot项目 使用Spring Initializr创建一个新的Spring Boot项目,并添加所需的依赖项。 ### 2. 添加依赖项 在`pom.xml`(如果使用Maven)或`build.gradle`(如果使用Gradle)中添加以下依赖项: ```xml <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- Spring Data Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- Spring for RabbitMQ --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Starter Data Elasticsearch --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> </dependency> <!-- Logstash Logback Encoder --> <dependency> <groupId>net.logstash.logback</groupId> <artifactId>logstash-logback-encoder</artifactId> <version>6.4</version> </dependency> <!-- Lombok (optional) --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- Spring Boot Starter Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ``` ### 3. 配置应用程序属性 在`src/main/resources/application.properties`或`application.yml`中配置Redis、RabbitMQElasticsearch的连接信息。 ```properties # Redis spring.redis.host=localhost spring.redis.port=6379 # RabbitMQ spring.rabbitmq.host=localhost spring.rabbitmq.port=5672 spring.rabbitmq.username=guest spring.rabbitmq.password=guest # Elasticsearch spring.elasticsearch.rest.uris=http://localhost:9200 # Logstash logging.logback.encoder.logstash.enabled=true logging.logback.encoder.logstash.host=localhost logging.logback.encoder.logstash.port=5000 ``` ### 4. 编写代码 编写Spring Boot应用程序代码,集成Redis、RabbitMQElasticsearch。例如,创建一个简单的REST控制器来发送接收消息。 ### 5. 打包应用程序 使用Maven或Gradle将应用程序打包成JAR文件。 ```bash # 使用Maven打包 mvn clean package # 使用Gradle打包 gradle build ``` ### 6. 运行应用程序 运行打包好的JAR文件。 ```bash java -jar target/your-app-name.jar ``` ### 7. 配置Nginx 配置Nginx作为反向代理服务器,将请求转发到Spring Boot应用程序。编辑Nginx配置文件(通常位于`/etc/nginx/nginx.conf`或`/etc/nginx/sites-available/default`),添加以下内容: ```nginx server { listen 80; server_name your_domain.com; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } ``` ### 8. 启动Nginx 启动或重新启动Nginx服务。 ```bash sudo systemctl start nginx # 或者 sudo systemctl restart nginx ``` ### 9. 配置LogstashKibana 配置Logstash从应用程序日志中读取数据,并将数据发送到Elasticsearch。配置Kibana以可视化Elasticsearch中的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值