我是 Logstash 的新手,我正在尝试了解输入、过滤器和输出如何协同工作。我知道有多种输入、过滤器和输出,但我不知道 Logstash 如何在内部处理消息。
假设我配置了一个 syslog 输入,并且我希望将 syslog 事件作为 GELF 发送到日志索引。我可以使用 syslog 输入,也可以使用 GELF 输出。但是,我是否有责任(使用过滤器)根据来自 syslog 事件的值填充正确的 GELF 字段?
我是否应该将事件(来自输入过滤器)视为具有命名字段(某种键:值数组)的实体,然后使用过滤器来确保输出可以获取正确的数据?
正如 Jordan Sissel 所说,将其视为类固醇上的管道,在输入和输出之间,您可以对事件做您想做的事情,您可以使用grok将部分消息与字段名称匹配,或者您可以使用mutate删除字段,正则表达式样式文本替换,添加或删除标签。一旦您将数据格式化为您想要的格式,您就可以将其发送到您的输出。