我一直试图使用logstash
通过redis
将数据从IntelMQ
传递到{
其中一个问题是,我在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
配置如下:
显然,我需要重新编写filter
指令。我虽然使用kv logstash滤波器,但是u标记使这种方法无效。在
如果不是unicode标记,我会试试这个:
filter {
kv {
source => "message"
field_split => ", "
trim => "\'"
}
}
Grok规则并没有完全排除,但是字段各不相同,这将迫使我根据“feed”字段为每个不同的bot编写一个规则。在
我很想破解IntelMQ源代码以去除unicode标记,但是我会深入了解您的意见,看看是否有更有效的方法来处理这些数据。在
我也不太熟悉logstash
,如何避免它在redis中为每个新的生成一个条目,并将其全部放回一条消息中,elasticsearch
将知道所有不同的变量?在
你有什么建议吗?在
我的建议是:使用^{} 过滤器来删除}字符。这将产生一个干净的字符串,您可以通过
u
和{kv
过滤器运行该字符串。在你会得到这样一个很好的活动:
^{pr2}$相关问题 更多 >
编程相关推荐