我是Logstash的新手,我正试图理解input,filter和输出如何一起工作。 我知道有各种各样的input,filter和输出,但是我没有得到的是Logstash如何在内部处理消息。
假设我configuration了一个系统日志input,并且我希望将syslog事件作为GELF发送到日志索引。 有一个我可以使用的系统日志input,还有一个我可以使用的GELF输出。 但是,我的责任(使用filter)基于来自syslog事件的值填充正确的GELF字段?
我是否应该将事件(从inputfilter)看作具有命名字段的实体(对key:value数组进行sorting),然后使用filter来确保输出可以获得正确的数据?
正如Jordan Sissel所说,把它看作是类固醇上的一个pipe道,在input和输出之间你可以按照事件做你想做的事情,你可以使用grok将部分消息匹配到字段名称,或者你可以使用mutate 删除字段 , 正则expression式样式文本replace , 添加或删除标签。 一旦你的数据格式化,你可以把它发送到你的输出。