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

时间:2017-10-17 22:17:22

标签: aws-lambda logback splunk

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

代码段: -

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>

1 个答案:

答案 0 :(得分: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> 

您还应该验证您在接收端使用Splunk 6.3+,因为HTTP Event Collector需要至少v6.3