登峰造极境

  • WIN
    • CSharp
    • JAVA
    • OAM
    • DirectX
    • Emgucv
  • UNIX
    • FFmpeg
    • QT
    • Python
    • Opencv
    • Openwrt
    • Twisted
    • Design Patterns
    • Mysql
    • Mycat
    • MariaDB
    • Make
    • OAM
    • Supervisor
    • Nginx
    • KVM
    • Docker
    • OpenStack
  • WEB
    • ASP
    • Node.js
    • PHP
    • Directadmin
    • Openssl
    • Regex
  • APP
    • Android
  • AI
    • Algorithm
    • Deep Learning
    • Machine Learning
  • IOT
    • Device
    • MSP430
  • DIY
    • Algorithm
    • Design Patterns
    • MATH
    • X98 AIR 3G
    • Tucao
    • fun
  • LIFE
    • 美食
    • 关于我
  • LINKS
  • ME
Claves
长风破浪会有时,直挂云帆济沧海
  1. 首页
  2. 未分类
  3. 正文

Spring通过Rabbitmq将日志发送到logstash并存储至ES-笔记

2019-03-29

一、pom.xml添加配置

<dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.3</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <optional>true</optional>
        </dependency>
        <!--用户logback Filter动态编译,分离行为日志-->
        <dependency>
            <groupId>org.codehaus.janino</groupId>
            <artifactId>janino</artifactId>
            <version>3.0.12</version>
        </dependency>

二、appender配置

<appender name="AMQP" class="org.springframework.amqp.rabbit.logback.AmqpAppender">
        <!--<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
            <!--<pattern>${AMQP_LOG_PATTERN}</pattern>-->
        <!--</encoder>-->
        <includeCallerData>true</includeCallerData>
        <!--<encoder class="net.logstash.logback.encoder.LogstashEncoder" >-->
            <!--<customFields>{"appname":"bdcor2"}</customFields>-->
            <!--<includeMdcKeyName>user.uuid</includeMdcKeyName>-->
            <!--<includeCallerData>true</includeCallerData>-->
            <!--<includeContext>false</includeContext>-->
        <!--</encoder>-->
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder" >
            <providers>
                <timestamp/>
                <pattern>
                    <pattern>
                        {
                        "env":"${SPRING_PROFILES_ACTIVE}",
                        "appName":"${SPRING_APPLICATION_NAME}",
                        "logType":"behavior",
                        "logger": "%logger",
                        "level": "%level",
                        "thread": "%thread",
                        "message": "%message"
                        }
                    </pattern>
                </pattern>
            </providers>
        </encoder>

        <host>${LOGBACK_APPENDER_AMQP_HOST}</host>
        <port>${LOGBACK_APPENDER_AMQP_PORT}</port>
        <username>${LOGBACK_APPENDER_AMQP_USERNAME}</username>
        <password>${LOGBACK_APPENDER_AMQP_PASSWORD}</password>
        <applicationId>${LOGBACK_APPENDER_AMQP_APPLICATION_ID}</applicationId>
        <routingKeyPattern>${LOGBACK_APPENDER_AMQP_ROUTING_KEY_PATTERN}</routingKeyPattern>
        <declareExchange>${LOGBACK_APPENDER_AMQP_DECLARE_EXCHANGE}</declareExchange>
        <exchangeType>${LOGBACK_APPENDER_AMQP_EXCHANGE_TYPE}</exchangeType>
        <exchangeName>${LOGBACK_APPENDER_AMQP_EXCHANGE_NAME}</exchangeName>
        <generateId>${LOGBACK_APPENDER_AMQP_GENERATE_ID}</generateId>
        <charset>UTF-8</charset>
        <durable>${LOGBACK_APPENDER_AMQP_DURABLE}</durable>
        <deliveryMode>${LOGBACK_APPENDER_AMQP_DELIVERY_MODE}</deliveryMode>
        <virtualHost>${LOGBACK_APPENDER_AMQP_VIRTUAL_HOST}</virtualHost>
    </appender>

 

三、logstash.conf配置

input { 
   rabbitmq {
       type =>"all"
       durable => false
       exchange => "claves-log"
	   exchange_type => "topic"
	   queue => "claves-log-logstash"
	   key => "claves-demo-app"
	   host => "127.0.0.1"
	   port => 5672
	   user => "admin"
	   password => "admin"
       auto_delete => false
	   codec => json
  }	
 }

 
output {
  elasticsearch { 
       hosts => ["192.168.1.1:18080"] 
	   index => "%{appName}-%{env}-%{logType}"
}
}

 

标签: 暂无
最后更新:2019-03-29

代号山岳

知之为知之 不知为不知

点赞
< 上一篇
下一篇 >

COPYRIGHT © 2099 登峰造极境. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备14031139号-5

川公网安备51012202000587号