更新履歴
- 2019/12/5 初稿
- 2019/12/6 暫定app利用時の制限事項について補足追記
はじめに
- 「2020年1月1日以降に「日付を誤認識」する不具合、Splunkが公開」 by @ITさんの記事にもありましたこちらについて、対応メモを用意しました。
- Splunk Ver 7.3.2環境で暫定App(datetime.xml fix app archive)を適用するパターンの設定と動作確認の覚書
- 本家のガイドをよく読んで、本記事は補足情報としてご参考ください。
-
(2019/12/6追記) 暫定App適用しても問題が改善できないパターンがあります。
- 結論からすると、推奨はSplunkのバージョンアップ(修正済みのものへ)が一番シンプルだと思われます。
- 暫定App適用"前"に以下コマンドを実行して確認してみてください。
/opt/splunk/bin/splunk btool props list --debug | grep DATETIME_CONFIG |grep local
- grep結果に以下の様な/local/props.conf配下のDATETIME_CONFIG = (null)という設定があった場合。この時、DATETIME_CONFIGはオリジナルの/etc/datetime.xml(2020が正常にパースできない)方を、暫定Appを適用したとしても見に行ってしまいます。
/opt/splunk/etc/apps/search/local/props.conf DATETIME_CONFIG =
上記props.confが複数のsourcetypeで発生している場合
- オリジナルの/etc/datetime.xmlを修正してください。
上記props.confが1つ、2つ程度のsourcetypeでのみ発生している場合
- sourcetypeで利用する時刻表記が、20/01/01のように2桁表記である場合は、DATETIME_CONFIGを手動で以下の様に書き換えてください。
/opt/splunk/etc/apps/search/local/props.conf DATETIME_CONFIG = /etc/apps/all_date_patch_props/datetime.xml
7.3.2 暫定App適用パターン
前提
- Splunk single構成(非IDX-Cluster)
- すぐにSplunkのVERUPができない。適用台数が多いのでdatetime.xmlの手動置き換えは間に合わない方向け
手順
- Appのダウンロードとsplunkへ配置
- apps_date_patch_props_v2.zipをダウンロードし、SplunkにAppをインストール
- CLIでアクセスして、以下フォルダ(all_date_patch_props)のみapps配下に移動
# mv /opt/splunk/etc/apps/apps_date_patch_props/all_date_patch_props ../
# rm -fR apps_date_patch_props/
(↑のフォルダ配下は使わないので削除)
※deploymentサーバで配布する場合は、all_date_patch_propsのコピー先を/opt/splunk/etc/deployment-apps配下にも行い、Forwarder管理画面から配布する。
- Splunk再起動
# /opt/splunk/bin/splunk restart
テスト確認
- sampleデータ用意
date,message
19-12-31 23:58:44,Test Message - datetime.xml testing - override - puppet managed forced restart
20-01-02 23:58:54,Test Message - datetime.xml testing - override - puppet managed forced restart
- 未来のデータも取り込めるようにするため一時的にMAX_DAYS_HENCE設定
# vi $SPLUNK_HOME/etc/system/local/props.conf
[default]
MAX_DAYS_HENCE = 40
# splunk restart
- sampleデータ取込
# /opt/splunk/bin/splunk add oneshot -source test_file.csv -sourcetype csv -index main
# vi $SPLUNK_HOME/etc/system/local/props.conf
#[default]
#MAX_DAYS_HENCE = 40
# splunk restart