Семантическое ведение журнала вне конфигурации ElasticSearch

Я пытаюсь настроить ElasticSearch правильно с протоколированием ETW/Out-Of-Process. Я успешно установил последнюю версию регистратора Out-Of-Process и выполнил действия, описанные на сайте SLAB.

мой SemanticLogging-svc.xml выглядит так:

<?xml version="1.0" encoding="utf-8" ?>
<configuration xmlns="http://schemas.microsoft.com/practices/2013/entlib/semanticlogging/etw"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://schemas.microsoft.com/practices/2013/entlib/semanticlogging/etw SemanticLogging-svc.xsd">

  <!-- Optional settings for fine tuning performance and Trace Event Session identification-->
  <traceEventService/>

  <!-- Sinks reference definitons used by this host to listen ETW events -->
  <sinks>
        <elasticsearchSink instanceName="slabtest" connectionString="http://localhost:9200" name="out" index="outofprocessslab" type="test">
      <sources>
        <eventSource name="ServiceBaseEventSource" level="LogAlways"/>
      </sources>
    </elasticsearchSink>


    <!-- The service identity should have security permissions to access the resource according to each event sink -->
    <flatFileSink name="svcRuntime" fileName="SemanticLogging-svc.runtime.log" >
      <sources>
        <!-- The below settings shows a simple configuration sample for the buit-in non-transient fault tracing -->
        <!-- Remove this eventSource if you'd like, and add your own configuration according to the documentation -->
        <!-- The name attribute is from the EventSource.Name Property -->
        <eventSource name="ServiceBaseEventSource" level="LogAlways"/>
      </sources>
      <!--[Add any built-in or custom formatter here if the sink supports text formatters]-->
      <eventTextFormatter header="----------"/>
    </flatFileSink>

    <!--[Add any built-in or custom sink definition here]-->

  </sinks>

</configuration>

Однако, когда я пытаюсь запустить службу, я получаю следующее сообщение об ошибке:

c:\slab-svc2\tools>SemanticLogging-svc.exe -c
Enterprise Library Semantic Logging Service v2.0.1406.1
Microsoft Enterprise Library
Microsoft Corporation


One or more errors occurred when loading the TraceEventService configuration file.
Configuration file: C:\Tools\slab-svc2\tools\SemanticLogging-svc.xml
The element 'sinks' has invalid child element 'elasticsearchSink'. List of possible elements expecte
d: 'flatFileSink, rollingFlatFileSink, windowsAzureTableSink, sqlDatabaseSink, consoleSink, customSi
nk' as well as any element in namespace '##other'.
Line number: 11, Line position: 7

Я должен также отметить, что я скачал FullScale180.SemanticLogging.Elasticsearch пакет nuget и поместил его в тот же каталог, что и исполняемый файл. Я наткнулся на расплывчатое сообщение в блоге, в котором говорилось, что компоненты SLAB ElasticSearch стали теперь проектом сообщества, который указал мне на это. Но как мне настроить это для работы с сервисом вне процесса?

Благодарю.

2 ответа

Решение

В случае, если кто-то заинтересован... кажется, SLAB Out-of-Process Service 2.0 больше не поддерживает ElasticSearch. Я решил это, откатившись на версию 1.1.

Ohlando, элемент конфигурации asticsearchSink, похоже, больше не поддерживается напрямую (в 2.0). Тем не менее, вы можете загрузить код из git, и dllasticsearch dll (Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Elasticsearch.dll) все еще находится в проекте. Если вы добавите атрибут customSink, вы сможете заставить его работать. Вот как я получил это на работу:

<customSink type=" Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Sinks.ElasticsearchSink,Microsoft.Practices.EnterpriseLibrary.SemanticLogging.Elasticsearch" 
 name="ElasticSearchOutput">
  <sources>
    <eventSource name="EventName" level="LogAlways"/>
  </sources>
<parameters>
    <parameter name="instanceName" type="System.String" value="instance" />
    <parameter name="connectionString" type="System.String" value="http://localhost:9200" />
    <parameter name="index" type="System.String" value="indexWithoutTheMinus" />
    <parameter name="type" type="System.String" value="TypeHere" />
    <parameter name="flattenPayload" type="System.Nullable`1[[System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]" value="false" />
    <parameter name="bufferInterval" type="System.TimeSpan" value="00:00:01" />
    <parameter name="bufferingCount" type="System.Int32" value="1" />
    <parameter name="maxBufferSize" type="System.Int32" value="500" />
    <parameter name="onCompletedTimeout" type="System.TimeSpan" value="00:00:10" />

Это работает для меня в v2! Я не мог найти это ни в одной документации, хотя. Мне также интересно, читает ли кто-нибудь из команды SLAB это и может прокомментировать, есть ли способ добавить сокращенную конфигурацию обратно в двоичные файлы? Я скачал и поковырялся в коде, но пока не нашел, где это происходит.

Спасибо Скотт

Другие вопросы по тегам