Logstash-collecting-logs

提供:Dev Guides
移動先:案内検索

Logstash-ログの収集

さまざまなサーバーまたはデータソースからのログは、配送業者を使用して収集されます。 配送業者はサーバーにインストールされたLogstashのインスタンスであり、サーバーログにアクセスして特定の出力場所に送信します。

主に出力をElasticsearchに送信してストレージに送信します。 Logstashは次のソースから入力を取ります-

  • STDIN
  • syslog
  • ファイル
  • TCP/UDP
  • Microsoft Windowsイベントログ
  • Websocket
  • Zeromq
  • カスタマイズされた拡張機能

Apache Tomcat 7サーバーを使用したログの収集

この例では、ファイル入力プラグインを使用してWindowsにインストールされたApache Tomcat 7サーバーのログを収集し、他のログに送信しています。

logstash.conf

ここで、Logstashは、ローカルにインストールされたApache Tomcat 7のアクセスログにアクセスするように構成されています。 正規表現パターンは、ファイルプラグインのパス設定で使用され、ログファイルからデータを取得します。 これには名前に「アクセス」が含まれており、Apacheタイプが追加されます。これにより、Apacheイベントを集中宛先ソースの他のイベントと区別できます。 最後に、出力イベントがoutput.logに表示されます。

input {
   file {
      path => "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/*access*"
      type => "apache"
   }
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Logstashを実行する

次のコマンドを使用してLogstashを実行できます。

C:\logstash\bin> logstash –f  Logstash.conf

Apache Tomcatログ

Apache TomcatサーバーとそのWebアプリ( http://localhost:8080 )にアクセスしてログを生成します。 ログ内の更新されたデータは、Logstashによってリアルタイムで読み取られ、構成ファイルで指定されたoutput.logに隠されます。

Apache Tomcatは、日付に従って新しいアクセスログファイルを生成し、そこにアクセスイベントを記録します。 この例では、Apache Tomcatの logs ディレクトリにあるlocalhost_access_log.2016-12-24.txtでした。

0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:00 +0800] "GET/HTTP/1.1" 200 11418
0:0:0:0:0:0:0:1 - munish [
   25/Dec/2016:18:37:02 +0800] "GET/manager/html HTTP/1.1" 200 17472
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:08 +0800] "GET/docs/HTTP/1.1" 200 19373
0:0:0:0:0:0:0:1 - - [
   25/Dec/2016:18:37:10 +0800] "GET/docs/introductionl HTTP/1.1" 200 15399

output.log

出力イベントで確認できます。タイプフィールドが追加され、メッセージフィールドにイベントが表示されます。

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt",
   "@timestamp":"2016-12-25T10:37:00.363Z","@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:00 +0800] \"GET/
   HTTP/1.1\" 200 11418\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - munish [25/Dec/2016:18:37:02 +0800] \"GET/
   manager/html HTTP/1.1\" 200 17472\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:10.407Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:08 +0800] \"GET/docs/
   HTTP/1.1\" 200 19373\r","type":"apache","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   localhost_access_log.2016-12-25.txt","@timestamp":"2016-12-25T10:37:20.436Z",
   "@version":"1","host":"Dell-PC",
   "message":"0:0:0:0:0:0:0:1 - - [25/Dec/2016:18:37:10 +0800] \"GET/docs/
   introductionl HTTP/1.1\" 200 15399\r","type":"apache","tags":[]
}

STDINプラグインを使用したログの収集

このセクションでは、* STDINプラグイン*を使用してログを収集する別の例を説明します。

logstash.conf

これは非常に単純な例です。Logstashは、ユーザーが標準入力で入力したイベントを読み取ります。 私たちの場合、イベントをoutput.logファイルに保存するのはコマンドプロンプトです。

input {
   stdin{}
}
output {
   file {
      path => "C:/tpwork/logstash/bin/log/output.log"
   }
}

Logstashを実行する

次のコマンドを使用してLogstashを実行できます。

C:\logstash\bin> logstash –f  Logstash.conf

コマンドプロンプトに次のテキストを書きます-

ユーザーは次の2行を入力しました。 Logstashは、イベントを区切り文字設定で区切ります。デフォルトの値は「\ n」です。 ユーザーは、ファイルプラグインの区切り文字の値を変更することで変更できます。

finddevguides.com welcomes you
Simply easy learning

output.log

次のコードブロックは、出力ログデータを示しています。

{
   "@timestamp":"2016-12-25T11:41:16.518Z","@version":"1","host":"Dell-PC",
   "message":"tutrialspoint.com welcomes you\r","tags":[]
}
{
   "@timestamp":"2016-12-25T11:41:53.396Z","@version":"1","host":"Dell-PC",
   "message":"simply easy learning\r","tags":[]
}