splunk logback/log4j appender似乎没有记录splunk

splunk logback/log4j appender似乎没有记录splunk

问题描述:

我需要使用Java8运行时登录到AWS Lambda的splunk。它使用spring框架,并将logback splunk appender添加到项目中。没有错误,日志似乎没有显示在splunk中。 splunk管理员提到在splunk服务器上没有收到任何请求。当我尝试手动调用REST API时,日志显示为splunk。所以从AWS Lambda到分组服务器的连接性是好的。 splunk appender似乎以异步方式调用API,并且在AWS Lambda代码的末尾添加了50秒的休眠时间,以查看在异步步骤完成之前VM是否退出问题。没有运气。我如何进一步调试?splunk logback/log4j appender似乎没有记录splunk

代码段: -

public class LambdaApp implements RequestHandler<String, Object> 
{ 
    private static final Logger LOGGER = LoggerFactory.getLogger(LambdaApp.class); 
    private static final Logger SPLUNK_LOGGER = LoggerFactory.getLogger("splunk.logger"); 

    @Override 
    public Object handleRequest(String event, Context context) 
    { 

     SPLUNK_LOGGER.info("AWS Lambda start"); 
     try { 
      Thread.sleep(50000); 
     } catch(InterruptedException ex) { 
      Thread.currentThread().interrupt(); 
     } 
     return "handled"; 
    } 

Maven的依赖性: -

<dependency> 
     <groupId>com.splunk.logging</groupId> 
     <artifactId>splunk-library-javalogging</artifactId> 
     <version>1.5.2</version> 
</dependency> 

的logback配置: -

<appender name="http" class="com.splunk.logging.HttpEventCollectorLogbackAppender"> 
    <url>https://a.b.c.d:8088</url> 
    <token>valid-token</token> 
    <disableCertificateValidation>true</disableCertificateValidation> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
        <pattern>{%msg}</pattern> 
    </layout> 
</appender> 

<logger name ="splunk.logger" level="DEBUG"> 
     <appender-ref ref="http" /> 
    </logger> 
+0

我不认为的Thread.Sleep足以刷新一个的logback异步appender。另外,当lambda结束时,不会向JVM发送中断,因此关闭挂接不起作用。也许交换到同步appender。 –

第一步是添加batch_size_count以排除HttpEventCollectorLogbackAppender不会刷新到Splunk的任何问题。

<appender name="http" class="com.splunk.logging.HttpEventCollectorLogbackAppender"> 
    <url>https://a.b.c.d:8088</url> 
    <token>valid-token</token> 
    <batch_size_count>1</batch_size_count> 
    <disableCertificateValidation>true</disableCertificateValidation> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <pattern>{%msg}</pattern> 
    </layout> 
</appender> 

你也应该确认你是在自HTTP事件收集器接收端采用Splunk 6.3+至少需要V6.3的