首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用logstash使用Mobile_Number添加基于移动号码的国家名字段

如何使用logstash使用Mobile_Number添加基于移动号码的国家名字段
EN

Stack Overflow用户
提问于 2021-11-23 13:04:42
回答 2查看 98关注 0票数 0

我在txt文件中的日志包含下面的字段。我想要从移动号码中提取国家代码,并创建(翻译)到新的领域称为国家。

我检查了翻译过滤器,但没有得到如何从移动号码字段提取国家代码数字,以使用它在翻译过滤器。

20是埃及的国家代码,971是巴哈马的国家代码,我想对所有的国家代码都这样做。

请给我建议,如果它是可行的至少一个国家的代码,以便它可以翻译为其他人,因为所有的国家代码是独特的。

原木-

代码语言:javascript
复制
Mobile_Number: 201123123123User_id<....>
Mobile_Number: 971123123123User_id<....>

原木过滤器-

代码语言:javascript
复制
filter{
 grok {
        break_on_match => false
        match => {
            "message" => [
               "Mobile_Number: (?<Mobile_Number>[0-9]+)",
               "User_id(?<User_id>[0-9]+)"
                ]
           }}}

我在google lib中找到了关于讨论弹性使用ruby代码的这个主题,如果有任何解决办法的话,这将是非常值得赞赏的。

浅谈

提前谢谢你。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-11 17:36:57

使用logstash创建诸如"Country_Code“和"Country_Name”这样的新字段,并根据"Mobile_Number“字段丰富这些字段,可以使用Ruby使用phonelib库来完成,就像前面提到的答复的链接一样。

但简单的方法是使用python脚本并解析"Mobile_Number“字段,并通过电话号码库创建新的字段。

它具有98%的准确度,使用Elasticsearch助手的批量更新API可以提高富集速度。

参考链接- es大容量助手示例

https://discuss.elastic.co/t/how-to-add-country-name-field-based-on-mobile-number-using-mobile-number-using-logstash/289588

票数 0
EN

Stack Overflow用户

发布于 2022-11-10 13:18:10

您可以使用下面的ruby代码将convery电话号码用于国家代码。

代码语言:javascript
复制
    gem 'phonelib'

require "phonelib"

def filter(event)
      s = Phonelib.parse(event.get("phonenumber"))
      event.set("CountryCode" , s.country)
end

调用logstash.conf文件中的代码,如下所示

代码语言:javascript
复制
 ruby {
      path =>  "/opt/bitnami/logstash/config/sam.rb"
      }

您将得到国家代码,例如美国的美国

确保在Gemfile中添加phonelib

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70081443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档