このトピックでは、Simple Log ServiceコンソールでLogtail設定を作成してsyslogを収集する方法について説明します。
前提条件
Logtail V0.16.13以降はLinuxサーバーにインストールされ、Logtail V1.0.0.8以降はWindowsサーバーにインストールされます。 詳細については、「LinuxサーバーにLogtailをインストールする」または「WindowsサーバーにLogtailをインストールする」をご参照ください。
概要
Linuxサーバーでは、rsyslogなどのsyslogエージェントを使用して、指定されたIPアドレスとポートを使用してオンプレミスのsyslogをサーバーに転送できます。 指定されたサーバーにLogtail設定を適用すると、LogtailはTCPまたはUDP経由で転送されたsyslogを受信します。 Logtailは、指定されたsyslogプロトコルに基づいてsyslogを解析し、syslogからファシリティ、タグ (プログラム) 、重大度、およびコンテンツフィールドを抽出します。 RFC 3164およびRFC 5424で定義されているsyslogプロトコルがサポートされています。
実装
Logtailは特定のIPアドレスとポートをリッスンし、syslogデータを受信します。
手順
にログインします。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でハートビート接続が検出されない場合はどうすればよいですか?
[データソースの指定] ステップで、[設定名] および [プラグイン設定] パラメーターを設定します。 [次へ] をクリックします。
次の例は、UDPおよびTCPで127.0.0.1をリッスンするように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がリッスンするリスニングプロトコル、アドレス、およびポート。 Logtailは、Logtail設定に基づいてデータをリッスンし、取得します。 パラメーターの値は、
[tcp/udp]://[ ip ]:[ port]
形式です。 デフォルト値:tcp:// 127.0.0.1:9999
この値は、Logtailがオンプレミスサーバーから転送されたログのみを受信することを示します。説明指定するリスニングプロトコル、IPアドレス、およびポートは、rsyslogの構成ファイルに追加された転送ルールで指定されたものと同じである必要があります。
Logtailサーバーが複数のIPアドレスを使用してデータを受信する場合は、Addressパラメーターを
0.0.0.0
に設定します。 この値は、LogtailがサーバーのすべてのIPアドレスをリッスンすることを示します。
ParseProtocol
String
課金されません
Logtailがsyslogの解析に使用するプロトコル。 デフォルトでは、このパラメーターは空です。これは、syslogが解析されないことを示します。 有効な値:
Empty: Logtailはsyslogを解析しません。
rfc3164: LogtailはRFC 3164プロトコルを使用してsyslogを解析します。
rfc5424: LogtailはRFC 5424プロトコルを使用してsyslogを解析します。
auto: Logtailは、syslogの内容に基づいてプロトコルを自動的に選択します。
IgnoreParseFailure
Boolean
課金されません
syslogの解析が失敗した後に、syslogに対して操作を実行するかどうかを指定します。 デフォルト値:
true
。 この値は、システムがsyslogを解析せず、syslogをcontentフィールドに追加することを示します。 値をfalse
に設定すると、解析に失敗した後、syslogは破棄されます。データをプレビューし、インデックスを設定し、[次へ] をクリックします。
デフォルトでは、Log Serviceでフルテキストインデックスが有効になっています。 手動モードまたは自動モードで収集したログに基づいてフィールドインデックスを設定することもできます。 自動モードでフィールドインデックスを設定するには、[自動インデックス生成] をクリックします。 これにより、Log Serviceは自動的にフィールドインデックスを作成します。 詳細については、「インデックスの作成」をご参照ください。
重要ログをクエリおよび分析する場合は、フルテキストインデックス作成またはフィールドインデックス作成を有効にする必要があります。 フルテキストインデックスとフィールドインデックスの両方を有効にすると、フィールドインデックスのみが使用されます。
[ログクエリ] をクリックします。 Logstoreのクエリと分析ページにリダイレクトされます。
インデックスが有効になるまで約1分待つ必要があります。 次に、収集したログを [生ログ] タブで表示できます。 詳細については、「ログの照会と分析」をご参照ください。
トラブルシューティング
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を使用してログを収集するときにエラーが発生した場合はどうすればよいですか?
サンプルログ
次の図は、syslogのサンプルを示しています。
項目 | 説明 |
| ホスト名。 ログにホスト名が含まれていない場合、現在のホストのホスト名が取得されます。 |
| syslogプロトコルのタグフィールド。 |
| syslogプロトコルの優先順位フィールド。 |
| syslogプロトコルのfacilityフィールド。 |
| syslogプロトコルの重大度フィールド。 |
| ログのタイムスタンプ。 |
| ログのコンテンツ。 ログの解析に失敗した場合、このフィールドには生ログの内容が含まれます。 |
| 現在のホストのIPアドレス。 |
| ログを転送するsyslogクライアントのIPアドレス。 |
例
rsyslogを使用してsyslogをSimple Log Serviceに転送する
rsyslogの転送ルールを追加します。
syslogを収集するサーバー上のrsyslogの
/etc/rsyslog.conf
設定ファイルを変更します。 設定ファイルの末尾に転送ルールを追加します。転送ルールが追加されると、rsyslogは指定されたIPアドレスとポートにsyslogを転送します。
Logtailがsyslogサーバーに存在する場合、IPアドレス127.0.0.1と、転送ルールで使用されていない既知でないポートを指定する必要があります。
Logtailがsyslogサーバーとは別のサーバーに存在する場合、転送ルールでは、別のサーバーのパブリックIPアドレスと、既知でないアイドルポートを指定する必要があります。
次の例は、すべてのsyslogをTCP経由で
127.0.0.1:9000
に転送できる転送ルールを示しています。 設定ファイルの詳細については、「RSyslogドキュメント」をご参照ください。*.* @@127.0.0.1:9000
次のコマンドを実行してrsyslogを再起動し、転送ルールを検証します。
sudo service rsyslog restart
Logtail設定を作成します。 詳細については、「手順」をご参照ください。
次のコードは、Logtail設定を示しています。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "tcp://0.0.0.0:9000", "ParseProtocol": "rfc3164" } } ] }
NGINXログの収集
NGINXサーバーを使用すると、syslogプロトコルを使用して、指定したIPアドレスとポートにアクセスログを転送できます。 サーバーのすべてのデータをsyslogとしてSimple Log Serviceに配信する場合は、Logtail設定を作成してデータを収集できます。 データにはNGINXアクセスログが含まれます。
NGINXの転送ルールを追加します。
nginxサーバー上のNGINX. conf設定ファイルに転送ルールを追加します。 詳細については、「NGINX初心者向けガイド」をご参照ください。
次のサンプルコードは、転送ルールの例を示しています。
http { ... # Add this line. access_log syslog:server=127.0.0.1:9000,facility=local7,tag=nginx,severity=info combined; ... }
次のコマンドを実行してNGINXサービスを再起動し、転送ルールを検証します。
sudo service nginx restart
Logtail設定を作成します。 詳細については、「手順」をご参照ください。
次のコードは、Logtail設定を示しています。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "udp://127.0.0.1:9000", "ParseProtocol": "rfc3164" } } ] }
ファイアウォールログの収集
ほとんどの場合、ファイアウォールでは、syslogプロトコルを使用して、アクセスログを指定されたIPアドレスとポートに転送できます。 ファイアウォールのログをsyslogとしてSimple Log Serviceに配信してセキュリティ情報およびイベント管理 (SIEM) ソリューションを構築する場合は、Logtail設定を作成してデータを収集できます。
ファイアウォールマニュアルに基づいて、ファイアウォールの転送ルールを追加します。
この例では、LogtailがインストールされているサーバーのIPアドレスは10.20.30.40です。
Logtail設定を作成します。 詳細については、「手順」をご参照ください。
次のコードは、Logtail設定を示しています。
{ "inputs": [ { "type": "service_syslog", "detail": { "Address": "tcp://0.0.0.0:9000", "ParseProtocol": "rfc3164" } } ] }