Help us understand the problem. What is going on with this article?

LogstashとElasticsearchを連携させる

More than 5 years have passed since last update.

前回で標準入力/標準出力でのログパースができましたので、今回は、
1. ログファイルを読み込む
2. 出力先をElasticsearchにする
3. Elasticsearchで検索してみる

ところまでやってみたいと思います。

環境

  • VirtualBox 4.3
  • ubuntu 14.04
  • java8(1.8.0_25)
  • Elasticsearch(1.5.0)
  • logstash(1.4.2)

logstashの設定ファイルを変更する

入出力先を変更します
前回の「conf/test.conf」と同じ場所に新しい設定ファイルを作成します。

logstash.conf
input {
  file{
    path=>"/path/to/access.log"
    start_position=>"beginning"
    sincedb_path => "/dev/null"
  }
}

filter {
  grok{
    match=>{"message"=>"%{COMBINEDAPACHELOG}"}
    break_on_match=>false
    tag_on_failure=>["_message_parse_failure"]
  }
  date {
    match=>["timestamp","dd/MMM/yyyy:HH:mm:ssZ"]
    locale=>en
  }
}

output {
  stdout{codec=>rubydebug}
}

inputの箇所に今までの標準入力設定ではなくfileを指定し、ログファイルのpathを指定します。
start_position=>"beginning"はlogstashを起動したときに、ログファイルのどこから読み込むかの指定です。
※デフォルトは「end」です。この場合、logstashが起動された後に、追記されたログから入力となります。
「sincedb_path => "/dev/null"」は$HOME.sincedbというところに前回どこまで処理をしたか?を記録するもので、ここでは残さないにしてあります。

一度上記設定ファイルで起動します

$ /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf

ちょっと時間をおいた後、標準出力にパースされた結果が出力され続けます。
※止めるときはcrtl+cで

elasticsearchにデータを投入

logstash.conf
output {
  elasticsearch {
    host => localhost
    protocol => http
  }
}

上記のように変更します。

実行

まずはelasticsearchを起動
$ sudo /usr/local/elasticsearch/bin/elasticsearch
その後logstashを起動
$ sudo /usr/local/logstash/bin/logstash -f /usr/local/logstash/conf/logstash.conf

※path=>"/path/to/access.log"の中身は少ない方がいいかも(確認が早くできるので)

インデクス確認

$ sudo curl 'http://localhost:9200/_search'

JSON形式で出力されます。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした