このトピックでは、ログの収集と処理のためのLogstash設定を作成する方法について説明します。
プラグイン
- logstash-input-fileプラグイン
logstash-input-file部品は, tailコマンドでログを収集します。 詳細については、「logstash-input-file」をご参照ください。
- logstash-output-logserviceプラグイン
logstash-output-logserviceプラグインは、収集されたログを処理し、ログをLog Serviceにアップロードします。
手順
- C:\logstash-2.2.2-win\conf\ ディレクトリに設定ファイルを作成します。
logstash-2.2.2-winを実際のLogstashバージョンに置き換えます。 ログの種類ごとに設定ファイルを作成できます。 ファイル名は *.conf形式です。
- ログの収集と処理のための設定を作成します。
ビジネス要件に基づいてログ収集と処理のための次の設定を作成し、設定ファイルに設定を追加します。 ログ収集の設定は、inputパラメーターで指定します。 詳細については、「Logstashドキュメント」をご参照ください。 ログ処理の設定は、outputパラメーターで指定します。
説明- 構成ファイルは、バイト順序マーク (BOM) なしのUTF-8でエンコードする必要があります。 テキストエディターを使用して、ファイルのエンコード形式を変更できます。
- pathパラメーターは、構成ファイルへのパスを指定します。 このパラメーターを設定する場合は、UNIX形式の区切り文字を使用する必要があります。 例: C:/test/multiline/*.log そうしないと、ファジー一致はサポートされません。
- 構成ファイルのtypeパラメーターの値は同じである必要があります。 サーバーに対して複数のLogstash設定ファイルが作成されている場合、ファイル内のtypeパラメーターの値は同じである必要があります。
input { file { type => "iis_log_1" path => ["C:/inetpub/logs/LogFiles/W3SVC1/*.log"] start_position => "beginning" } } filter { if [type] == "iis_log_1" { #ignore log comments if [message] =~ "^#" { drop {} } grok { # check that fields match your IIS log settings match => ["message", "%{TIMESTAMP_ISO8601:log_timestamp} %{IPORHOST:site} %{WORD:method} %{URIPATH:page} %{NOTSPACE:querystring} %{NUMBER:port} %{NOTSPACE:username} %{IPORHOST:clienthost} %{NOTSPACE:useragent} %{NUMBER:response} %{NUMBER:subresponse} %{NUMBER:scstatus} %{NUMBER:time_taken}"] } date { match => [ "log_timestamp", "YYYY-MM-dd HH:mm:ss" ] timezone => "Etc/UTC" } useragent { source=> "useragent" prefix=> "browser" } mutate { remove_field => [ "log_timestamp"] } } } output { if [type] == "iis_log_1" { logservice { codec => "json" endpoint => "***" project => "***" logstore => "***" topic => "" source => "" access_key_id => "***" access_key_secret => "***" to_json => true max_send_retry => 10 max_buffer_items => 4000 max_buffer_bytes => 2097152 max_buffer_seconds => 3 } } }
表 1. ログ処理設定のパラメータ 項目 必須/任意 説明 endpoint 〇 Log Serviceエンドポイント。 project 〇 Log Service プロジェクトの名前。 logstore 〇 Log Service Logstore の名前。 topic 〇 ログのトピック。 source 〇 ログのソース。 カスタムソースを指定できます。 access_key_id 〇 Alibaba CloudアカウントのAccessKey ID。 詳細については、「AccessKey ペア」をご参照ください。 access_key_secret 〇 The AccessKey secret of your Alibaba Cloud account. 詳細については、「AccessKey ペア」をご参照ください。 to_json いいえ ログをJSON形式で解析するかどうかを指定します。 有効な値: - true: ログをJSON形式で解析します。 デフォルト値です。
ログが文字列型の場合、ログは二重引用符 ("") で囲まれます。
- false: ログを文字列形式で解析します。
ログがJSON形式の場合、ログはエスケープされます。
max_send_retry 〇 パケットのLog Serviceへの送信に失敗した場合に実行できる再試行の最大数。 再試行後に送信に失敗したパケットはドロップされます。 リトライ間隔は200ミリ秒です。 max_buffer_items いいえ パケットにキャッシュされているログの数。 このパラメーターを設定しない場合、4,000ログはデフォルトでパケットにキャッシュされます。
max_buffer_bytes いいえ パケットにキャッシュされるログのサイズ。 最大値: 10485760。 単位:バイト このパラメーターを設定しない場合、デフォルトで2,097,152バイトのログがパケットにキャッシュされます。
max_buffer_seconds いいえ ログがキャッシュされる最大期間。 単位:秒。 このパラメーターを設定しない場合、ログはデフォルトで最大3秒間キャッシュされます。
- Logstashを再起動します。 詳細については、「サービスの起動」をご参照ください。
次のタスク
PowerShellを使用して、logstash.batプロセスを起動します。 logstash.batプロセスはフロントグラウンドで実行されます。 ほとんどの場合、logstash.batプロセスは、ログ収集をテストおよびデバッグするために実行されます。 デバッグ後、LogstashをWindowsサービスとして構成することを推奨します。 Logstashはバックグラウンドと起動時に実行できます。 詳細については、「Logstash を Windows サービスに登録」をご参照ください。