Skip to main content

Важно: решение проблемы с датами в Splunk

Проблема

Начиная с 1 января 2020 года «непропатченные» инсталляции Splunk начнут некорректно извлекать временную метку из событий, где год указан в двузначном формате. На практике, это означает, что события могут быть проиндексированы, например в 1920 году, если дата будет выглядеть как 21-10-20.

А начиная с 13 сентября 2020 года, с 12:26:39 «непропатченные» инсталляции Splunk потеряют возможность извлекать временные метки, которые приведены к Unix Timestamp.


Почему это важно?

Проблема с временной меткой несет за собой несколько других, более важных:

  • события будут проиндексированы с некорректным временем
  • будет нарушен механизм перемещения между hot, warm и cold buckets
  • политика хранения и устаревания данных начнет работать некорректно, что в дальнейшей перспективе может вызвать заполнение дискового пространства
  • результаты поиска станут недействительными, так как новые события будут индексироваться «в прошлом»

Какие версии Splunk подвержены проблеме?

Проблеме подвержены следующие платформы Splunk, на любой операционной системе:

  • Splunk Cloud
  • Splunk Light
  • Splunk Enterprise, настроенные как Indexers
  • Splunk Enterprise, настроенные как Heavy Forwarders
  • Splunk Enterprise, настроенные как Search Head, в случае получения данных по API и их дальнейшему индексированию или в случае пересылки данных на индексаторы
  • Splunk Universal Forwarders в случае сбора CSV-файлов с имеющейся настройкой INDEXED_EXTRACTIONS в props.conf или в случае имеющейся настройки force_local_processing=true

Исправить эту проблему можно тремя способами:

  • вручную внести изменения в файл datetime.xml
  • скопировать «пропатченный» файл datetime.xml на все ваши инсталляции Splunk
  • обновиться до последней минорной версии, их список будет ниже

Решение #1

Следующие шаги нужно выполнить на всех ваших инсталляциях Splunk:

  1. Скачать исправленный datetime.xml с сайта Splunk
  2. Остановить Splunk командой
  3. ./splunk stop
  4. Заменить существующий datetime.xml скачанным в директории $SPLUNK_HOME/etc
  5. Запустить Splunk командой
  6. ./splunk start

В случае наличия Search Head или Indexer кластера:

  1. Скачать исправленный datetime.xml с сайта Splunk
  2. Заменить существующий datetime.xml скачанным в директории $SPLUNK_HOME/etc на всех узлах кластера
  3. Выполнить Rolling Restart Search Head или Indexer кластера

Если вы используете «свой» datetime.xml, то Splunk предоставляет инструкцию, какие регулярные выражения нужно исправить.

Решение №2

Проблему так же можно решить стандартной процедурой обновления на одну из следующих версий:

ВеткаМинорная версия с «пропатченным» datetime.xml
6.6Для ветки 6.6 нужно обновиться до 6.6.12.1
7.0Для ветки 7.0 нужно обновиться до 7.0.13.1
7.1Для ветки 7.1 нужно обновиться до 7.1.10
7.2Для ветки 7.2 нужно обновиться до 7.2.9.1
7.3Для ветки 7.3 нужно обновиться до 7.3.3
8.0Для ветки 8.0 нужно обновиться до 8.0.1

Bug fix, Splunk