Трубопровод, указанный в настройках serilog -asticsearch, не выполнен - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь записать журналы из моего приложения .Net в Elasticsearch, используя serilog -asticsearch sink .Мне удалось динамически создавать индексы и писать логи.

Я использовал метод app.settings для serilog -astic.Ниже приведены мои настройки приложения, в проекте .Net, из которого я создаю журналы.

 <add key="serilog:using" value="Serilog.Sinks.Elasticsearch" />
<add key="serilog:write-to:Elasticsearch.nodeUris" value="http://localhost:9200" />
<add key="serilog:write-to:Elasticsearch.indexFormat" value="app-index-{0:yyyy.MM.dd}" />
<!--<add key="serilog:write-to:Elasticsearch.templateName" value="apptemplate" />--> 
<add key="serilog:write-to:Elasticsearch.typeName" value="appLogEvent" />
<add key="serilog:write-to:Elasticsearch.pipelineName" value="geoip" />
<add key="serilog:write-to:Elasticsearch.batchPostingLimit" value="50" />
<add key="serilog:write-to:Elasticsearch.emitEventFailure" value="WriteToSelfLog" />
<add key="serilog:write-to:Elasticsearch.period" value="2" />
<add key="serilog:write-to:Elasticsearch.inlineFields" value="true" />
<add key="serilog:write-to:Elasticsearch.minimumLogEventLevel" value="Debug" />
<!--<add key="serilog:write-to:Elasticsearch.bufferBaseFilename" value="C:\Logs\elastic-buffer.log" />--> 
<add key="serilog:write-to:Elasticsearch.bufferFileSizeLimitBytes" value="5242880" />
<add key="serilog:write-to:Elasticsearch.bufferLogShippingInterval" value="5000" />
 <!--<add key="serilog:write-to:Elasticsearch.connectionGlobalHeaders" value="Authorization=Bearer SOME-TOKEN;OtherHeader=OTHER-HEADER-VALUE" />--> 
<add key="logPath" value="C:\Logs\App" />
<add key="logLevel" value="Error" />
<!-- Log Rolling: File size limit for roll over (code defaults to 50MB if not specified here) -->
<add key="logRollFileSizeLimit" value="52428800" />
<!-- Log Rolling: Number of files to retain when rolled over (defaults to 10 if not specified here) -->
<add key="logRollFileRetainCount" value="10" />

Мне нужно было применить подключаемый гео-процессор к индексированным документам, определить IP-адреса в журнале и преобразовать их.их к геокодам.

Я создал конвейер для выполнения процессоров и отображения необходимых данных.Я смог проверить это с помощью инструментов dev-console.Но когда я применил тот же конвейер к документам, указав в app.settings, он не работает.Я создал разные конвейеры и попробовал, но без особого успеха.Ниже приводится мой конвейер:

{ "geoip" : { "description" : "Add geo ip info", "processors" : [ { "set" : { "field" : "IP1", "value" : "{{response.IP}}" } }, { "trim" : { "field" : "IP1" } }, { "geoip" : { "field" : "IP1", "target_field" : "geo_address", "ignore_missing" : true, "database_file" : "GeoLite2-Country.mmdb" } } ] } }

Я проверил эластичные бревна, но ничего подозрительного не было найдено.Версияasticsearch: 6.6.0. Net версия 4.5.2 Другие версии пакетов nuget, связанных с serilog, из файла packages.config:

<package id="ElasticSearch.Net" version="5.5.0" targetFramework="net452" /> <package id="Serilog" version="2.5.0" targetFramework="net452" /> <package id="Serilog.Formatting.Compact" version="1.0.0" targetFramework="net452" /> <package id="Serilog.Settings.AppSettings" version="2.1.0" targetFramework="net452" /> <package id="Serilog.Sinks.ElasticSearch" version="5.4.0" targetFramework="net452" /> <package id="Serilog.Sinks.File" version="4.0.0" targetFramework="net452" /> <package id="Serilog.Sinks.PeriodicBatching" version="2.1.1" targetFramework="net452" /> <package id="Serilog.Sinks.RollingFile" version="3.3.0" targetFramework="net452" /> <package id="Serilog.Sinks.Seq" version="3.3.3" targetFramework="net452" />

1 Ответ

0 голосов
/ 23 марта 2019

Проблема возникла из-за конфликта версий упругого поиска и Serilog.Sinks.Elasticsearch.Похоже, версию нужно было обновить до последней.Я использовал Serilog.Sinks.Elasticsearch version = 5.4.0 и обновил до последней версии (7.1.0).Трубопровод теперь работает как задумано.Версия ElasticSearch была 6.6.0.

К сожалению, совместимость версий никогда не была указана нигде на странице github

...