1、logstash安装准备
logstash是基于java语言开发,所以先安装JDK。logstash 7 目前只支持 Java8 或者 Java 11,安装前确认JDK版本是否正确
2、安装配置
[root@localhost app]# tar xf logstash-7.12.1-linux-x86_64.tar.gz
[root@localhost app]# mv logstash-7.12.1 logstash
logstash启动命令位于安装路径的bin目录中,直接启动会报错,需要按照如下方式提供参数:
logstash -e "input {stdin {}} output {stdout {}}"
启动时应注意以下两点:
> 在Windows下使用logstash.bat;
> -e 参数后面需要使用双引号,否则会报错
如果在命令行启动日志中看到 “Successfully started Logstash API endpoint {:port=>9600}” ,就说明启动成功,上面命令行定义的是一个标准输入插件(即 stdin)和一个标准输出插件(即 stdout),意思就是从命令行提取输入,并从命令行直接将提取的数据输出,我们可以测试下,启动后如下图,界面在等待输入;
输入”hello world“ 后,会返回结果如下:
3、连接 Elasticsearch
logstash可以通过命令行并使用 -e 参数传入配置字符串,指定了标准输入 stdin 插件和 stdout 插件,但在实际应用中,通常使用配置文件指定插件,配置文件的语法形式与命令行相同,要使用的插件使用过插件名称来指定,一般配置文件均放置到部署目录的config目录中,如下在配置中一个名为std_es.conf的文件,具体配置如下:
启动命令:./logstash -f ../config/std_es.conf
5、filebeat 连接logstash
修改filebeat.yml
配置logstash配置文件:
[root@localhost logstash]# cat config/beats_es.conf
input {
beats {
port => 9600
}
}
output {
elasticsearch {
hosts => ["192.168.53.21:9200","192.168.53.22:9200"]
index => "nginx-%{+yyyy.MM}"
}
}
其中input 中对应的端口,要与filebeat设置的监听端口一致
6、启动服务
首先需要先启动 logstash 的服务
[root@localhost logstash]# nohup ./bin/logstash -f config/beats_es.conf >/dev/null &
接下来启动filebeat服务,再去elasticsearsh-head中查看数据是否被传输过来