如何匹配LogStash中的数据一个来自API的数据输入,第二个数据输入了服务器上的CSV文件
我尝试了所有可能的情况,但无法匹配API和CSV文件之间的数据。我的最终目标是从REST API中读取主机密钥,并与CSV文件匹配并打印各自的OS。请建议,如下所示
input{
http{
host => "*****"
port => "****"
type => "api_input"
}
file {
path => "/etc/logstash/conf.d/Event.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
skip_header => "true"
columns => ["server", "os"]
}
if [server] == [result][host] {
mutate { add_field => { "OS_Name" => "%{[os]}" } }
}
else{drop {}}
}
output {
stdout {
codec => rubydebug
}
}
-CSV文件数据: - Server_1,Windows server_2,linux server_3,unix Server_4,Windows
API数据: - {“结果”:[{“ host”:“ server_4”,“参数”:“ 22”}]}
I have tried all possible case but unable to match data between API and CSV file. my ultimate goal is read host key from REST API and matching with CSV file and print respective OS. Please suggest, Configuration as below -
input{
http{
host => "*****"
port => "****"
type => "api_input"
}
file {
path => "/etc/logstash/conf.d/Event.csv"
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter {
csv {
separator => ","
skip_header => "true"
columns => ["server", "os"]
}
if [server] == [result][host] {
mutate { add_field => { "OS_Name" => "%{[os]}" } }
}
else{drop {}}
}
output {
stdout {
codec => rubydebug
}
}
csv file data :-
server_1,Windows
server_2,Linux
server_3,Unix
server_4,Windows
API data :-
{"result":[{"host":"server_4","parameter":"22"}]}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
translate 两列CSV文件中的字段。
The translate filter can do a lookup of a field in a two column CSV file.