Simple Log Service (SLS) コンソールで Logtail 収集設定を作成し、スクリプト実行ログを収集します。
前提条件
Linux サーバーに Logtail 1.7.1 以降がインストールされていること。詳細については、「LinuxサーバーへのLogtailのインストール」をご参照ください。
機能
Logtail は、設定されたスクリプトを指定されたユーザーとして実行し、スクリプトの標準出力をログとして収集します。
-
サポートされているスクリプトタイプ:
bash、shell、python2、python3。 -
スクリプトを実行するユーザーを指定することで、スクリプトがアクセスできるリソースを制限できます。
-
スクリプトがタイムアウトした場合、システムは自動的にスクリプトを停止します。Logtail は、タイムアウトした実行からログを収集しません。
操作手順
Log Serviceコンソールにログインします。
-
データのインポート セクションで、カスタムデータプラグイン を選択します。
-
移行先のプロジェクトと Logstore を選択し、次へ をクリックします。
-
マシングループを作成します。
-
既存のマシングループがある場合は、既存のサーバーグループの使用 をクリックします。
-
マシングループがない場合は、次の手順に従います。この例では ECS インスタンスを使用します。
-
ECS インスタンス タブで、対象の ECS インスタンスを選択し、作成 をクリックします。
詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。
重要お使いのサーバーが、異なる Alibaba Cloud アカウントの ECS インスタンス、他のクラウドプロバイダーのサーバー、または自己管理のオンプレミスサーバーである場合は、Logtail を手動でインストールする必要があります。詳細については、「LinuxサーバーへのLogtailのインストール」または「WindowsサーバーへのLogtailのインストール」をご参照ください。Logtail を手動でインストールした後、サーバーでユーザー識別子を設定する必要があります。詳細については、「ユーザー識別子の設定」をご参照ください。
-
インストールが完了したら、完全なインストール をクリックします。
-
マシングループの作成 ページで、名前 を入力し、次へ をクリックします。
SLS は、IP アドレスベースのマシングループとカスタム識別子ベースのマシングループをサポートしています。パラメーターの詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。
-
-
-
対象のマシングループを選択し、ソースサーバーグループ から 適用されたサーバーグループ に移動して、次へ をクリックします。
重要マシングループを作成した直後に適用した場合、接続がまだ確立されていないため、[ハートビート] ステータスが FAIL になることがあります。その場合は 自動再試行 をクリックしてください。問題が解決しない場合は、「ホスト環境でのLogtailマシングループの問題のトラブルシューティング」をご参照ください。
-
データソースの設定 タブで、設定名 と プラグイン設定 を指定し、次へ をクリックします。
-
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
はい
スクリプトのタイプ。有効な値:
bash、shell、python2、python3。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。 -
-
データをプレビューし、インデックスを設定してから、[次へ] をクリックします。
デフォルトでは、SLS は全文インデックスを有効にします。収集したログに基づいてフィールドインデックスを作成することも、[インデックスの自動生成] をクリックしてフィールドインデックスを自動的に作成することもできます。詳細については、「インデックスの作成」をご参照ください。
重要ログのクエリと分析を行いたい場合は、全文インデックスまたはフィールドインデックスを有効にする必要があります。両方が有効になっている場合、フィールドインデックスが優先されます。
-
ログ照会 をクリックして、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 でログを収集できない場合のトラブルシューティング」をご参照ください。