【问题标题】:How to compare IP addresses in Kibana script fields with CIDR notation?如何将 Kibana 脚本字段中的 IP 地址与 CIDR 表示法进行比较?
【发布时间】:2020-03-16 16:23:34
【问题描述】:

是否可以创建一个使用 CIDR 表示法比较 IP 地址值的 Kibana 脚本字段?或者我可以通过正则表达式匹配来做到这一点,将 IP 字段视为字符串?

例如,我想返回 netflow 数据中的所有外部地址,以用于另一种情况。数据有source.ip 和destination.ip。我的网络是 192.168.0.0/24,我想要所有其他不同的地址。

以下比较无效(仅作为示例)。

if (doc['source.ip'].value == "192.168.0.0/24") { 
    return doc['destination.ip'].value;
} else {
    return doc['source.ip'].value;
}

谢谢。

【问题讨论】:

  • 1.在logstash中这样做更好 2.设置一个标志表明IP是反向的 3.我正在尝试
  • 我没有使用logstash。我正在使用 filebeat 并且流直接插入到弹性搜索中。

标签: elasticsearch kibana


【解决方案1】:

es 脚本字段 IP 只是字符串类型,所以......它只是 eg.

if (doc['source.ip'].value.indexOf('192') || doc['source.ip'].value.indexOf('172.16') || 
|| ... || doc['source.ip'].value.indexOf('172.31')) { # if you want more...
    return doc['destination.ip'].value;
} else {
    return doc['source.ip'].value;
}

我们也有类似的情况,在logstash中加个flag表示连接反了。

【讨论】:

  • 目标不是检测保留地址。我想检测任何类别的地址(在我的情况下,所有不属于我的地址)。所以,这就是为什么我要使用 CIDR 表示法而不是字符串来进行比较。
猜你喜欢
  • 2012-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-11
  • 2015-05-17
相关资源
最近更新 更多