スクリプト アクション
スクリプト アクションは、Scheduled Search の結果を Installed Collector がマシン上で実行するスクリプトまたはプログラムに渡します。結果は一時的に以下の場所にあるファイルシステムに JSON 形式で保存されます。
<sumologic_collector_installation_path>/<collector_id>-
<MM>-<dd>-<HH>-<mm>-<ss>-<sequence_id>
この完全修飾パスは、スクリプト アクションの最初のパラメータとして、スクリプトまたはプログラムへ渡されます。STDOUT へ出力されるすべての結果は、収集され、検索可能になります。
ステップ 1.Collector でのスクリプト アクションの有効化
デフォルトでは、Collector で使用されているバージョンが 19.245-4 以降の場合は、スクリプト アクションの実行が許可されません。スクリプト アクションを許可するには、user.properties 内の Collector のパラメータ enableActionSource
を true に設定する必要があります。
ステップ 2.スクリプトの作成
スクリプトを作成して、スクリプト アクションをセットアップする、Collector がインストールされているホスト上のフォルダに保存します。次に、以下を実行してシェル スクリプトを実行可能ファイルに設定します。
chmod +x <nameOfFile>.sh
以下の例を参照してください。
ステップ 3.スクリプト アクションのセットアップ
以下のオプション A で説明する方法で、Sumo Web アプリケーションを使用して、スクリプト アクションをセットアップするか、オプション B の JSON ファイルで指定する方法を使用します。
オプション A: UI を使用したスクリプト アクションのセットアップ
- Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
- スクリプト アクションを追加する Installed Collector の名前を見つけて、[Add (追加)] > [Add Script Action (スクリプト アクションの追加)] を選択します。
- Name (名前): スクリプト アクションに表示する名前を入力します。
- Description (説明): 省略可能。
- コマンドのタイムアウトを指定します。必要に応じて、スクリプト実行のタイムアウトを設定できます。タイムアウトを設定すると、スクリプトが確実に中止されるので、リソース不足になりません。タイムアウトを設定する場合、余裕をもった時間を選択して、実行を完了するための十分な時間をスクリプトに指定します。
- Command (コマンド): 使用するコマンドのタイプを選択します。
- Script (スクリプト): スクリプトへのパスを入力します。スクリプトの内容を入力しないでください。(Collector がスクリプトを実行する場合、スクリプト アクションをトリガする検索結果を含むファイルへのフル パスを、最初のパラメータとして渡します)。
- Working Directory (作業ディレクトリ): スクリプト アクションを Collector のインストール ディレクトリ以外のディレクトリで実行する場合は、そのディレクトリを指定します。
- [Save (保存)] をクリックします。
オプション B: JSON ファイルのスクリプト アクションのセットアップ
JSON ファイルのスクリプト アクションを定義するには、以下のオプションを定義します。
name.
アクションの名前。automaticDateParsing
。false
に設定します。commands.
コマンドのタイプ。コマンド タイプの例については、前のセクションを参照してください。file.
スクリプトへのパス。workingDir.
スクリプトを実行するディレクトリ。timeout.
スクリプト実行のタイムアウト (ミリ秒)。sourceType.
"Alert (アラート)" に設定します。
JSON ファイルの例:
{
"api.version":"v1",
"source":{
"name":"testIngScriptAction",
"automaticDateParsing":false,
"commands":["/bin/bash"],
"file":"/var/tmp/testIngScriptAction.sh",
"workingDir":"/var/tmp",
"timeout":180000,
"sourceType":"Alert"
}}
JSON ファイルでの Source の設定については、「JSON を使用した Source の設定」を参照してください。
ステップ 4.Scheduled Search のセットアップ
Collector にスクリプト アクションを追加したら、Scheduled Search を作成できます。検索名とクエリは出力ファイル内に表示されます。
はじめて Scheduled Search を実行すると、出力ファイルの生成が開始されます。
- 検索を保存します。
- [Schedule this Search (この検索をスケジュールする)] をクリックします。
- 設定オプションのすべてについては、「検索のスケジュール」を参照してください。
- Alert Type (アラート タイプ)。[Script Action (スクリプト アクション)] を選択します。
- Script Action (スクリプト アクション): メニューからスクリプト アクション名 (その Collector 名とともに表示されます) を選択します。
- [Save (保存)] をクリックします。
例
この例では、スクリプトのセットアップおよびスクリプト アクションの設定方法を示します。
- シェル スクリプト
countNumberOfWarnings.sh
を以下の内容で作成します。
このスクリプトは、Scheduled Search の出力ファイルを読み取って、キーワード "WARN" の出現回数をカウントして、結果の数値を出力します。たとえば、キーワード "WARN" が Scheduled Search 結果内に 10 件あれば、スクリプトの出力は以下のようになります。#!/bin/bash
num=`grep -oi "WARN" "$1" | wc -l`
echo "The number of \"WARN\" in the scheduled search result is $num"The number of "WARN" in the scheduled search result is 10.
- 以下を実行して、シェル スクリプトを実行可能ファイルにします。
chmod +x countNumberOfWarnings.sh
- [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
- スクリプト アクションを追加する Installed Collector の名前を見つけて、[Add (追加)] > [Add Script Action (スクリプト アクションの追加)] を選択します。
- 上記ステップ 3 と同様にスクリプト アクションを設定します。
- 検索を定義して、[Save As (名前を付けて保存)] をクリックします。
- [Schedule this Search (この検索をスケジュールする)] をクリックして、検索設定を完了します。[Alert Type (アラート タイプ)] に "Script Action (スクリプト アクション)" を選択し、作成したスクリプトを選択します。[Save (保存)] をクリックします。
Collector は、インストールディレクトリに alerts
ディレクトリを作成して、以下の例に示す検索結果を格納します。
Collector が Scheduled Search の結果を取得すると、スクリプトを実行します。スクリプトの出力は、スクリプト アクションによって収集されます。クエリを実行して結果を取得できます。
この例では、Collector は以下のシステム コマンドを実行します。
/bin/sh /Users/yluo/Development/sumo/collector/countNumberOfWarnings.sh /Users/yluo/Development/sumo/collector/alerts/000000000ABA1879-02-19-12-08-19-5.txt
where
/Users/yluo/Development/sumo/collector/countNumberOfWarnings.sh
はデータ処理のために定義済みのシェル スクリプトです。
/Users/yluo/Development/sumo/collector/alerts/000000000ABA1879-02-19-12-08-19-5.txt
は、Scheduled Search の出力ファイルです。
以下のクエリを実行します。
_source=ScriptAction_Shell_Script
where
ScriptAction_Shell_Script
は、スクリプト アクションの名前です。これにより、スクリプトの出力が表示されます。
検索結果ファイルについて
Sumo Logic ファイルは、JSON 形式で記述された Scheduled Search の結果です。これには、Scheduled Search の結果と検索の時間範囲に関する情報が含まれています。ファイルは Collector のインストール ディレクトリに格納されます。3 時間ごとにファイルは削除されます。
このファイルには、最大で 5MB または 1,000 件のメッセージが格納されますが、リアルタイムの集計以外のクエリでは、最大 100 件のメッセージになります。検索結果の各メッセージは、Collector のメタデータとタイムスタンプでマークされています。各ファイルの終わりには、Scheduled Search に関する以下の情報が記載されます。
- Scheduled Search の終了時間 (Unix タイムスタンプ)。
- Scheduled Search の開始時間。
- 検索を実行したユーザ アカウント。
- Scheduled Search の名前 (検索の保存時の名前、変更可能)。
- Scheduled Search のクエリ。
- 検索の URL。
- 検索セッションの一意の識別子。