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

スクリプト Source

システム パフォーマンス メトリクス、データベース レコード、サードパーティのモニタリング ソリューションのデータ出力などのログ ファイルに格納されないデータを収集する場合、スクリプトを実行するスクリプト Source を使用して、ご使用のマシンの標準出力およびエラー ストリームのデータのカスタム Source にアクセスできます。スクリプトは定義した間隔で実行され、データは Sumo に送信され、分析されます。これにより、iostat などのコマンド ライン ツールからのデータ、一時的または変更が多いデータ ソースからのデータなど、対応 OS からのすべての種類のデータを収集できます。

Collector は、Collector プロセスを実行するユーザとして、スクリプトを実行します。スクリプトは、収集データをマシンの stdout または stderror 出力ストリームにデータを出力する必要があります。

スクリプト Source が設定されると、Source に関連付けられた Collector が動作するマシンへのアクセス権が、Collector 管理ロールのあるすべての Sumo ユーザに付与されます。

スクリプの準備

スクリプト Source からの収集の動作は、スクリプトが適切に作成されているかどうかに影響されます。スクリプトを使用してデータを収集する場合、以下の点に注意してください。

  • スクリプトはホスト コンピューターで実行する必要があります。リモート スクリプトではデータ収集はできません。スクリプト Source は、スクリプトが実行されるホストで Collector は動作していると見なします。ただし、スクリプトはリモート ホストに接続して、関連情報を収集できます。
  • サポートされるスクリプト タイプ:
    • .bat (Windows のみ)
    • Visual Basic (Windows のみ)
    • PowerShell (Windows のみ)
    • Ruby
    • Python
    • Perl
    • csh
    • bash
  • これらのスクリプトでは、ワイルドカードはサポートされません。

スクリプト Source の設定

スクリプト Source を設定するには:

  1. デフォルトでは、Collector で使用されているバージョンが 19.245-4 以降の場合は、スクリプト Source の実行が許可されません。スクリプト Source を許可するには、user.properties 内の Collector のパラメータ enableScriptSource を true に設定する必要があります。
  2. Sumo で [Manage Data (データの管理)] > [Collection (コレクション)] > [Collection (コレクション)] を選択します。
  3. Source を追加する Installed Collector の名前を見つけます。[Add... (追加...)] をクリックして、ポップアップ メニューから [Add Source (Source の追加)] を選択します。
  4. [Script (スクリプト)] を Source タイプとして選択します。
  5. 新しい Source に表示する名前を入力します。必要に応じて説明を入力します。Source 名メタデータは _sourceName という検索可能なフィールドに格納されます。
  6. [Source Host (Source ホスト)] にマシンのホスト名または IP アドレスを入力します。ホスト名は _sourceHost という検索可能なフィールドに格納されます。ホスト名は最大 128 文字です。
    [Source Host (Source ホスト)] の値は、システム環境変数を使用して定義できます。下記の「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
  7. [Source Category] にメタデータに追加する情報を入力します。この [Source Category] の値は、_sourceCategory という検索可能メタデータ フィールドに保存されています。「ベスト プラクティス: 良い Source Category、悪い Source Category」を参照してください。
    [Source Category] の値は、システム環境変数を使用して定義できます。下記の「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
  8. Fields (フィールド): [+Add Field (+ フィールドの追加)] リンクをクリックすると、カスタム ログ メタデータ フィールドが追加されます。
    • 関連付けるフィールドを定義します。各フィールドには、名前 (キー) と値が必要です。 
      • green check circle.png [Fields (フィールド)] テーブル スキーマにフィールドが存在し、有効化されている場合は、チェック マークを含む緑色の円が表示されます。
      • orange exclamation point.png [Fields (フィールド)] テーブル スキーマにフィールドが存在しない場合、またはフィールドが無効化されている場合は、感嘆符を含む橙色の三角形が表示されます。この場合は、存在しないフィールドを [Fields (フィールド)] テーブル スキーマに自動的に追加する、または有効化するオプションが表示されます。[Fields (フィールド)] スキーマに存在しないフィールドが Sumo に送信された場合、または無効化された場合、このフィールドは無視され、削除済みとして認識されます。
  9. [Frequency (頻度)] には、以下のいずれかを選択します。

    CRON 式を使用すると、毎日午後 2 時 15 分、平日の午前 0 時など、スクリプトを実行する詳細な時間を指定できます。(詳細については、サポートされている CRON の例を参照してください)。

    • 選択した頻度でスクリプトを実行するオプション。
    • [Other (CRON Expression) (その他 (CRON 式))]: CRON 式を使用してカスタマイズした頻度を設定する場合は、[Expression (式)] テキスト ボックスに CRON 式を入力します。
  10. スクリプトにタイムアウトを設定する場合は、[Specify a timeout for your command (コマンドのタイムアウトを指定)] をオンにします。タイムアウトが必要ないか、スクリプトを毎日 1 回実行する場合は、このオプションをオフのままにすることをお勧めします。 
  11. [Command (コマンド)] には、使用するカスタム コマンドを選択するか、入力します。
    • カスタムコマンドを指定するには、Delete キーまたは Backspace キーを使用して選択を消去し、コマンドを入力します。コマンドは /path/to/command;file extension の形式にする必要があります。
      パスと拡張子をセミコロン (;) で区切って指定します。たとえば、Python コマンドは次のようになります。 
      /bin/python;py
    • コマンドを選択する場合、表示されるオプションは使用しているオペレーティング システムによって異なります。
      • Mac/Linux のオプション
        script source cmd options.png
      • Windows のオプション
        script source win cmds.png
  12. [Script (スクリプト)] では、以下のいずれかを実行します。
    • スクリプトをファイルの場所に保存している場合は、[Type a path to the script to execute (実行するスクリプトへのパスを入力)] をオンにします。例:
      スクリプト パス
    • またはSumo  Web アプリケーションに直接スクリプトを入力する場合は、[Type the script to execute (実行するスクリプトを入力する)] をオンにします。次に、テキスト ボックスにスクリプトを入力します。
  13. [Working Directory (作業ディレクトリ)] に、スクリプトがファイルを間接的に参照する場合は、パスを入力する必要があります。このため、必要な場合は収集するファイルのパスを入力します。不要な場合は空白にします。
  14. [Advanced (詳細)] にタイムスタンプとタイム ゾーンに関するオプションが表示されます。
    • Timestamp Parsing (タイムスタンプ parse): デフォルトでは、[Extract timestamp information from log file entries (ログ ファイル エントリからタイムスタンプ情報を抽出する)] がオンになっています。つまり、Sumo Logic では収集データのタイムスタンプ情報が使用されます。このオプションをオフにすると、すべてのタイムスタンプ parse がオフになります。
    • Time Zone (タイム ゾーン): [Use time zone from log file, but if none present use (ログ ファイルのタイム ゾーンを使用し、存在しない場合は次を使用する)] オプションを選択します。収集データのタイム ゾーンをすべて上書きする場合は、[Ignore time zone and instead use (タイム ゾーンを無視して、次を使用する)] オプションをオンにします。
  15. 複数行処理を有効にします。複数行処理とそのオプションについては、「複数行のログの収集」を参照してください。
  16. 収集するデータを絞り込むには、[Processing Rules (処理ルール)] オプションを設定します。詳細については、「処理ルールの作成」を参照してください。
  17. [Save (保存)] をクリックして、Source のセットアップを完了します。

変数を使用した sourceCategory と sourceHost の設定

Collector バージョン 19.216-22 以降では、Source Category と Source ホストのメタデータ値を、ホスト マシンで設定するシステム環境変数で定義できます。

Source を設定するときは、次のようにシステム環境変数の先頭に sys. を付けて、変数全体を二重の中括弧 {{}} で囲みます。

{{sys.VAR_NAME}}

VAR_NAME は環境変数名です。例:

{{sys.PATH}}

以下のように、複数の変数を使用できます。

{{sys.PATH}}-{{sys.YourEnvVar}}

environment variable usage.png

以下のように、メタデータ形式でテキストを結合できます。

AnyTextYouWant_{{sys.PATH}}_{{sys.YourEnvVar}}

ユーザ定義変数がない場合は、メタデータ フィールドの該当部分は空白です。

スクリプトにタイムアウトを設定する必要がある場合

タイムアウトには、スクリプトが完了する余裕をもった期間を指定します。そうでない場合は、次回のスクリプトが実行されるときに、スクリプトがまだ実行中だと、Collector はそのスクリプトを再実行せずに中止します。完了する必要のある長いスクリプトを実行する場合、タイムアウトを設定すると、次にスケジュールされている実行がキャンセルされます (タイムアウト期間に含まれる後続の実行もすべてキャンセルされます)。ただし、タイムアウト後にそのスクリプトの実行が完了していない場合、Collector はこれを中止します。

  • この記事は役に立ちましたか?