如何在logstash中写入filter conf文件,以读取带有"|&引用;seperator和key=value

如何在logstash中写入filter conf文件,以读取带有"|&引用;seperator和key=value,logstash,Logstash,我的日志文件如下所示: loc=846|time=2012-12-18 12:59:36|action=drop|orig=129.3.70.1|i/f_dir=inbound|i/f_name=eth1|has_accounting=0|uuid=<00000000,00000000,00000000,00000000>|product=VPN-1 & FireWall-1|__policy_id_tag=product=VPN-1 & FireWall-1[db_

我的日志文件如下所示:

loc=846|time=2012-12-18 12:59:36|action=drop|orig=129.3.70.1|i/f_dir=inbound|i/f_name=eth1|has_accounting=0|uuid=<00000000,00000000,00000000,00000000>|product=VPN-1 & FireWall-1|__policy_id_tag=product=VPN-1 & FireWall-1[db_tag={8831AF0A-6B32-11E3-869E-000000000D0D};mgmt=sc-tog;date=1387735052;policy_name=Standard]|src=192.168.100.2|s_port=60184|dst=198.41.0.4|service=53|proto=udp|rule=15
loc=846 | time=2012-12-18 12:59:36 | action=drop | orig=129.3.70.1 | i/f | dir=inbound | i/f | name=eth1 | has | accounting=0 | uuid=| product=VPN-1和FireWall-1 | id | | policy | tag product=VPN-1和FireWall-1[db | tag tag product=VPN-1和FireWall-1[db | tag tag=dbn-1]|src=192.168.100.2 | s|U端口=60184 | dst=198.41.0.4 |服务=53 |协议=udp |规则=15
我希望此日志将被指定为键值json,以便将其保存在elasticsearch中。 我正在使用logstash,我将日志保存在一个文件中 sperator是“|”字符

我不知道如何在logstash conf文件中编写过滤器来读取此日志 日志存储的conf文件应该是什么样子的使用:

如果键/值拆分成功,您可能需要删除
消息
字段,另外还需要使用以下命令解析
时间
字段中的时间戳:

您可能还需要将一些字段从字符串字段转换为整数字段。为那件事钉上一个钉子

mutate {
  convert => {
    "loc" => "integer"
    "rule" => "integer"
    "s_port" => "integer"
    "service" => "integer"
  }
}

这正是我想要的,你的回答也给了我奖金。马格纳克斯回来了。。。你让我开心:)
filter {
  kv {
    field_split => "|"
    remove_field => ["message"]
  }
  date {
    match => ["time", "YYYY-MM-dd HH:mm:ss"]
    remove_field => ["time"]
  }
}
mutate {
  convert => {
    "loc" => "integer"
    "rule" => "integer"
    "s_port" => "integer"
    "service" => "integer"
  }
}