我正在摄取许多日志,包括 / var / log / syslog , / var / log / messages ,还有一些通用事件格式(CEF)的专有日志)以及其他各种格式的专有日志。这些日志的条目从运行在各个节点上的Filebeat拍摄到Logstash,例如:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/messages
- /var/log/syslog
- /var/log/acme/audit.log
- /var/log/acme/debug.log
- /var/log/acme/console.log
我为这些更专有的日志编写了dissect
过滤器。每个过滤器本身都能正常工作,将消息字段重新映射,将键值对爆炸,直至达到我想要的效果。
我不知道该怎么做,将Logstash配置为同时激活所有这些dissect
过滤器,方法是通过按文件系统路径(或来源)在正确的dissect
代码日志上运行一个日志),或者注意到一个dissect
子句失败,然后尝试使用另一个子句。
可以按照我暗示的方式在Logstash中完成此操作吗?如果不是,那么Filebeat中是否有配置可以在日志条目到达Logstash之前对其进行区分,以使Logstash为不同的日志条目运行不同的筛选器?
答案 0 :(得分:1)
(不知道为什么baudsp没有将他的评论作为答案,但我将使其更加完整。)
该解决方案在Elastic文档中 https://www.elastic.co/guide/en/beats/filebeat/current/exported-fields-log.html。用来说明在任何给定情况下哪些字段可用的方法日志是: