我有以下拓扑:
rsyslog 客户端 -> logstash 服务器 -> elasticsearch & 另一个 logstash & alienvault & 本地文件
问题是 alienvault 只需要原始消息,不需要任何 json 字段。我怎样才能只向 alienvault 发送“消息”字段的值?
到目前为止我已经做了类似的事情: - 在 logstash 中,在过滤器中我配置了 clone { clones => ["alien"] }。 - 所有剩余的过滤都在此行之上 - 在所有其他过滤之后我有类似的...if [type] == "alien" -> mutate -> remove_field (除了 [type] 之外的所有字段; - 在 logstash 输出中我有 if [type] == "alien" udp {host、port 等}
但 AlienVault 仍然收到如下信息:
8 月 31 日 17:01:41 {"message": "8 月 31 日 09:01:35 bkp1 sshd[10538]: 来自端口 ","type":"alien"}
我希望 AlienVault 能够收到“8 月 31 日 09:01:35 bkp1 sshd[10538]: 来自端口的连接”
使用 logstash 可以实现这个吗?
谢谢
答案1
好的,两天后我终于搞明白了(以防其他人需要这个)。这是 AlienVault 的输出:
tcp { 主机 => "" 端口 => "" 消息格式 => "%{消息}" 编解码器 => 行 { 格式 => "%{消息}" } }
PS,我认为您需要它是 tcp,因为您需要 udp 输出上不可用的“message_format”。