Журналы Serilog Elasticsearch не попадают на сервер (но буферизуются правильно) - PullRequest
4 голосов
/ 17 января 2020

У меня локально размещен стек ELK (v7.0) на Windows веб-сервере IIS, и журналы не попадают на сервер. Сервер работает, я могу получить доступ к зарезервированному URL и вернуть пакет generi c json, в котором говорится, что Elasticsearch запущен, и я могу войти в Kibana просто отлично, журналов просто нет, чтобы посмотреть.

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

1 Ответ

1 голос
/ 28 января 2020

Частым источником этой ошибки является некорректный (шаблонный) запрос, который не соответствует вашей версии ES (например, содержит устаревшие поля). Вы можете попробовать

  • использовать предварительную версию пакета nuget
  • установить DetectElasticsearchVersion на true
  • установить RegisterTemplateFailure to IndexAnyway

Вы можете настроить приемник так:

var loggerConfig = new LoggerConfiguration()
    .WriteTo.Elasticsearch(new ElasticsearchSinkOptions(new Uri(...) ){
        // ...
        DetectElasticsearchVersion = true,
        RegisterTemplateFailure = RegisterTemplateFailure.IndexAnyway
     });
...