Splunkからのグッドニュースです。同じフィールド内の異なる値をサーチするのが簡単になりました。
仮に「error_code」というフィールドがあり、その中でコード400、402、404、406だけを見つけるとしましょう。
同じフィールド内の値のリストをサーチするのに、フィールドと値のペアを何度も入力しなければならないのは、本当に面倒です。しかし、Splunkのバージョン6.6.0より前では、別々のOR条件としてフィールドと値のペアを1つ1つ指定しなければなりませんでした。
...error_code=400 OR error_code=402 OR error_code=404 OR error_code=406...
searchコマンドには大きな改善がいくつか加えられましたが、そのうちの1つがIN演算子です。 IN演算子を使用すれば、フィールドに対して値のリストを指定できます。次の例をご覧ください。
... error_code IN (400, 402, 404, 406) | ...
サーチ文字列の最初でsearchコマンドが暗示されているため、指定する必要があるのはフィールド名と値のリストのみです。構文は以下のようにシンプルです。
field IN (value1, value2, ...)
注意:IN演算子は大文字で記述する必要があります。
ワイルドカードを値のリストで使用して、似ている値をサーチすることもできます。次の例をご覧ください。
... error_code IN (40*) | ...
このサーチは、イベント内のerror_codeフィールドを調べて、40で始まるコードを持つすべてのイベントを返します。
便利ですね!
searchコマンドでは、この機能は「IN演算子」と呼ばれます。一方、evalコマンドとwhereコマンドでは「IN関数」として実装されます。
evalコマンドとwhereコマンドでINを使用するには、INをeval関数として使用する必要があります。Splunkのドキュメントでは、「IN関数」と呼ばれています。
また、searchコマンドの場合とは、構文と使い方が若干異なります。
サポートされている構文オプションは以下のとおりです。
...| eval new_field=if(IN(field,"value1","value2", ...), "value_if_true","value_if_false")
...| where field IN("value1","value2", ...)
...| where IN(field,"value1","value2", ...)
注意:IN関数は、IN演算子とは異なり、大文字と小文字のどちらでも指定できます。このブログの構文と例では、IN関数をわかりやすく大文字で書いています。
では、比較的単純なwhereコマンドから説明しましょう。
次の例では、whereコマンドを使用して、statusフィールドのいずれかの値がリスト内のいずれかの値と一致した場合にIN=TRUEが返されるようにしています。statusフィールドの値はHTTPステータスコードです。このコードは数値ではなく文字列値であるため、各値を引用符で囲む必要があります。
... | where status IN("400", "401", "403", "404", "406")
この例は、次のようにも記述できます。
... | where IN(status,"400", "401", "403", "404", "406")
evalコマンドでのIN関数の使い方は、whereコマンドでの使い方とは異なります。evalコマンドはブール値を受け取れないため、IN関数によって戻されるブール値を処理できる別の関数の中でIN関数を使用する必要があります。
IF関数の最初のパラメーターとしてIN関数を使用する例を見てみましょう。 サーチチュートリアルのデータに含まれているaccess.logファイルを使用します。
次の例では、IN関数をIF関数と一緒に使用してactionフィールドを評価し、続いてstatsコマンドを使用して計算を実行しています。
sourcetype=access_combined_wcookie
| eval activity=if(IN(action, "addtocart","purchase"),"Purchase Related","Other")
| stats count by activity
このサーチでは次のことを行っています。
結果は[Statistics (統計)]タブに表示され、Purchase Relatedアクティビティが発生したイベントの数と、Otherに分類されるアクティビティが発生したイベントの数がわかります。
結果テーブルができました。これをグラフで表示することもできます。[Visualization (可視化)]タブに切り替えて、グラフの種類を[Pie Chart (円グラフ)]に変更してみましょう。
このサーチをダッシュボードパネルやレポートとして保存することもできます。
詳細については、以下のSplunkのドキュメントをご覧ください。
このブログはこちらの英語ブログの翻訳、庄司 大助によるレビューです。
Splunkプラットフォームは、データを行動へとつなげる際に立ちはだかる障壁を取り除いて、オブザーバビリティチーム、IT運用チーム、セキュリティチームの能力を引き出し、組織のセキュリティ、レジリエンス(回復力)、イノベーションを強化します。
Splunkは、2003年に設立され、世界の21の地域で事業を展開し、7,500人以上の従業員が働くグローバル企業です。取得した特許数は1,020を超え、あらゆる環境間でデータを共有できるオープンで拡張性の高いプラットフォームを提供しています。Splunkプラットフォームを使用すれば、組織内のすべてのサービス間通信やビジネスプロセスをエンドツーエンドで可視化し、コンテキストに基づいて状況を把握できます。Splunkなら、強力なデータ基盤の構築が可能です。