Splunk技術ブログ 第1弾~テクニカルサポート事例 イベント欠損編~

はじめに

こんにちは、マクニカSplunkサポート担当です。
突然ですが、Splunkを利用される皆さまはメンテナンスやトラブルシューティングにどのように対応されていますでしょうか?
Splunkに関する技術情報は、Splunk社の公開情報をはじめとして、Webで複数ヒットします。ただし、何か問題に直面した際にこれらの情報をどう使えばいいのかわからない、というお悩みを抱える方もいらっしゃるかもしれません。私たちサポート担当は日々、そのようなお客様に対して問題解決のご協力をさせていただいております。
本記事ではSplunkのイベント欠損を例にどのような対処をおこなうかについてご紹介します。

発生事象:イベント欠損

お客様環境に複数あるインデクサーの1台でダウンが発生し、その期間中に一部のデータがイベントとして取り込まれない事象が発生。

お客様のご要望

  • 欠損したイベントをインデクサーに取り込みたい
  • 再発させない方法を知りたい

お問い合わせ事項

お客様からは以下のお問い合わせいただきました。

  1. 欠損したイベントのSplunk(インデクサー)への取り込み方法
  2. フォワーダーは負荷分散設定をしているが、インデクサーで障害が起きるとイベントが取り込まれない事象が発生してしまうのか
  3. 対策として何を実施すればよいか

解決までの流れ

①欠損したイベントのSplunk(インデクサー)への取り込み方法

以下の手順をご案内しました。

1.add oneshotコマンドで元データ(ログファイル)の再取り込み

イベントが欠損した場合、データの再取り込みを行います。ただし、add oneshotはファイル単位で取り込みを行うため、イベントの重複が発生します。

2.重複しているデータを検索

 そこで重複しているデータを以下のようなSPLで検索します。

 (コマンド例)

  index="AAAA"(重複イベントが含まれるインデックス)
  | eval cd=_cd
  | search [search source="AAAA" (重複イベントが含まれるデータソース)
  | stats count last(_cd) AS cd by _raw
  | search count > 1
  | fields cd ]

3.deleteコマンドで重複データを排除

上記で出力されるイベントが削除対象であることを確認したのち、上記のコマンド例の最後にdeleteコマンドを付加し実行することで。重複データを削除します。

※deleteコマンドは、対象のイベントに削除フラグを立て、検索ができなくようにするものです。データ自体が削除されるわけではないためディスク容量を開ける目的での利用はできません。

②フォワーダーは負荷分散設定をしているが、インデクサーで障害が起きるとイベントが取り込まれない事象が発生してしまうのか

通常、負荷分散設定をしている場合はフォワーダーが設定に従い、転送先となるインデクサーを切り替えます。また、インデクサーがダウンすると、以下図のように、インデクサーAからインデクサーBへ転送先を変更します。一見すると、お客様の考えるようにイベントの欠損が発生しないように見えます。

通常

しかしながら、次のようなケースでは、イベントの欠損が発生することがあります。

 

Case1.フォワーダーがデータを送った後にNWの経路上でデータが欠落する。

Case2.フォワーダーがデータを送った後にインデクサーがダウンし、データが受け取られない。

Case3.インデクサーがダウンし、受け取ったデータをイベントに取り込めない

Case1

Case2

Case3

③対策として何を実施すればよいか

調査の結果、お客様環境ではインデクサーがダウンしたことで、Case2,3を要因としてイベントの欠損が起きていました。今後イベント欠損を防ぐには、以下のような対策が可能です。

・Indexer Acknowledgement機能の利用

Case2,3に対しては、Indexer Acknowledgement機能が対策としてあげられます(Case1へも同様に有効です)。フォワーダーから転送したデータがインデクサーのディスクに書き込まれるとACKがフォワーダーに返されるようになるため、転送データの欠落を防ぐことができます。ただし、この機能を有効化することでデータ取り込みの遅延や、ネットワーク障害によりインデクサーからACKが返されないことでフォワーダーからデータが再送されイベント重複が発生する可能性はあります。

また、今回はアンチウイルスがインデクサーのダウンを引き起こしておりました。

・アンチウイルスのスキャン除外設定

Splunkのプロセスやインストールディレクトリはアンチウイルス製品のスキャン対象外とすることが推奨されており、今回のお客様にもその対処を実施いただきました。

結果:

ケースはクローズとなり、これまでのところイベント欠損再発のご連絡はいただいておりません。

おわりに

最後までお読みいただき、ありがとうございました。本記事が少しでもお客様の参考になれば幸いです。

お問い合わせ・資料請求

株式会社マクニカ  Splunk 担当

月~金 8:45~17:30