2017-10-17 172 views
0

我需要使用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。 –

回答

0

第一步是添加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的