Logstash-supported-inputs

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

Logstash-サポートされる入力

Logstashは、さまざまなソースからの膨大な範囲のログをサポートしています。 以下で説明するように、有名なソースで動作しています。

メトリックからログを収集する

システムイベントおよびその他の時間アクティビティはメトリックに記録されます。 Logstashは、システムメトリックからログにアクセスし、フィルターを使用して処理できます。 これは、イベントのライブフィードをカスタマイズされた方法でユーザーに表示するのに役立ちます。 メトリックは、メトリックフィルタの* flush_interval設定*に従って、デフォルトでフラッシュされます。 5秒に設定されています。

Logstashで実行されるイベントを収集して分析し、コマンドプロンプトでライブフィードを表示することにより、Logstashによって生成されたテストメトリックを追跡しています。

logstash.conf

この構成にはジェネレータプラグインが含まれます。これは、テストメトリック用にLogstashによって提供され、解析のためにタイプ設定を「生成」に設定します。 フィルタリングフェーズでは、「if」ステートメントを使用して、生成されたタイプの行のみを処理します。 次に、メトリックプラグインは、メーター設定で指定されたフィールドをカウントします。 メトリックプラグインは、 flush_interval で指定された5秒ごとにカウントをフラッシュします。

最後に、フォーマットに* codecプラグイン*を使用して、コマンドプロンプトなどの標準出力にフィルターイベントを出力します。 Codecプラグインは、[_ events ] [ rate_1m_]値を使用して、1分間のスライディングウィンドウで毎秒のイベントを出力します。

input {
   generator {
        type => "generated"
   }
}
filter {
   if [type] == "generated" {
      metrics {
         meter => "events"
         add_tag => "metric"
      }
   }
}
output {
   # only emit events with the 'metric' tag
   if "metric" in [tags] {
      stdout {
         codec => line { format => "rate: %{[events][rate_1m]}"
      }
   }
}

Logstashを実行する

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

>logsaths –f logstash.conf

stdout(コマンドプロンプト)

rate: 1308.4
rate: 1308.4
rate: 1368.654529135342
rate: 1416.4796003951449
rate: 1464.974293984808
rate: 1523.3119444107458
rate: 1564.1602979542715
rate: 1610.6496496890895
rate: 1645.2184750334154
rate: 1688.7768007612485
rate: 1714.652283095914
rate: 1752.5150680019278
rate: 1785.9432934744932
rate: 1806.912181962126
rate: 1836.0070454626025
rate: 1849.5669494173826
rate: 1871.3814756851832
rate: 1883.3443123790712
rate: 1906.4879113216743
rate: 1925.9420717997118
rate: 1934.166137658981
rate: 1954.3176526556897
rate: 1957.0107444542625

Webサーバーからログを収集する

Webサーバーは、ユーザーアクセスとエラーに関する多数のログを生成します。 Logstashは、入力プラグインを使用してさまざまなサーバーからログを抽出し、それらを一元化された場所に保管するのに役立ちます。

ローカルApache Tomcatサーバーの* stderrログ*からデータを抽出し、output.logに隠します。

logstash.conf

このLogstash構成ファイルは、Logstashにapacheエラーログを読み取り、「apache-error」という名前のタグを追加するよう指示します。 ファイル出力プラグインを使用して、単にoutput.logに送信できます。

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

Logstashを実行する

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

>Logstash –f Logstash.conf

入力ログのサンプル

これはサンプルの* stderrログ*で、Apache Tomcatでサーバーイベントが発生したときに生成されます。

C:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ logs \ tomcat7-stderr.2016-12-25.log

Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-9999"]
Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 823 ms

output.log

{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.coyote.AbstractProtocol start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Starting ProtocolHandler [
      \"ajp-bio-8009\"]\r","type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"Dec 25, 2016 7:05:14 PM org.apache.catalina.startup.Catalina start\r",
   "type":"apache-error","tags":[]
}
{
   "path":"C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/
   tomcat7-stderr.2016-12-25.log","@timestamp":"2016-12-25T11:05:27.045Z",
   "@version":"1","host":"Dell-PC",
   "message":"INFO: Server startup in 823 ms\r","type":"apache-error","tags":[]
}

データソースからログを収集する

まず、ロギング用にMySQLを構成する方法を理解しましょう。 [mysqld]の下のMySQLデータベースサーバーの* my.iniファイル*に次の行を追加します。

Windowsでは、MySQLのインストールディレクトリ内に存在します。

C:\wamp\bin\mysql\mysql5.7.11

UNIXでは、/etc/mysql/my.cnfにあります。

general_log_file   = "C:/wamp/logs/queries.log"
general_log = 1

logstash.conf

この設定ファイルでは、ファイルプラグインを使用してMySQLログを読み取り、ouput.logに書き込みます。

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

querys.log

これは、MySQLデータベースで実行されたクエリによって生成されたログです。

2016-12-25T13:05:36.854619Z   2 Query       select * from test1_users
2016-12-25T13:05:51.822475Z    2 Query  select count(*) from users
2016-12-25T13:05:59.998942Z    2 Query         select count(*) from test1_users

output.log

{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:37.905Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:36.854619Z    2 Query\tselect * from test1_users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:05:51.938Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:51.822475Z    2 Query\tselect count(*) from users",
   "tags":[]
}
{
   "path":"C:/wamp/logs/queries.log","@timestamp":"2016-12-25T13:06:00.950Z",
   "@version":"1","host":"Dell-PC",
   "message":"2016-12-25T13:05:59.998942Z    2 Query\tselect count(*) from test1_users",
   "tags":[]
}