logstash下载地址 https://www.elastic.co/cn/downloads/past-releases
例如 https://artifacts.elastic.co/downloads/logstash/logstash-5.2.2.tar.gz
安装及部署
一、环境配置
-
操作系统:Cent OS
-
jdk:1.8 要注意版本的匹配和logstash
二、操作过程
1、下载指定版本的logstash并解压
下载地址:https://artifacts.elastic.co/downloads/logstash/logstash-5.2.2.tar.gz
2、运行测试
在终端中,像下面这样运行命令来启动 Logstash 进程:
进入logstash的bin目录 cd logstash-2.1.1/bin
执行命令 ./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
然后你会发现终端在等待你的输入。没问题,敲入 Hello World,回车,然后看看会返回什么结果!
./logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
hello world
{
"message" => "hello",
"@version" => "1",
"@timestamp" => "2019-04-11T09:28:31.619Z",
"host" => "hadoop1"
}
没错!你搞定了!
3、简单场景-监控日志文件并以消息形式输出至Kafka
-
定义一个stdout_kafka.conf文件,配置内容为
input
{
file {
path => ["/var/log/diagonAlley/diagonAlley.log"]
type => "log4j"
start_position => "beginning"
}
}
output
{
kafka {
bootstrap_servers => "192.168.1.181:9092,192.168.1.181:9093,192.168.1.181:9094" //kafka集群
topic_id => "logstash"
compression_type => "gzip"
}
}
-
将stdout_kafka.conf文件放至bin目录
-
运行如下命令,并查看控制台输出
./logstash -f stdout_kafka.conf &
4、简单场景-监控Kafka消息并输出值Elasticsearch
-
定义一个stdout_elasticsearch.conf文件,配置内容为
input
{
kafka {
zk_connect => "192.168.1.181:2181" //kafka地址
topic_id => "logstash"
}
}
output {
elasticsearch {
hosts => ["192.168.1.181:9100"]
index => "logstash-%{type}-%{+YYYY.MM.dd}" //elasticsearch地址
workers => 5
}
}
-
将stdout_elasticsearch.conf文件放至bin目录
-
运行如下命令,并查看控制台输出
./logstash -f stdout_elasticsearch.conf &
除了上面这些,官网还有很多的例子,也很容易理解
地址 https://www.elastic.co/guide/en/logstash/current/config-examples.html
一般的过程是,
1、新建一个.conf的文件(包含你采集的目录,过滤的条件,输出地址),
2、再执行命令 ./logstash -f conf文件的地址 就可以了