logstash资源包
https://artifacts.elastic.co/downloads/logstash/logstash-5.2.2.tar.gz //下载链接
Logstash Hello world
第一个示例Logstash将采用标准输入和标准输出作为input和output,并且不指定filter
(1)下载Logstash并解压(需要预先安装JDK8)
tar xzvf logstash.5.2.2.tar.gz
(2)cd到Logstash的根目录,并执行启动命令如下:
cd logstash-5.2.2
bin/logstash -e 'input { stdin { } } output { stdout {} }'
(3)此时Logstash已经启动成功,-e表示在启动时直接指定pipeline配置,当然也可以将该配置写入一个配置文件中,然后通过指定配置文件来启动
(4)在控制台输入:hello world,可以看到如下输出:
{
"@version" => "1",
"host" => "localhost",
"@timestamp" => 2019-06-25 T08:39:38.514Z,//入库时间相差八个小时
"message" => "hello world"
}
Logstash会自动为数据添加@version, host, @timestamp等字段
在这个示例中Logstash从标准输入中获得数据,仅在数据中添加一些简单字段后将其输出到标准输出。
logstash连接kafka和es
cd logstash-5.2.2
mkdir conf
vi conf/kafka-es.conf
input{
kafka {
bootstrap_servers => ["192.168.2.176:9092"]
group_id => "hhpleasant"
topics => ["test1"]
consumer_threads => 5
decorate_events => true
codec => "json"
auto_offset_reset => "latest"
}}
filter {
ruby {
code => "event.timestamp.time.localtime" //修正时间
}
}
output{
elasticsearch{
action=> "index"
index => "%{[type]}"
hosts => "192.168.2.176:9200"
}
stdout{codec => rubydebug}
}
启动logstash
bin/logstash -f conf/kafka-es.conf