为什么要用logstash
logstash是Elastic 公司旗下的一款日志搜索收集产品,著名的ELK架构的中L就是logstash,它可以用于多个不同源的输入输出,比如输入/输出端都可以是控制台、文件、web应用、ES数据库、mysql数据库等等;因为logstash依赖于ES,所以启动顺序ELK:首先启动ES ,然后启动logstash ,最后启动kibana
elasticsearch实操(默认端口9200)
启动
下载并解压es的安装包:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.7-windows-x86_64.zip,
进入bin目录并cmd输入“elasticsearch”,然后浏览器输入http://localhost:9200/可以看到信息
logstash实操(默认端口9600)
启动
选择不同平台的包进行安装,这里选择windows版本安装:https://artifacts.elastic.co/downloads/logstash/logstash-7.17.7-windows-x86_64.zip,
控制台作为输入输出
-e 是 以命令行运行logstash, -f 以配置文件运行logstash,codes 为指定输出数据格式,在bin目录下,cmd输入指令:logstash -e “input {stdin {}} output {stdout {codec => ‘json’}}”
回车后看到logstash启动成功,浏览器输入http://localhost:9600/,会看到启动成功输出的信息;
然后控制台作为输入端随意输入内容,logstash会反向输出json格式的数据给你:
控制台作为输入,web应用作为输出
启动一个springboot应用并增加一个/logstash/text的接口:
在config目录下配置logstash-http.conf文件:
# 控制台输入,应用输出
input {
stdin {
codec => plain{
charset=>"GB2312"
}
}
}
output {
http {
##应用接口访问方式
http_method => "post"
##api接口路径
url => "http://localhost:8088/demo-test/logstash/text"
##输出的数据格式
format => "message"
message => "%{message}"
headers => ["accept","application/json"]
codec => "json"
}
}
在bin目录下启动logstash-http.conf文件:logstash -f …\config\logstash-http.conf
,启动后在控制台随意输入字符:
然后可以在web应用接收到该字符:
kibana实操(默认端口5601)
启动
下载并解压kibana的安装包:https://artifacts.elastic.co/downloads/kibana/kibana-7.17.7-windows-x86_64.zip,
进入bin目录并cmd输入“kibana.bat”,然后浏览器输入http://localhost:5601/可以看到kibana的登录界面