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

Linuxサーバーでは、rsyslogなどのsyslogエージェントを使用して、特定のIPアドレスとポートを使用してオンプレミスのsyslogをサーバーに転送できます。 LogtailはIPアドレスとポートをリッスンし、TCPまたはUDPを介して転送されたsyslogを受信し、特定のsyslogプロトコルに基づいてsyslogを解析してから、syslogからファシリティ、タグ (プログラム) 、重大度、コンテンツなどのフィールドを抽出します。
RFC 3164およびRFC 5424で定義されているsyslogプロトコルがサポートされています。 詳細については、「RFC3164」および「RFC5424」をご参照ください。
前提条件
Linuxオペレーティングシステムと最新バージョンのLogtailがインストールされています。 Logtailを更新する方法の詳細については、「LinuxサーバーにLogtailをインストールする」をご参照ください。
手順
このトピックでは、syslogはElastic Compute Service (ECS) インスタンスから収集されます。
にログインします。Simple Log Serviceコンソール.
[データのインポート] ダイアログボックスで、[カスタムデータプラグイン] を選択します。
プロジェクトとLogstoreを選択します。 [次へ] をクリックします。
マシングループを作成します。
マシングループが利用可能な場合は、[既存のマシングループを使用] をクリックします。
使用可能なマシングループがない場合は、次の手順を実行してマシングループを作成します。 この例では、Elastic Compute Service (ECS) インスタンスが使用されています。
[ECSインスタンス] タブで、[手動でインスタンスを選択] を選択します。 次に、使用するECSインスタンスを選択し、[作成] をクリックします。
詳細については、「ECSインスタンスへのLogtailのインストール」をご参照ください。
重要お使いのサーバーが、Simple Log Serviceとは異なるAlibaba Cloudアカウントに属するECSインスタンス、データセンター内のサーバー、またはサードパーティのクラウドサービスプロバイダーのサーバーの場合、サーバーにLogtailを手動でインストールする必要があります。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。 Logtailを手動でインストールした後、サーバーのユーザー識別子を設定する必要があります。 詳細については、「ユーザー識別子の設定」をご参照ください。
設定を確認したら、[OK] をクリックします。
Logtailをインストールしたら、[インストールの完了] をクリックします。
[マシングループの作成] ステップで、[名前] パラメーターを設定し、[次へ] をクリックします。
Simple Log Serviceでは、IPアドレスベースのマシングループとカスタム識別子ベースのマシングループを作成できます。 詳細については、「IPアドレスベースのマシングループの作成」および「カスタム識別子ベースのマシングループの作成」をご参照ください。
[応用サーバーグループ] セクションにマシングループが表示されていることを確認し、[次へ] をクリックします。
重要マシングループを作成した直後にマシングループを適用すると、マシングループのハートビートステータスがFAILになる可能性があります。 この問題は、マシングループがSimple Log Serviceに接続されていないために発生します。 この問題を解決するには、[自動再試行] をクリックします。 問題が解決しない場合は、Logtailでハートビート接続が検出されない場合はどうすればよいですか?
データのインポートウィザードの [データソースの設定] ステップで、[設定名] パラメーターを設定し、次の設定スクリプトをコピーして [プラグイン設定] フィールドに貼り付け、[次へ] をクリックします。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "tcp://0.0.0.0:9000", "ParseProtocol": "rfc3164" } }, { "type": "service_syslog", "detail": { "Address": "udp://0.0.0.0:9001", "ParseProtocol": "rfc3164" } } ] }次の表に、設定スクリプトのパラメーターを示します。
パラメーター
型
必須 / 任意
説明
タイプString
はい
データソースのタイプ。 値は
service_syslogとして固定されています。アドレスString
いいえ
Logtailのリスナープロトコル、IPアドレス、ポート。 Logtailはログソースをリッスンし、Logtail設定に基づいてログを取得します。 値は
[tcp/udp]://[ ip ]:[ port]形式です。 デフォルト値:tcp:// 127.0.0.1:9999。これは、LogtailがLogtailサーバーに転送されるログのみを受信することを示します。説明Logtail設定で指定するリスナープロトコル、IPアドレス、およびポートは、rsyslogの設定ファイルに追加された転送ルールで指定されたものと同じである必要があります。
Logtailがインストールされているサーバーが複数のIPアドレスを使用してログを受信する場合は、アドレスを
0.0.0.0に設定します。これは、LogtailがサーバーのすべてのIPアドレスをリッスンすることを示します。
ParseProtocolString
いいえ
Logtailがログの解析に使用するプロトコル。 このパラメーターはデフォルトでは空のままです。これは、ログが解析されないことを示します。 有効な値:
Empty: Logtailはsyslogを解析しません。
rfc3164: RFC 3164プロトコルを使用してログを解析します。
rfc5424: RFC 5424プロトコルを使用してログを解析します。
auto: Logtailは、ログの内容に基づいてプロトコルを自動的に選択します。
IgnoreParseFailureBoolean
いいえ
ログの解析に失敗した後、ログに対して操作を実行するかどうかを指定します。 有効な値は、true および false です。 デフォルト値:
true。これは、システムがログを解析せず、ログをコンテンツフィールドに追加することを示します。 このパラメーターをfalseに設定すると、ログの解析に失敗した後、システムはログを破棄します。データのインポートウィザードのクエリと分析の設定ステップで、[自動インデックス生成] をクリックします。 この設定を設定すると、データは収集されません。 データを収集するには、[次へ] をクリックしてLogtail設定を完了します。
Simple Log Serviceコンソールにログインし、必要なLogstoreで収集されたsyslogを表示します。 詳細については、「ログクエリと分析のガイド」をご参照ください。
ログフィールドの説明
フィールド | 説明 |
| ホスト名。 ログにホスト名が含まれていない場合、現在のホストのホスト名が取得されます。 |
| syslogプロトコルのタグフィールド。 |
| syslogプロトコルの優先順位フィールド。 |
| syslogプロトコルのfacilityフィールド。 |
| syslogプロトコルの重大度フィールド。 |
| ログのタイムスタンプ。 |
| ログのコンテンツ。 ログの解析に失敗した場合、このフィールドには生ログの内容が含まれます。 |
| 現在のホストのIPアドレス。 |
| ログを転送するLogtailのIPアドレス。 |
例
NGINXログの収集
NGINXサーバーを使用すると、特定のsyslogプロトコルを使用して、アクセスログを特定のIPアドレスとポートに直接転送できます。 サーバーのすべてのデータをsyslogとしてSimple Log Serviceに配信する場合は、Logtail設定を作成してデータを収集できます。 データにはNGINXアクセスログが含まれます。
Logtail設定を作成します。 詳細については、「Linux syslogの収集」をご参照ください。
次のサンプルコードは、[プラグイン設定] フィールドの設定スクリプトの例を示しています。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "udp://127.0.0.1:9001", "ParseProtocol": "rfc3164" } } ] }NGINXの転送ルールを追加します。
nginxサーバー上のNGINX. confファイルを見つけ、ファイルに転送ルールを追加します。 詳細については、「NGINX初心者向けガイド」をご参照ください。
次のサンプルコードは、転送ルールの例を示しています。
server { ... # Add this line. access_log syslog:server=127.0.0.1:9001,facility=local7,tag=nginx,severity=info combined; ... }次のコマンドを実行してNGINXを再起動し、転送ルールを検証します。
sudo service nginx restart
ファイアウォールログの収集
ほとんどの場合、ファイアウォールを使用すると、特定のsyslogプロトコルを使用して、アクセスログを特定のIPアドレスとポートに直接転送できます。 ファイアウォールのログをsyslogとしてSimple Log Serviceに配信してセキュリティ情報およびイベント管理 (SIEM) ソリューションを構築する場合は、Logtail設定を作成してログを収集できます。
Logtail設定を作成します。 詳細については、「Linux syslogの収集」をご参照ください。
次のサンプルコードは、[プラグイン設定] フィールドの設定スクリプトの例を示しています。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "udp://0.0.0.0:9001", "ParseProtocol": "rfc3164" } } ] }ファイアウォールマニュアルに基づいて、ファイアウォールの転送ルールを追加します。 この例では、LogtailがインストールされているサーバーのIPアドレスは10.20.30.40です。
トラブルシューティング
Logtailを使用してログを収集した後、プレビューページまたはクエリページにデータが表示されない場合は、loggerコマンドを実行してローカルLogtailにデータを送信できます。 次に、ライター、ネットワーク、またはLogtailが原因で問題が発生したかどうかを確認できます。
ローカルLogtailがデータを受信できる場合、ライターまたはネットワークが原因で問題が発生しました。
logger -n localhost -P 9000 -T "This is a TCP syslog message"
logger -n localhost -P 9001 -d "This is a UDP syslog message"詳細については、「」をご参照ください。Logtailを使用してログを収集するときにエラーが発生した場合はどうすればよいですか?