2017-10-17 17 views
0

Java8ランタイムを使用してAWS Lambdaからsplunkにログする必要があります。それは春のフレームワークを使用して、私はプロジェクトにlogback splunkアペンダーを追加しました。エラーはなく、ログはsplunkに表示されないようです。 splunk adminは、splunk serverで受信した要求がないことを示しました。 REST APIを手動で呼び出そうとすると、ログはsplunkに表示されます。したがって、AWS LambdaからSplunkサーバーへの接続性は良好です。スプランクアペンダーはAPIを非同期で呼び出すようですが、AWSラムダコードの最後に50秒のスリープを追加して、非同期ステップが完了する前にVMが終了する問題であるかどうかを確認しました。まだ運はありません。さらにデバッグする方法は?splunk logback/log4j appenderがスプラックをログに記録しないようです

コードスニペット: -

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

の最小値を必要とするので、また、あなたが受信側でのSplunk 6.3+を使用していることを確認する必要があります私はのThread.sleepがlogbackをフラッシュするのに十分であるとは思いません非同期アペンダー。また、ラムダが終了すると、割り込みはJVMに送られないので、シャットダウンフックは機能しません。おそらく同期アペンダーにスワップします。 –

答えて

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イベントコレクタがV6.3

関連する問題