我正在尝试从logstash进程的事件中获取主机名,如果事件符合条件,我希望将主机名发送到另一个文件。但同时该事件应该发送到elasticsearch输出。
我们的想法是将主机名分配给变量,如果满足“if”条件,则将变量值发送到文件。
使用logstash可以实现吗?
此致 拉夫
答案 0 :(得分:3)
是的,你想要的东西在Logstash中是可行的。 Logstash站点包含配置格式的文档,以及可在http://logstash.net/docs/1.4.0/找到的所有可用插件。您可能希望使用grok filter来提取主机名,并使用file output来写入数据。
这是一个示例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文档包含您可以使用的默认模式集的链接。