2016-11-22 13 views
1

Я пытаюсь войти в систему, чтобы разложить прямо в моем приложении Java, используя приложение logback для splunk.Попытка входа в Splunk с помощью приложения logback

Кажется, что ничего не происходит, но когда я вручную выдаю команду post в клиенте REST, я вижу свои данные в splunk.

Я тоже не смог получить официальное испытание блайнда.

logback.xml

<appender name="SPLUNK" class="com.splunk.logging.HttpEventCollectorLogbackAppender"> 
    <url>http://mySplunkUrl:8088/services/collector</url> 
    <token>1234566789</token> 
    <disableCertificateValidation>true</disableCertificateValidation> 
    <batch_size_count>1</batch_size_count> 
    <layout class="ch.qos.logback.classic.PatternLayout"> 
     <pattern>%msg</pattern> 
    </layout> 
    </appender> 

    <root level="trace"> 
    <appender-ref ref="SPLUNK" /> 
    </root> 

</configuration> 

тест Блок

@Test 
public void splunkLogger() { 
    Logger logger = LoggerFactory.getLogger(LogFactoryTest.class); 
    Date date = new Date(); 
    String jsonMsg = String.format("{event:'CancerCenterTest'}"); 
    logger.info("CancerCenterTest"); 
    logger.info(jsonMsg); 
} 

Это документация, я пытался использовать: http://dev.splunk.com/view/splunk-logging-java/SP-CAAAE7M

Я пропускаю что-то очевидное?

EDIT Вот ссылка на мой проект - https://github.com/toymachiner62/splunk-logging

+0

Можете ли вы отправить .zip своего проекта на [email protected]? Я могу помочь, если у меня есть немного больше контекста о том, как настроен ваш проект. – Shakeel

+0

@Shakeel Хорошо, я просто отослал его. – Catfish

+0

@ Catfish вы можете опубликовать строки импорта для модульного теста. Неясно, использует ли тест классы Slf4j или Logback 'Logger' и' LoggerFactory'. Какие зависимости используются в журналах? Это проект maven? Если да, можете ли вы вставить соответствующую часть 'pom.xml'. Также было бы неплохо, если бы вы могли поделиться с zip другими читателями;) – anttix

ответ

5

Проблема, кажется, что тестовый модуль JVM будет выходить, прежде чем Splunk фоновый поток завершает загрузку журнала.

Адаптер резервного копирования для Splunk использует фоновый поток для отправки сообщений на сервер пакетами. Пакетирование контролируется параметрами batch_interval, batch_size_bytes и batch_size_count. Даже если все они настроены на очень низкие уровни, модульная проверка JVM, скорее всего, выйдет и убьет поток до его завершения.

Попробуйте добавить спать до конца метода испытания, например.

Thread.sleep(5000); 

Также может произойти сбой вследствие некоторой ошибки. Они могут быть всплыли, добавив этот фрагмент кода, чтобы поймать отказов отправителя Splunk:

HttpEventCollectorErrorHandler.onError(new HttpEventCollectorErrorHandler.ErrorCallback() { 
    public void error(final List<HttpEventCollectorEventInfo> events, final Exception ex) { 
     // FIXME: Dumping stack trace to STDERR is not suitable for production use ! 
     ex.printStackTrace(); 
    } 
}); 

Пожалуйста, обратите внимание, что, кажется, не будет установка любого HttpClient ауты, так что если конечная точка недостижима это может занять несколько минут для подключения к Splunk HttpEventCollectorSender тайм-аут и сообщение об ошибке.

EDIT: Как выясняется, в параметре url возникла проблема с номером logback.xml. URL-адрес должен быть указан без пути, например. http://mySplunkUrl:8088/ не http://mySplunkUrl:8088/services/collector

+0

Добавление 'Thread.sleep (5000)' не помогло. Я также добавил этот проект как зависимость от другого проекта и запустил его на моем сервере, и он по-прежнему не отправлял журналы для разметки. – Catfish

+0

Итак, я понял, что мой logback.xml был перезаписан loglog.xml зависимости, когда я запускаю свой проект на своем сервере.Я добавил этот фрагмент, чтобы увидеть неудачи отправителя, и теперь я получаю эту ошибку '{" text ":" Запрошенный URL-адрес не найден на этом сервере. "," Code ": 404}'. Я напрямую разместил URL-адрес, который у меня есть в моем приложении, но ... – Catfish

+1

Если посмотреть на код 'HttpEventCollectorSender ', то он автоматически добавится к URL-адресу ('/services/collector/event/1.0'). Я попытался бы удалить хвост URL-адреса в 'logback.xml', например. 'http: //example.com: 8088/services/collector' ->' http: //example.com: 8088/' – anttix

 Смежные вопросы

  • Нет связанных вопросов^_^