Важно: решение проблемы с датами в 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:
- Скачать исправленный
datetime.xml
с сайта Splunk - Остановить Splunk командой
- Заменить существующий
datetime.xml
скачанным в директории$SPLUNK_HOME/etc
- Запустить Splunk командой
./splunk stop
./splunk start
В случае наличия Search Head или Indexer кластера:
- Скачать исправленный
datetime.xml
с сайта Splunk - Заменить существующий
datetime.xml
скачанным в директории$SPLUNK_HOME/etc
на всех узлах кластера - Выполнить 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 |