下载
官网:https://www.elastic.co/cn/downloads/logstash
因为我的是mac系统,所以选择下载ZIP版本
运行
在项目目录下新建logstash.conf
input { stdin { } }
output {
stdout { codec => rubydebug }
}
该配置的意思是从控制台输入和输出信息。
在logstash路径下运行
bin/logstash -f logstash.conf
可以在控制台中看到logstash已经成功运行
[2020-07-08T20:23:38,204][INFO ][logstash.agent ] Successfully started Logstash API endpoint {:port=>9600}
输入
abc
将打印信息
{
"host" => "Janey-deMacBook-Pro.local",
"@version" => "1",
"message" => "abc",
"@timestamp" => 2020-07-08T12:23:44.922Z
}
到此,logstash已可以使用了
input
数据在logstash中使用input+filter+output形成的管道对数据进行处理。
为了对logstash快速上手,我们只抽出logstash pipeline部分研究。
为了不用每次都手动输入信息,我们配置以下input。
拷贝一份iis,配置input
input {
file {
path => "/Users/janeydeng/projects/ELK/mock_logs/*.log"
start_position => "beginning"
}
}
output {
stdout { codec => rubydebug }
}
在测试参数的过程中,删除掉$home目录下的data文件夹,否则,数据已经写入.sincedb,我们将不能在shell中看到打印出来的信息
在shell中,我们可以看到以下的打印信息
{
"host" => "Janey-deMacBook-Pro.local",
"path" => "/Users/janeydeng/projects/ELK/mock_logs/u_ex200601.log",
"@timestamp" => 2020-07-08T17:03:18.362Z,
"@version" => "1",
"message" => "2020-06-01 00:00:00 192.168.0.9 GET /InfoplayAPI/Hehex/te02-6325 format=json 80 - 192.168.0.10 Mozilla/5.0+(Windows;+U;+Windows+NT+5.1;+zh-CN;+rv:1.9.2)+Gecko/20100115+Firefox/3.6 - 200 0 0 265\r"
}
{
"host" => "Janey-deMacBook-Pro.local",
"path" => "/Users/janeydeng/projects/ELK/mock_logs/u_ex200601.log",
"@timestamp" => 2020-07-08T17:03:18.359Z,
"@version" => "1",
"message" => "#Version: 1.0\r"
}
file插件可以过滤某些文件却无法过滤掉某一行(VS filebeat),所以log文件中的注释也会被解析出来。