Интеграция NLog Elasticsearch @ timestamp работает неправильно (на 2 часа раньше) в ES - PullRequest
1 голос
/ 04 июля 2019

Я отправляю логи из NLog в ElasticSearch. Итак, когда я увидел в части ElasticSearch, я увидел, что @timestamp показывает неправильно, он показывает на 2 часа раньше.

Я видел, что по умолчанию @timestamp работает неправильно, я добавил свое время в NLog.config, но когда я проверяю Elasticsearch, мое время сейчас работает нормально, но, похоже, текстовый формат, я ожидал формат даты.

В файле NLog.config:

    <target xsi:type="BufferingWrapper" name="ElasticSearch"
        flushTimeout="5000">
  <target xsi:type="ElasticSearch" 
          index = "logstash-${date:format=yyyy-MM-dd}"           
          uri = "http://localhost:9200/"
          includeAllProperties ="true">
    <field name="host" layout="${machinename}"/>
    <field name="message" layout="${message}"/>
    <field name="src" layout="${logger}"/>
    <field name="time" layout="${longdate}"/>
   </target>
  </target>

почему время кажется текстовым форматом? Как я могу изменить формат даты?

Есть ли способ внутри NLog.config, чтобы я мог изменить поле @timestamp, которое использует значение по умолчанию в ElasticSearch.

1 Ответ

0 голосов
/ 05 июля 2019

Для ElasticSearch дата должна быть UTC,

, поэтому используйте

${longdate:universalTime=true}
...