我需要使用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>
答案 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