Splunkは、マシンデータ分析プラットフォーム「Splunk」で1カ月以内に発生する恐れがある不具合について公表し、原因と対策を説明した。パッチを適用するだけで解決できるものの、2020年1月以降にパッチ適用が遅れると誤ったデータを蓄積してしまう。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Splunkは2019年11月27日(現地時間)、ITシステム運用管理のためのマシンデータ分析プラットフォーム「Splunk」で見つかった不具合の原因と対策について発表した。2020年に入ると同時に全製品で発生する恐れがある。特定の日付を過ぎると日付を誤認識して処理を誤るという点では「2000年問題」と同じパターンだといえる。
Splunkによると、今回公開したパッチを適用していないSplunkプラットフォームでは2種類の不具合が発生する。
タイムスタンプを自動的に判別するように入力ソースを構成する一般的な設定を採っていると問題が発生し、次のような複数のトラブルが起きる。蓄積した各種ログデータをクエリに従って分析するというSplunkの魅力が半減してしまう。
問題が発生したら、Splunkプラットフォームによるデータの取り込み後にタイムスタンプを修正する方法はない。
2020年1月1日以降、パッチを適用していないSplunkプラットフォームインスタンスでデータを取り込んだ場合は、そのインスタンスにパッチを適用後、データの再取り込みが必要になる。
Splunkプラットフォームの入力プロセッサは、入力データのタイムスタンプを正確に判別するために、「datetime.xml」ファイルを使う。このファイルは正規表現を使って、入力データから多様なタイプの日付とタイムスタンプを抽出する。
パッチを適用していないSplunkプラットフォームインスタンスは、このファイルによって、2019年12月31日まで、「19」で始まる2桁の年データを抽出する。2020年1月1日からは、入力データの年のタイムスタンプが誤っていると判断してしまう。その結果、誤解釈した日付のタイムスタンプを追加してしまう。
Splunk Cloudの顧客が使用するクラウド上のSplunkプラットフォームは課題が少ない。不具合が自動的に修正されるからだ。なお、アップグレードを実行する際に、Splunkのサポート担当者がSplunk Cloudの顧客にアドバイスを行う。これは重要なアップグレードであるため、顧客が延期することはできない。
Splunkプラットフォームをオンプレミスで使っている顧客は、次の対策のいずれかを実行する必要がある。なお、オンプレミス対応をしなければならない顧客には、Splunk Cloudインスタンスにデータを送信するフォワーダーを使っている場合も含まれる。
datetime.xmlの修正内容を次に示す。4種類のコードのうち、上側が修正すべき部分、下側が対策を取ったコードだ。
この置換結果を見ると、年データの誤認識という問題を恒久的に解決する対策ではないことが分かる。今回の問題を10年間延期するだけだからだ。
なお、2000年問題の対策においても問題が起きる年を後ろにずらす対応は少なくなかった。10年という対応期間があれば、より良い対策を取る余裕も生まれるだろう。
<text><![CDATA[(20\d\d|19\d\d|[901]\d(?!\d))]]></text> <text><![CDATA[(20\d\d|19\d\d|[9012]\d(?!\d))]]></text>
<text><![CDATA[(?:^|source::).*?(?<!\d|\d\.|-)(?:20)?([901]\d)(0\d|1[012])([012]\d|3[01])(?!\d|-| {2,})]]></text> <text><![CDATA[(?:^|source::).*?(?<!\d|\d\.|-)(?:20)?([9012]\d)(0\d|1[012])([012]\d|3[01])(?!\d|-| {2,})]]></text>
<text><![CDATA[(?:^|source::).*?(?<!\d|\d\.)(0\d|1[012])([012]\d|3[01])(?:20)?([901]\d)(?!\d| {2,})]]></text> <text><![CDATA[(?:^|source::).*?(?<!\d|\d\.)(0\d|1[012])([012]\d|3[01])(?:20)?([9012]\d)(?!\d| {2,})]]></text>
<text><![CDATA[((?<=^|[\s#,"=\(\[\|\{])(?:1[012345]|9)\d{8}|^@[\da-fA-F]{16,24})(?:\.?(\d{1,6}))?(?![\d\(])]]></text> <text><![CDATA[((?<=^|[\s#,"=\(\[\|\{])(?:1[0123456]|9)\d{8}|^@[\da-fA-F]{16,24})(?:\.?(\d{1,6}))?(?![\d\(])]]></text>
今回の不具合は、どのOSで動作しているかにかかわらず、パッチを適用していない全タイプのSplunkプラットフォームインスタンスに影響する。
Copyright © ITmedia, Inc. All Rights Reserved.