logstach安装

https://www.elastic.co/guide/en/logstash/current/index.html
首先下载logstash,上传到服务器

logstash是用JRuby语言开发的,所以要安装JDK

解压:
tar -zxvf logstash-2.3.1.tar.gz -C /bigdata/

无需配置

启动:
bin/logstash -e 'input { stdin {} } output { stdout{} }'
bin/logstash -e 'input { stdin {} } output { stdout{codec => rubydebug} }'
bin/logstash -e 'input { stdin {} } output { elasticsearch {hosts => ["192.168.88.211:9200"]} stdout{} }'
bin/logstash -e 'input { stdin {} } output { elasticsearch {hosts => ["192.168.88.212:9200", "192.168.88.213:9200"]} stdout{} }'

bin/logstash -e 'input { stdin {} } output { kafka { topic_id => "test1" bootstrap_servers => "192.168.88.81:9092,192.168.88.82:9092,192.168.88.83:9092"} stdout{codec => rubydebug} }'

============================================================================================

以配置的形式;

vi logstash-kafka.conf

input {
file {
path => "/root/data/test.log"
discover_interval => 5
start_position => "beginning"
}
}

output {
kafka {
topic_id => "test1"
codec => plain {
format => "%{message}"
charset => "UTF-8"
}
bootstrap_servers => "node01:9092,node02:9092,node03:9092"
}
}

#启动logstash
bin/logstash -f logstash-kafka.conf



------------------------------------------------

vi logstash-es.conf

input {
file {
type => "gamelog"
path => "/log/*/*.log"
discover_interval => 10
start_position => "beginning"
}
}

output {
elasticsearch {
index => "gamelog-%{+YYYY.MM.dd}"
hosts => ["node01:9200", "node02:9200", "node03:9200"]
}
}

#启动logstash
bin/logstash -f logstash.conf


bin/logstash -e '
input { stdin {} }
filter {
grok {
match => { "message" => "%{IP:client} %{WORD:method} %{URIPATHPARAM:request} %{NUMBER:bytes} %{NUMBER:duration}" }
}
}
output { stdout{codec => rubydebug}
}'

ELK技术栈:https://www.elastic.co/
E:ElasticSearch(ES) 主要是用来做数据存储和检索, 实现语言:java 是开源免费的
L:Logstach 数据采集 实现语言:JRuby 是开源免费的
K:Kibana 数据展示 实现语言:JavaScript和少量的java语言 不开源,部分功能免费
Echarts http://echarts.baidu.com/(可以学习一下)

Logstach 比较Flume:
Logstach:
安装包体积小而且搭建方便,配置简单
有数据清洗过滤的功能,通过Filter组件可以实现数据的清洗
与ES无缝结合
可以容错:能实现断点续传的功能
主要是用于获取日志数据

Flume:
在高可用方面是优于LogStash的
Flume比较看重的是数据传输的安全性,在数据传输的过程通过事物控制的
多数用与多类型数据的获取

组件:
Logstash: input filter output
Flume: source channel sink

你可能感兴趣的:(java)