Logstash は input
に filter
を適用して output
する汎用システムです。特に Elasticsearch に output
する例を示します。過去エントリー『Elasticsearch 導入のための基礎知識』をもとに Elasticsearch は導入済みであるとします。
最新バージョンへのリンクは Downloads | Logstash から確認してください。JRuby で開発されているため Java が必要です。
$ sudo yum install java-1.8.0-openjdk
$ sudo rpm -ivh https://download.elastic.co/logstash/logstash/packages/centos/logstash-1.5.4-1.noarch.rpm
/etc/sysconfig/logstash
LS_HEAP_SIZE="500m"
/etc/logstash/conf.d/sample.conf
input {
file {
path => "/tmp/groksample.log"
start_position => beginning
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}"}
}
}
output {
elasticsearch {
protocol => "http"
}
}
/tmp/groksample.log
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"
$ sudo service logstash start
$ curl 'localhost:9200/_cat/indices?v'
health status index pri rep docs.count docs.deleted store.size pri.store.size
yellow open logstash-2015.09.21 5 1 3 0 13.9kb 13.9kb
$ curl 'localhost:9200/logstash-2015.09.21/_search?q=*&pretty'