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

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

最終更新日:Jun 24, 2026

Simple Log Service (SLS) コンソールで Logtail 収集設定を作成し、スクリプト実行ログを収集します。

前提条件

Linux サーバーに Logtail 1.7.1 以降がインストールされていること。詳細については、「LinuxサーバーへのLogtailのインストール」をご参照ください。

機能

Logtail は、設定されたスクリプトを指定されたユーザーとして実行し、スクリプトの標準出力をログとして収集します。

  • サポートされているスクリプトタイプ: bashshellpython2python3

  • スクリプトを実行するユーザーを指定することで、スクリプトがアクセスできるリソースを制限できます。

  • スクリプトがタイムアウトした場合、システムは自動的にスクリプトを停止します。Logtail は、タイムアウトした実行からログを収集しません。

操作手順

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

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

  3. 移行先のプロジェクトと Logstore を選択し、次へ をクリックします。

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

    • 既存のマシングループがある場合は、既存のサーバーグループの使用 をクリックします。

    • マシングループがない場合は、次の手順に従います。この例では ECS インスタンスを使用します。

      1. ECS インスタンス タブで、対象の ECS インスタンスを選択し、作成 をクリックします。

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

        重要

        お使いのサーバーが、異なる Alibaba Cloud アカウントの ECS インスタンス、他のクラウドプロバイダーのサーバー、または自己管理のオンプレミスサーバーである場合は、Logtail を手動でインストールする必要があります。詳細については、「LinuxサーバーへのLogtailのインストール」または「WindowsサーバーへのLogtailのインストール」をご参照ください。Logtail を手動でインストールした後、サーバーでユーザー識別子を設定する必要があります。詳細については、「ユーザー識別子の設定」をご参照ください。

      2. インストールが完了したら、完全なインストール をクリックします。

      3. マシングループの作成 ページで、名前 を入力し、次へ をクリックします。

        SLS は、IP アドレスベースのマシングループとカスタム識別子ベースのマシングループをサポートしています。パラメーターの詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。

  5. 対象のマシングループを選択し、ソースサーバーグループ から 適用されたサーバーグループ に移動して、次へ をクリックします。

    重要

    マシングループを作成した直後に適用した場合、接続がまだ確立されていないため、[ハートビート] ステータスが FAIL になることがあります。その場合は 自動再試行 をクリックしてください。問題が解決しない場合は、「ホスト環境でのLogtailマシングループの問題のトラブルシューティング」をご参照ください。

  6. データソースの設定 タブで、設定名プラグイン設定 を指定し、次へ をクリックします。

    • inputs :必須。データソースの設定です。

      重要

      inputs には、1種類のデータソースのみ設定できます。

    • processors :任意。データ処理の設定です。

      inputs だけではログ解析の要件を満たせない場合は、プラグイン設定 セクションに processors セクションを追加して、データ処理に 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
                }
            }
        ]
    }

    パラメーター

    タイプ

    必須

    説明

    type

    String

    はい

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

    ScriptType

    String

    はい

    スクリプトのタイプ。有効な値: bashshellpython2python3

    User

    String

    はい

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

    説明
    • 指定したユーザーがマシン上に存在することを確認してください。

    • 最小権限の原則に従い、ユーザーには必要なディレクトリとファイルに対する読み取り、書き込み、実行 (rwx) 権限のみを付与してください。

    ScriptContent

    String

    はい

    スクリプトのコンテンツ。コンテンツはプレーンテキストまたは Base64 エンコード形式です。最大サイズは 512 KB です。

    ContentEncoding

    String

    いいえ

    スクリプトコンテンツのエンコーディング形式。有効な値:

    • PlainText (デフォルト) :コンテンツはプレーンテキストであり、エンコードされません。

    • Base64 :コンテンツは Base64でエンコードされます。

    LineSplitSep

    String

    いいえ

    スクリプトの出力を複数のログエントリに分割するための区切り文字。空のままにすると、出力全体が1つのログエントリとして扱われます。

    CmdPath

    String

    いいえ

    スクリプトインタープリターへのパス。空のままにすると、デフォルトのパスが使用されます。

    • bash :/usr/bin/bash

    • shell :/usr/bin/sh

    • python2 :/usr/bin/python2

    • python3 :/usr/bin/python3

    TimeoutMilliSeconds

    Integer

    いいえ

    スクリプト実行のタイムアウト (ミリ秒単位)。デフォルト: 3000

    IgnoreError

    Boolean

    いいえ

    プラグインのエラーログを抑制するかどうか。デフォルト: false (エラーはログに記録されます) 。

    Environments

    []String

    いいえ

    オペレーティングシステムのデフォルトに加えて、スクリプトに渡されるカスタム環境変数。

    IntervalMs

    Integer

    いいえ

    スクリプトを実行し、その出力を収集する間隔 (ミリ秒単位)。デフォルト: 5000

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

    デフォルトでは、SLS は全文インデックスを有効にします。収集したログに基づいてフィールドインデックスを作成することも、[インデックスの自動生成] をクリックしてフィールドインデックスを自動的に作成することもできます。詳細については、「インデックスの作成」をご参照ください。

    重要

    ログのクエリと分析を行いたい場合は、全文インデックスまたはフィールドインデックスを有効にする必要があります。両方が有効になっている場合、フィールドインデックスが優先されます。

  8. ログ照会 をクリックして、Logstore のクエリおよび分析ページに移動します。

    インデックスが有効になるまで約1分待ちます。その後、Rawログ タブで収集されたログを表示できます。詳細については、「クエリと分析の開始」をご参照ください。

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

  • Logtail 収集設定

    {
        "inputs":[
            {
                "type":"input_command",
                "detail":{
                    "ScriptType":"python2",
                    "User":"test",
                    "ScriptContent":"import datetime\nprint(datetime.datetime.now())\n",
                    "ContentEncoding":"PlainText",
                    "CmdPath":"/usr/bin/python2",
                    "TimeoutMilliSeconds":1000,
                    "IgnoreError":false,
                    "Environments":[
                        "DEBUG=true"
                    ],
                    "IntervalMs":5000
                }
            }
        ]
    }
  • 収集されたログ

    content:"2023-08-07 02:17:52.123456"
    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 でログを収集できない場合のトラブルシューティング」をご参照ください。