1、安装
这里是logstash7.3.1版本的。官方文档:https://www.elastic.co/guide/en/logstash/7.6/introduction.html
下载ZIP连接:https://artifacts.elastic.co/downloads/logstash/logstash-7.3.1.zip
需要Java环境,下载后解压。
2、初步学习
解压后目录。
image.pngconfig是放置配置文件。
bin是二进制脚本,包括用来启动Logstash的logstash和用来安装插件的logstash-plugin。
3、demo:
初步了解后,这儿先测试下从文件读取后输出到控制台。打开config文件夹,复制logstash-sample.conf 一份重命名为logstash.conf。打开logstash.conf。写入配置:
image.png
文件路径为绝对路径。
4、修改完后可以测试下配置文件:
打开命令行,跳到bin目录下运行 ./logstash -f ../config/logstash.conf -t。
image.png5、启动: ./logstash -f ../config/logstash.conf
成功输出:
输出后结束进程就行。本来想着多试几次,但是第二次运行,半天也没有输出,还以为是出问题了。找到一篇文章知道了原因:https://blog.51cto.com/zhangtaoze/1917274。看来测试的时候,文件内容必须改变下,不然一时半会也输不出来。
Logstash在输出内容中会给事件添加一些额外信息。比如@version、host、@timestamp都是新增的字段,而最重要的是@timestamp,用来标记事件的发生时间。由于这个字段涉及到Logstash内部流转,如果给一个字符串字段重命名为@timestamp的话,Logstash就会直接报错。另外,也不能删除这个字段。还有一个字段type,表示事件的唯一类型。tags,表示事件的某方面属性。
6、过滤掉输出的多余字段:
修改配置文件 如下:
input {
file {
path => ["/xxx/1.txt"]
type => "system"
start_position => "beginning"
}
}
filter {
mutate {
remove_field => ["@version","path","host","type","@timestamp"]
}
}
output {
stdout {}
}
结果:
image.png
网友评论