logstash:试图理解IntelMQ在ElasticSearch中传递的字符串

2024-10-02 00:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直试图使用logstash通过redis将数据从IntelMQ传递到{}5.0。在

其中一个问题是,我在elasticsearch侧的一个名为message的字段中大量接收这个字符串。在

{u'feed': u'openbl', u'reported_source_ip': u'115.79.215.79', u'source_cymru_cc': u'VN', u'source_time': u'2016-06-25T11:15:14+00:00', u'feed_url': u'http://www.openbl.org/lists/date_all.txt', u'taxonomy': u'Other', u'observation_time': u'2016-11-20T22:51:25', u'source_ip': u'115.79.215.79', u'source_registry': u'apnic', u'source_allocated': u'2008-07-17', u'source_bgp_prefix': u'115.79.192.0/19', u'type': u'blacklist', u'source_as_name': u'VIETEL-AS-AP Viettel Corporation, VN', u'source_asn':u'7552'}

不幸的是,我们CERT社区的特定fork是基于python2.7的,因此无法迁移到python3.0中的新fork,以轻松地去除字符串之前的unicode标记。在

我现在的logstash配置如下:

^{pr2}$

显然,我需要重新编写filter指令。我虽然使用kv logstash滤波器,但是u标记使这种方法无效。在

如果不是unicode标记,我会试试这个:

filter {
  kv {
    source => "message"
    field_split => ", "
    trim => "\'"
  }
} 

Grok规则并没有完全排除,但是字段各不相同,这将迫使我根据“feed”字段为每个不同的bot编写一个规则。在

我很想破解IntelMQ源代码以去除unicode标记,但是我会深入了解您的意见,看看是否有更有效的方法来处理这些数据。在

我也不太熟悉logstash,如何避免它在redis中为每个新的生成一个条目,并将其全部放回一条消息中,elasticsearch将知道所有不同的变量?在

你有什么建议吗?在


Tags: 数据字符串标记ipredissourcemessagetime
1条回答
网友
1楼 · 发布于 2024-10-02 00:23:41

我的建议是:使用^{}过滤器来删除u和{}字符。这将产生一个干净的字符串,您可以通过kv过滤器运行该字符串。在

filter {
  mutate {
    gsub => [
       "message", "{", "",
       "message", "}", "",
       "message", "u'", "", 
       "message", "',", ",", 
       "message", "':", ":"
    ]
  }
  kv {
    source => "message"
    field_split => ", "
    value_split => ": "
  }
}

你会得到这样一个很好的活动:

^{pr2}$

相关问题 更多 >

    热门问题