すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:スクリプト実行ログの収集

最終更新日:Aug 21, 2024

このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成してスクリプト実行ログを収集する方法について説明します。

前提条件

Logtail V1.7.1以降がLinuxサーバーにインストールされます。 詳細については、「LinuxサーバーへのLogtailのインストール」をご参照ください。

説明

Logtail構成でユーザーとスクリプトを指定できます。 Logtailはユーザーとしてスクリプトを実行し、スクリプト実行ログを取得します。

  • bash、shell、python2、python3のいずれかのタイプのスクリプトを指定できます。

  • スクリプトを実行するユーザーを指定できます。 これにより、スクリプトによってアクセスできるリソースに対するユーザーベースのアクセス制御を実現できます。

  • スクリプトの実行がタイムアウトすると、Logtailは自動的にスクリプトの実行を停止します。 Logtailはスクリプト実行ログを収集しません。

手順

  1. にログインします。Simple Log Serviceコンソール.

  2. [データのインポート] セクションで、[カスタムデータプラグイン] を選択します。

  3. プロジェクトとLogstoreを選択します。 [次へ] をクリックします。

  4. マシングループを作成します。

    • マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。

    • 使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。

      1. [ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。

        詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。

        重要

        お使いのサーバーが、Simple Log Serviceとは異なるAlibaba Cloudアカウントに属するECSインスタンス、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーの場合、サーバーにLogtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。 Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。

      2. Logtailをインストールしたら、[インストールの完了] をクリックします。

      3. [マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。

        Simple Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. [ソースサーバーグループ] からマシングループを選択し、マシングループを [応用サーバーグループ] に移動します。 次に、[次へ] をクリックします。

    重要

    マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、ホスト環境のLogtailマシングループに関連するエラーのトラブルシューティングを行うにはどうすればよいですか?

  6. [データソースの指定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 [次へ] をクリックします。

    • 入力は必須であり、Logtail構成のデータ収集設定を構成するために使用されます。 データソースに基づいて入力を設定する必要があります。

      重要

      [入力] フィールドでは、1種類のデータソースのみを設定できます。

    • processorsはオプションで、Logtail構成のデータ処理設定を構成するために使用されます。 1つ以上の処理方法を指定できます。

      [input] の設定のみに基づいてログを解析できない場合は、[Plug-in Config] フィールドのプロセッサを設定して、データ処理用のプラグインを追加できます。 たとえば、フィールドの抽出、ログ時間の抽出、データのマスク、ログのフィルタリングができます。 詳細については、「概要」をご参照ください。

    {
        "inputs":[
            {
                "type":"input_command",
                "detail":{
                    "ScriptType":"python2",
                    "User":"test",
                    "ScriptContent":"print(\"test input_command 0\")\nprint(\"test input_command 1\")\nprint(\"test input_command 2\")\nprint(\"test input_command 3\")\nprint(\"test input_command 4\")\nprint(\"test input_command 5\")\nprint(\"test input_command 6\")\nprint(\"test input_command 7\")\nprint(\"test input_command 8\")\nprint(\"test input_command 9\")\n",
                    "ContentEncoding":"PlainText",
                    "CmdPath":"/usr/bin/python",
                    "TimeoutMilliSeconds":1000,
                    "IgnoreError":false,
                    "Environments":[
                        "DEBUG=true"
                    ],
                    "IntervalMs":5000
                }
            }
        ]
    }

    パラメーター

    データ型

    必須

    説明

    タイプ

    String

    課金されます

    データソースのタイプ。 値をinput_commandに設定します。

    ScriptType

    String

    課金されます

    スクリプトのタイプ。 有効な値: bash、shell、python2、python3。

    ユーザー

    String

    課金されます

    スクリプトの実行に使用されるユーザーの名前。 非rootユーザーのみがサポートされています。

    説明
    • 指定したユーザー名がサーバー上に存在するか確認してください。

    • 必要なディレクトリまたはファイルに対するrwx権限のみをユーザーに付与することをお勧めします。

    ScriptContent

    String

    課金されます

    スクリプトの内容。 コンテンツはBase64-encodedまたはプレーンテキストにすることができます。 コンテンツの長さは524,288バイト以内である必要があります。

    ContentEncoding

    String

    課金されません

    スクリプトコンテンツのテキスト形式。 このパラメーターはオプションです。 有効な値:

    • PlainText (デフォルト)

    • Base64

    LineSplitSep

    String

    課金されません

    スクリプトの出力を区切るために使用される区切り文字。 このパラメーターを空のままにすると、スクリプトの出力が単一のデータレコードとして返されます。

    CmdPath

    String

    課金されません

    スクリプトへのパス。 このパラメーターを空のままにすると、デフォルトのパスが使用されます。 デフォルトパス:

    • bash: /usr/bin/bash

    • シェル: /usr/bin/sh

    • python2: /usr/bin/python2

    • python3: /usr/bin/python3

    TimeoutMilliSeconds

    String

    課金されません

    スクリプト実行のタイムアウト時間。 既定値:3000。 単位:ミリ秒。

    IgnoreError

    Bool

    課金されません

    Logtailがスクリプトの実行に失敗したときに生成されるエラーログを無視するかどうかを指定します。 デフォルト値:false 値falseは、エラーログが無視されないことを示します。

    環境

    [] 文字列

    課金されません

    環境変数。 デフォルトでは、os.Environ() の値が使用されます。 このパラメーターを設定すると、このパラメーターの値がos.Environ() の値とともに使用されます。

    IntervalMs

    int

    課金されます

    ログの収集またはスクリプトの実行間隔。 デフォルト値: 5000。 単位:ミリ秒。

  7. データをプレビューし、インデックスを設定し、[次へ] をクリックします。

    デフォルトでは、Simple Log Serviceでフルテキストインデックスが有効になっています。 収集したログに基づいて、手動モードまたは自動モードでフィールドインデックスを設定できます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 Simple Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。

    重要

    ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。

  8. [ログクエリ] をクリックします。 次に、Logstoreのクエリと分析ページにリダイレクトされます。

    インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。

python2スクリプトを使用してシステム時刻を取得します。

  • Logtail の設定

    {
        "inputs":[
            {
                "type":"input_command",
                "detail":{
                    "ScriptType":"python2",
                    "User":"test",
                    "ScriptContent":"print(\"test input_command 0\")\nprint(\"test input_command 1\")\nprint(\"test input_command 2\")\nprint(\"test input_command 3\")\nprint(\"test input_command 4\")\nprint(\"test input_command 5\")\nprint(\"test input_command 6\")\nprint(\"test input_command 7\")\nprint(\"test input_command 8\")\nprint(\"test input_command 9\")\n",
                    "ContentEncoding":"PlainText",
                    "CmdPath":"/usr/bin/python",
                    "TimeoutMilliSeconds":1000,
                    "IgnoreError":false,
                    "Environments":[
                        "DEBUG=true"
                    ],
                    "IntervalMs":5000
                }
            }
        ]
    }
  • 収集されたログ

    content:"Mon Aug  7 02:17:52 UTC 2023"
    script_md5:"a9564ebc3289b7a14551baf8ad5ec60a"
    __pack_meta__:"1|MTY4OTI1MzExNTU2NTE2MzQ1NA==|2|1"
    __topic__:""
    __source__:"172.17.0.2"
    __tag__:__pack_id__:"D7B7F988051A3019-0"
    __tag__:__hostname__:"bc6c7472f257"
    __tag__:__client_ip__:"8.218.101.91"
    __tag__:__receive_time__:"1691374673"
    __time__:"1691374672"
  • フィールドの説明

    項目

    説明

    content

    収集されるスクリプト実行ログ。

    script_md5

    スクリプトコンテンツのMD5ハッシュ値。

トラブルシューティング

Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?