我正试图从logstash处理的事件中获取主机名,如果事件符合条件,我希望将主机名发送到另一个文件。但与此同时,应该将事件发送到弹性搜索输出。
我的想法是,如果满足"if"条件,则将主机名分配给变量,并将变量值发送到文件。
使用logstash可以做到这一点吗?
谨致问候,Gaurav
是的,您想要的东西可以在Logstash中找到。Logstash网站有配置格式的文档,以及所有可用的插件,可以在http://logstash.net/docs/1.4.0/.您可能希望使用grok过滤器来提取主机名,并使用文件输出来写入数据。
这里有一个confg示例,它可以实现您想要的功能:
input {
#some input
}
filters {
grok {
match => ["message", "%{HOSTNAME:host} rest of message line" ]
add_tag => ["has_hostname"]
}
}
output {
elasticsearch {}
if "has_hostname" in [tags] {
file {
message_format => "%{host}"
path => "path/to/file"
}
}
}
grok模式需要更改以匹配您的数据,logstash文档包括一个链接,即您可以使用的默认模式集。