手动输入log,终端打印出消息
/opt/logstash/bin/logstash -e 'input{stdin{}}output{stdout{codec=>rubydebug}}'
然后你会发现终端在等待你的输入。没问题,敲入 test_str,回车,返回下面的结果就是OK的!
从test.conf文件中写入
一、最基础终端输入输出
input {
stdin {
add_field => {"key" => "value"} #加上新的字段
codec => "plain"
tags => ["add"]
type => "std"
}
}
output {
stdout {
codec => rubydebug
}
}
然后运行:
/opt/logstash/bin/logstash -f /opt/conf/test.conf --config.reload.automatic
显示结果:
二、加上过滤filter,可以移除或者格式化成想要的格式的消息
input {
stdin{
add_field => {"key" => "value"}
codec => "plain"
tags => ["add"]
type => "std"
}
}
filter{
date{
match => ["datetime", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
mutate {
# 移除不需要看到的消息
remove_field => ["host", "tags", "@version", "type"]
}
}
output {
stdout {
codec => rubydebug
}
}
TIPS:
- host 标记事件发生在哪里。
- type 标记事件的唯一类型。
- tags 标记事件的某方面属性。这是一个数组,一个事件可以有多个标签。
三、输入到elasticsearch中,并且在kabana中展示数据。
input {
stdin {
type => "test"
tags => ["wq"]
}
}
filter{
date{
match => ["datetime", "yyyy-MM-dd HH:mm:ss,SSS"]
target => "@timestamp"
}
}
output {
if "wq" in [tags] {
elasticsearch {
index => "log-2019-12-20_wang"
hosts => ["127.0.0.1:9200"]
}
stdout {
codec => rubydebug
}
}
}
终端正常打印