LogstashとBeatsを利用してElasticsearchにデータ投入してみる
LogstashとBeatsを利用してElasticsearchにデータ投入してみたメモです。
Elasticsearch単体でのデータ登録、更新、削除を試してみたので、
LogstashとFileBeatを利用してデータ投入を試してみました。
下記のチュートリアルを参照しました。
www.elastic.co
LogstashとBeats
LogstashとBeatsはともにelasticのプロダクトで
Beatsでログやリソースなどのデータ収集を行い、
Logstashの各プラグインでデータの加工やフィルタリングを行うという役割分担のようです。
今回はUbuntu上で現時点で最新版のLogstash5.2とBeats5.2を使ってみます。
Logstash インストール
LogstashのインストールもElasticsearchやKibanaと同様にファイルをダウンロードして解凍するだけです。
aptやyumのパッケージもあります。
$ mkdir elastic $ cd elastic/ $ curl -L -O https://artifacts.elastic.co/downloads/logstash/logstash-5.2.0.tar.gz $ tar -xvzf logstash-5.2.0.tar.gz
Logstashのパイプラインでは入力⇒フィルタ⇒出力という流れで処理がされますが、
一番簡単な標準入力から入力して、そのまま標準出力に出力するパターンを試してみます。
設定はconfigに記述するのですが、-eオプションを使用するとコマンドラインから設定を直接指定できます。
-eオプションで'input { stdin { } } output { stdout {} }'を指定して起動します。
起動後のコンソールに"My first logstash!"と入力すると、タイムスタンプとホスト名(IP)とともに"My first logstash!"と出力されます。
$ bin/logstash -e 'input { stdin { } } output { stdout {} }' Sending Logstash's logs to /home/xxxx/elastic/logstash-5.1.2/logs which is now configured via log4j2.properties The stdin plugin is now waiting for input: [2017-01-30T21:05:15,728][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125} [2017-01-30T21:05:15,760][INFO ][logstash.pipeline ] Pipeline main started [2017-01-30T21:05:15,830][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} My first logstash! 2017-01-30T12:05:57.115Z MyUbuntu My first logstash!
Apache アクセスログ取り込み
Apacheのアクセスログを入力して、ログを解析してから各フィールドを作成し、Elasticsearchに取り込んでみます。
dummyログ配置
ApacheのアクセスログのダミーデータがElasticsearchのチュートリアル用のサンプルからダウンロードできます。
https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz
自分の環境では下記に配置しました。
$ sudo mkdir /var/log/dummy $ sudo chmod 777 /var/log/dummy $ cd /var/log/dummy $ curl -L -O https://download.elastic.co/demos/logstash/gettingstarted/logstash-tutorial.log.gz $ gunzip logstash-tutorial.log.gz
中身はこんな感じ
$ wc -l logstash-tutorial.log 100 logstash-tutorial.log $ tail logstash-tutorial.log 218.30.103.62 - - [04/Jan/2015:05:28:43 +0000] "GET /blog/geekery/xvfb-firefox.html HTTP/1.1" 200 10975 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" 218.30.103.62 - - [04/Jan/2015:05:29:06 +0000] "GET /blog/geekery/puppet-facts-into-mcollective.html HTTP/1.1" 200 9872 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" 198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] "GET /blog/geekery/disabling-battery-in-ubuntu-vms.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 9316 "-" "Tiny Tiny RSS/1.11 (http://tt-rss.org/)" 198.46.149.143 - - [04/Jan/2015:05:29:13 +0000] "GET /blog/geekery/solving-good-or-bad-problems.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+semicomplete%2Fmain+%28semicomplete.com+-+Jordan+Sissel%29 HTTP/1.1" 200 10756 "-" "Tiny Tiny RSS/1.11 (http://tt-rss.org/)" 218.30.103.62 - - [04/Jan/2015:05:29:26 +0000] "GET /blog/geekery/jquery-interface-puffer.html%20target= HTTP/1.1" 200 202 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" 218.30.103.62 - - [04/Jan/2015:05:29:48 +0000] "GET /blog/geekery/ec2-reserved-vs-ondemand.html HTTP/1.1" 200 11834 "-" "Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)" 66.249.73.135 - - [04/Jan/2015:05:30:06 +0000] "GET /blog/web/firefox-scrolling-fix.html HTTP/1.1" 200 8956 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 86.1.76.62 - - [04/Jan/2015:05:30:37 +0000] "GET /projects/xdotool/ HTTP/1.1" 200 12292 "http://www.haskell.org/haskellwiki/Xmonad/Frequently_asked_questions" "Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20140205 Firefox/24.0 Iceweasel/24.3.0"
Filebeat install
Logstashにログを送信するために、Filebeatをインストールします。
Filebeatはサーバ上のファイルからログを収集するためのツールです。
Filebeatのインストールはdebやrpmの各パッケージが公開されているので、
debのパッケージをダウンロードしてインストールします。
https://www.elastic.co/guide/en/beats/filebeat/5.2/filebeat-getting-started.html
$ curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-5.2.0-amd64.deb $ sudo dpkg -i filebeat-5.2.0-amd64.deb $ ll /etc/filebeat/ 合計 64 drwxr-xr-x 2 root root 4096 1月 30 21:48 ./ drwxr-xr-x 135 root root 12288 1月 30 21:48 ../ -rw-r--r-- 1 root root 31964 1月 12 05:10 filebeat.full.yml -rw-r--r-- 1 root root 3040 1月 12 05:10 filebeat.template-es2x.json -rw-r--r-- 1 root root 2397 1月 12 05:10 filebeat.template.json -rw-r--r-- 1 root root 4196 1月 12 05:10 filebeat.yml
インストールしたら設定ファイルを編集します。
filebeat.ymlに下記内容を記述します。
pathsの箇所に先程ダウンロードしたApacheのサンプルログの配置場所を指定します。
# vi /etc/filebeat/filebeat.yml filebeat.prospectors: - input_type: log paths: - /var/log/dummy/logstash-tutorial.log output.logstash: hosts: ["localhost:5043"]
次のコマンドを実行し、Filebeatを起動します。
まだ、Logstashを起動していないため何も起きません。
$ sudo /etc/init.d/filebeat start [ ok ] Starting filebeat (via systemctl): filebeat.service.
Logstash config
LogstashのパイプラインでFilebeatからの入力を受け付けるように設定をします。
first-pipeline.confというファイルを作成し、下記を記述します。
inputセクションでBeats input pluginを使用するようにしています。
outputセクションには確認のため一旦標準出力に出力されるように設定します。
$ cd elastic/logstash-5.2.0/ $ cd config/ $ vi first-pipeline.conf input { beats { port => "5043" } } # The filter part of this file is commented out to indicate that it is # optional. # filter { # # } output { stdout { codec => rubydebug } }
設定が完了したら、下記コマンドを実行し設定ファイルの構文チェックを行います。
--config.test_and_exitオプションを使用すると構文チェックが行われます。
$ bin/logstash -f config/first-pipeline.conf --config.test_and_exit Sending Logstash's logs to /home/xxxx/elastic/logstash-5.2.0/logs which is now configured via log4j2.properties Configuration OK [2017-02-03T18:22:28,886][INFO ][logstash.runner ] Using config.test_and_exit mode. Config Validation Result: OK. Exiting Logstash
構文チェックがOKだったら、下記のコマンドでLogstashを実行します。
--config.reload.automaticオプションを使用すると、設定の自動読み込みが行われ、
設定ファイルを変更した時に再起動しなくても自動で設定が読み込まれます。
下記のように読み込んだデータが標準出力に表示されます。
$ bin/logstash -f config/first-pipeline.conf --config.reload.automatic Sending Logstash's logs to /home/xxxx/elastic/logstash-5.2.0/logs which is now configured via log4j2.properties log4j:WARN No appenders could be found for logger (io.netty.util.internal.logging.InternalLoggerFactory). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. [2017-02-03T18:45:56,654][INFO ][logstash.inputs.beats ] Beats inputs: Starting input listener {:address=>"0.0.0.0:5043"} [2017-02-03T18:45:56,695][INFO ][logstash.pipeline ] Starting pipeline {"id"=>"main", "pipeline.workers"=>1, "pipeline.batch.size"=>125, "pipeline.batch.delay"=>5, "pipeline.max_inflight"=>125} [2017-02-03T18:45:56,717][INFO ][logstash.pipeline ] Pipeline main started [2017-02-03T18:45:56,818][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600} { "@timestamp" => 2017-02-03T09:45:21.172Z, "offset" => 325, "@version" => "1", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "input_type" => "log", "host" => "MyUbuntu", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1\" 200 203023 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ] } { "@timestamp" => 2017-02-03T09:45:21.172Z, "offset" => 654, "@version" => "1", "input_type" => "log", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "host" => "MyUbuntu", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1\" 200 171717 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ] } : : : :
grok filter plugin
ログの内容を解析して名前付きのフィールドを作成するために、grok filter pluginを使用します。
grok filter pluginはデフォルトで利用可能です。
Apacheのアクセスログの解析には%{COMBINEDAPACHELOG}のパターンが利用できます。
%{COMBINEDAPACHELOG}パターンを使用すると、ログを下記のフィールドに分解します。
log | Field Name |
---|---|
IP Address | clientip |
User ID | ident |
User Authentication | auth |
timestamp | timestamp |
HTTP Verb | verb |
Request body | request |
HTTP Version | httpversion |
HTTP Status Code | response |
Bytes served | bytes |
Referrer URL | referrer |
User agent | agent |
first-pipeline.confを編集して、filterセクションを下記の通り追記します。
$ cd logstash-5.2.0/config/ $ vi first-pipeline.conf $ cat first-pipeline.conf input { beats { port => "5043" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } } output { stdout { codec => rubydebug } }
設定を保存するとLogstashを再起動しなくても自動で読み込まれます。
Filebeatはデータを読み切ってしまっているため、最初からログファイルを読むようにするためにレジストリファイルを削除します。
$ sudo /etc/init.d/filebeat stop $ ll /var/lib/filebeat/registry $ sudo rm /var/lib/filebeat/registry
再度Filebeatを起動すると、最初からロードされます
$ sudo /etc/init.d/filebeat start [ ok ] Starting filebeat (via systemctl): filebeat.service.
各フィールドに分割されて読み込まれているのがわかります。
{ "request" => "/presentations/logstash-monitorama-2013/images/kibana-search.png", "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "offset" => 325, "auth" => "-", "ident" => "-", "input_type" => "log", "verb" => "GET", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1\" 200 203023 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ], "referrer" => "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", "@timestamp" => 2017-02-03T10:27:01.438Z, "response" => "200", "bytes" => "203023", "clientip" => "83.149.9.216", "@version" => "1", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "host" => "MyUbuntu", "httpversion" => "1.1", "timestamp" => "04/Jan/2015:05:13:42 +0000" } { "request" => "/presentations/logstash-monitorama-2013/images/kibana-dashboard3.png", "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "offset" => 654, "auth" => "-", "ident" => "-", "input_type" => "log", "verb" => "GET", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1\" 200 171717 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ], "referrer" => "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", "@timestamp" => 2017-02-03T10:27:01.438Z, "response" => "200", "bytes" => "171717", "clientip" => "83.149.9.216", "@version" => "1", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "host" => "MyUbuntu", "httpversion" => "1.1", "timestamp" => "04/Jan/2015:05:13:42 +0000" } : : : :
GeoIP plugin
GeoIPはIPアドレスから地理情報を取得できます。
GeoIP pluginを使用すると、地理情報をログに追加することができます。
first-pipeline.confのfilterセクションに下記を追記します。
GeoIP pluginではIPアドレスが含まれるフィールドを指定する必要があるので、
clientipフィールドを指定します。
$ cd $ cd elastic/logstash-5.2.0/config/ $ vi first-pipeline.conf input { beats { port => "5043" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } geoip { source => "clientip" } } output { stdout { codec => rubydebug } }
設定ファイルを保存したら同様にFilebeatのレジストリを削除して、最初から読み込みようにします。
$ sudo /etc/init.d/filebeat stop [ ok ] Stopping filebeat (via systemctl): filebeat.service. $ sudo rm /var/lib/filebeat/registry $ sudo /etc/init.d/filebeat start [ ok ] Starting filebeat (via systemctl): filebeat.service.
GeoIPの情報が追加されているのがわかります。
{ "request" => "/presentations/logstash-monitorama-2013/images/kibana-search.png", "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "geoip" => { "timezone" => "Europe/Moscow", "ip" => "83.149.9.216", "latitude" => 55.7485, "continent_code" => "EU", "city_name" => "Moscow", "country_code2" => "RU", "country_name" => "Russia", "country_code3" => "RU", "region_name" => "Moscow", "location" => [ [0] 37.6184, [1] 55.7485 ], "postal_code" => "101194", "longitude" => 37.6184, "region_code" => "MOW" }, "offset" => 325, "auth" => "-", "ident" => "-", "input_type" => "log", "verb" => "GET", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-search.png HTTP/1.1\" 200 203023 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ], "referrer" => "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", "@timestamp" => 2017-02-03T11:39:52.477Z, "response" => "200", "bytes" => "203023", "clientip" => "83.149.9.216", "@version" => "1", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "host" => "MyUbuntu", "httpversion" => "1.1", "timestamp" => "04/Jan/2015:05:13:42 +0000" } { "request" => "/presentations/logstash-monitorama-2013/images/kibana-dashboard3.png", "agent" => "\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "geoip" => { "timezone" => "Europe/Moscow", "ip" => "83.149.9.216", "latitude" => 55.7485, "continent_code" => "EU", "city_name" => "Moscow", "country_code2" => "RU", "country_name" => "Russia", "country_code3" => "RU", "region_name" => "Moscow", "location" => [ [0] 37.6184, [1] 55.7485 ], "postal_code" => "101194", "longitude" => 37.6184, "region_code" => "MOW" }, "offset" => 654, "auth" => "-", "ident" => "-", "input_type" => "log", "verb" => "GET", "source" => "/var/log/dummy/logstash-tutorial.log", "message" => "83.149.9.216 - - [04/Jan/2015:05:13:42 +0000] \"GET /presentations/logstash-monitorama-2013/images/kibana-dashboard3.png HTTP/1.1\" 200 171717 \"http://semicomplete.com/presentations/logstash-monitorama-2013/\" \"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36\"", "type" => "log", "tags" => [ [0] "beats_input_codec_plain_applied" ], "referrer" => "\"http://semicomplete.com/presentations/logstash-monitorama-2013/\"", "@timestamp" => 2017-02-03T11:39:52.477Z, "response" => "200", "bytes" => "171717", "clientip" => "83.149.9.216", "@version" => "1", "beat" => { "hostname" => "MyUbuntu", "name" => "MyUbuntu", "version" => "5.2.0" }, "host" => "MyUbuntu", "httpversion" => "1.1", "timestamp" => "04/Jan/2015:05:13:42 +0000" } : : : :
Elasticsearchへデータ投入
今まで標準出力へ出力していたので、Elasticsearchへ出力するようにします。
first-pipeline.confを編集し、outputをElasticsearchに向けます。
Elasticsearchがlocalhostでデフォルトポートで起動している場合、下記の通り記述します。
$ vi first-pipeline.conf input { beats { port => "5043" } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}"} } geoip { source => "clientip" } } output { elasticsearch { hosts => [ "localhost:9200" ] } }
設定ファイルを保存したら同様にFilebeatのレジストリを削除して、最初から読み込みようにします。
$ sudo /etc/init.d/filebeat stop [ ok ] Stopping filebeat (via systemctl): filebeat.service. $ sudo rm /var/lib/filebeat/registry $ sudo /etc/init.d/filebeat start [ ok ] Starting filebeat (via systemctl): filebeat.service.
Elasticsearchにデータ投入が出来たかクエリを投げて確認してみます。
インデックス名をlogstash-YYYY.MM.DDと指定して検索してみます。
curl -XGET 'localhost:9200/logstash-2017.02.03/_search?pretty&q=response=200'
Console
GET /logstash-2017.02.03/_search?pretty&q=response=200
下記の通り、インデックスが作成されていることがわかります。
{ "took": 22, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 98, "max_score": 3.527758, "hits": [ { "_index": "logstash-2017.02.03", "_type": "log", "_id": "AVoDy72ddm3yw_7LpPfX", "_score": 3.527758, "_source": { "request": "/presentations/logstash-monitorama-2013/images/frontend-response-codes.png", "agent": """"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"""", "geoip": { "timezone": "Europe/Moscow", "ip": "83.149.9.216", "latitude": 55.7485, "continent_code": "EU", "city_name": "Moscow", "country_code2": "RU", "country_name": "Russia", "country_code3": "RU", "region_name": "Moscow", "location": [ 37.6184, 55.7485 ], "postal_code": "101194", "longitude": 37.6184, "region_code": "MOW" }, "offset": 2932, "auth": "-", "ident": "-", "input_type": "log", "verb": "GET", "source": "/var/log/dummy/logstash-tutorial.log", "message": """83.149.9.216 - - [04/Jan/2015:05:13:45 +0000] "GET /presentations/logstash-monitorama-2013/images/frontend-response-codes.png HTTP/1.1" 200 52878 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"""", "type": "log", "tags": [ "beats_input_codec_plain_applied" ], "referrer": """"http://semicomplete.com/presentations/logstash-monitorama-2013/"""", "@timestamp": "2017-02-03T11:46:02.978Z", "response": "200", "bytes": "52878", "clientip": "83.149.9.216", "@version": "1", "beat": { "hostname": "MyUbuntu", "name": "MyUbuntu", "version": "5.2.0" }, "host": "MyUbuntu", "httpversion": "1.1", "timestamp": "04/Jan/2015:05:13:45 +0000" } }, { "_index": "logstash-2017.02.03", "_type": "log", "_id": "AVoDy72ddm3yw_7LpPfY", "_score": 0.19398308, "_source": { "request": "/presentations/logstash-monitorama-2013/images/kibana-dashboard.png", "agent": """"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"""", "geoip": { "timezone": "Europe/Moscow", "ip": "83.149.9.216", "latitude": 55.7485, "continent_code": "EU", "city_name": "Moscow", "country_code2": "RU", "country_name": "Russia", "country_code3": "RU", "region_name": "Moscow", "location": [ 37.6184, 55.7485 ], "postal_code": "101194", "longitude": 37.6184, "region_code": "MOW" }, "offset": 3260, "auth": "-", "ident": "-", "input_type": "log", "verb": "GET", "source": "/var/log/dummy/logstash-tutorial.log", "message": """83.149.9.216 - - [04/Jan/2015:05:13:43 +0000] "GET /presentations/logstash-monitorama-2013/images/kibana-dashboard.png HTTP/1.1" 200 321631 "http://semicomplete.com/presentations/logstash-monitorama-2013/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.77 Safari/537.36"""", "type": "log", "tags": [ "beats_input_codec_plain_applied" ], "referrer": """"http://semicomplete.com/presentations/logstash-monitorama-2013/"""", "@timestamp": "2017-02-03T11:46:02.978Z", "response": "200", "bytes": "321631", "clientip": "83.149.9.216", "@version": "1", "beat": { "hostname": "MyUbuntu", "name": "MyUbuntu", "version": "5.2.0" }, "host": "MyUbuntu", "httpversion": "1.1", "timestamp": "04/Jan/2015:05:13:43 +0000" } }, : : : :
Kibanaで表示
投入したデータをKibanaで見てみます。
KibanaにアクセスしてDiscoverで「logstash-*」で検索してみると、
きちんと登録されていることが分かります。
終わり。