メインコンテンツまでスキップ
Sumo Logic Japanese

スクリプト アクション

スクリプト アクションは、Scheduled Search の結果を Installed Collector がマシン上で実行するスクリプトまたはプログラムに渡します。結果は一時的に以下の場所にあるファイルシステムに JSON 形式で保存されます。

<sumologic_collector_installation_path>/<collector_id>-
<MM>-<dd>-<HH>-<mm>-<ss>-<sequence_id>

この完全修飾パスは、スクリプト アクションの最初のパラメータとして、スクリプトまたはプログラムへ渡されます。STDOUT へ出力されるすべての結果は、収集され、検索可能になります。

script_action_flow_diagram_white.png

ステップ 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 を使用したスクリプト アクションのセットアップ

  1. Sumo Logic で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
  2. スクリプト アクションを追加する Installed Collector の名前を見つけて、[Add (追加)] > [Add Script Action (スクリプト アクションの追加)] を選択します。
  3. Name (名前): スクリプト アクションに表示する名前を入力します。
  4. Description (説明): 省略可能。
  5. コマンドのタイムアウトを指定します。必要に応じて、スクリプト実行のタイムアウトを設定できます。タイムアウトを設定すると、スクリプトが確実に中止されるので、リソース不足になりません。タイムアウトを設定する場合、余裕をもった時間を選択して、実行を完了するための十分な時間をスクリプトに指定します。
  6. Command (コマンド): 使用するコマンドのタイプを選択します。
    script-action-commands.png
  7. Script (スクリプト): スクリプトへのパスを入力します。スクリプトの内容を入力しないでください。(Collector がスクリプトを実行する場合、スクリプト アクションをトリガする検索結果を含むファイルへのフル パスを、最初のパラメータとして渡します)。
  8. Working Directory (作業ディレクトリ): スクリプト アクションを Collector のインストール ディレクトリ以外のディレクトリで実行する場合は、そのディレクトリを指定します。
  9. [Save (保存)] をクリックします。

オプション B: JSON ファイルのスクリプト アクションのセットアップ

JSON ファイルのスクリプト アクションを定義するには、以下のオプションを定義します。

  • name. アクションの名前。
  • automaticDateParsingfalse に設定します。
  • 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 を実行すると、出力ファイルの生成が開始されます。

  1. 検索を保存します。 
  2. [Schedule this Search (この検索をスケジュールする)] をクリックします。 
  3. 設定オプションのすべてについては、「検索のスケジュール」を参照してください。 
  4. Alert Type (アラート タイプ)[Script Action (スクリプト アクション)] を選択します。
  5. Script Action (スクリプト アクション): メニューからスクリプト アクション名 (その Collector 名とともに表示されます) を選択します。
  6. [Save (保存)] をクリックします。

この例では、スクリプトのセットアップおよびスクリプト アクションの設定方法を示します。

  1. シェル スクリプト countNumberOfWarnings.sh を以下の内容で作成します。

    #!/bin/bash
    num=`grep -oi  "WARN" "$1" | wc -l`
    echo "The number of \"WARN\" in the scheduled search result is $num"​

    このスクリプトは、Scheduled Search の出力ファイルを読み取って、キーワード "WARN" の出現回数をカウントして、結果の数値を出力します。たとえば、キーワード "WARN" が Scheduled Search 結果内に 10 件あれば、スクリプトの出力は以下のようになります。

    The number of "WARN" in the scheduled search result is 10.

  2. 以下を実行して、シェル スクリプトを実行可能ファイルにします。

    chmod +x countNumberOfWarnings.sh

  3. [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
  4. スクリプト アクションを追加する Installed Collector の名前を見つけて、[Add (追加)] > [Add Script Action (スクリプト アクションの追加)] を選択します。
  5. 上記ステップ 3 と同様にスクリプト アクションを設定します。
  6. 検索を定義して、[Save As (名前を付けて保存)] をクリックします。 
  7. [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 に関する以下の情報が記載されます。

Alert_Source_Sumo_MIB_no_total.png

  1. Scheduled Search の終了時間 (Unix タイムスタンプ)。
  2. Scheduled Search の開始時間。
  3. 検索を実行したユーザ アカウント。
  4. Scheduled Search の名前 (検索の保存時の名前、変更可能)。
  5. Scheduled Search のクエリ。
  6. 検索の URL。
  7. 検索セッションの一意の識別子。
  • この記事は役に立ちましたか?