我在txt文件中的日志包含下面的字段。我想要从移动号码中提取国家代码,并创建(翻译)到新的领域称为国家。
我检查了翻译过滤器,但没有得到如何从移动号码字段提取国家代码数字,以使用它在翻译过滤器。
20是埃及的国家代码,971是巴哈马的国家代码,我想对所有的国家代码都这样做。
请给我建议,如果它是可行的至少一个国家的代码,以便它可以翻译为其他人,因为所有的国家代码是独特的。
原木-
Mobile_Number: 201123123123User_id<....>
Mobile_Number: 971123123123User_id<....>
原木过滤器-
filter{
grok {
break_on_match => false
match => {
"message" => [
"Mobile_Number: (?<Mobile_Number>[0-9]+)",
"User_id(?<User_id>[0-9]+)"
]
}}}
我在google lib中找到了关于讨论弹性使用ruby代码的这个主题,如果有任何解决办法的话,这将是非常值得赞赏的。
提前谢谢你。
发布于 2021-12-11 17:36:57
使用logstash创建诸如"Country_Code“和"Country_Name”这样的新字段,并根据"Mobile_Number“字段丰富这些字段,可以使用Ruby使用phonelib库来完成,就像前面提到的答复的链接一样。
但简单的方法是使用python脚本并解析"Mobile_Number“字段,并通过电话号码库创建新的字段。
它具有98%的准确度,使用Elasticsearch助手的批量更新API可以提高富集速度。
参考链接- es大容量助手示例
发布于 2022-11-10 13:18:10
您可以使用下面的ruby代码将convery电话号码用于国家代码。
gem 'phonelib'
require "phonelib"
def filter(event)
s = Phonelib.parse(event.get("phonenumber"))
event.set("CountryCode" , s.country)
end调用logstash.conf文件中的代码,如下所示
ruby {
path => "/opt/bitnami/logstash/config/sam.rb"
}您将得到国家代码,例如美国的美国
确保在Gemfile中添加phonelib
https://stackoverflow.com/questions/70081443
复制相似问题