如何使用logstash使用Mobile_Number添加基于手机号码的国家/地区名称字段

Posted

技术标签:

【中文标题】如何使用logstash使用Mobile_Number添加基于手机号码的国家/地区名称字段【英文标题】:How to add country name field based on mobile number using Mobile_Number using logstash 【发布时间】:2022-01-01 23:29:27 【问题描述】:

我的 txt 文件中的日志包含以下字段。我想从手机号码中提取国家代码并创建(翻译)为名为 country 的新字段。

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

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

请向我建议它是否适用于至少一个国家/地区代码,以便它可以翻译为其他国家/地区代码,因为所有国家/地区代码都是唯一的。

日志-

Mobile_Number: 201123123123User_id<....>
Mobile_Number: 971123123123User_id<....>

logstash 过滤器-

filter
 grok 
        break_on_match => false
        match => 
            "message" => [
               "Mobile_Number: (?<Mobile_Number>[0-9]+)",
               "User_id(?<User_id>[0-9]+)"
                ]
           

我发现这个话题是关于在 google phone lib 中使用 ruby​​ 代码讨论弹性的,如果有任何解决方法是可能的,除了这将是非常可观的。

Discuss Elastic-logstash-link-fileds-in-aggregate-filter

在此先感谢您。

【问题讨论】:

【参考方案1】:

使用 logstash 创建新字段,例如“Country_Code”和“Country_Name”并根据“Mobile_Number”字段丰富它可以使用 Ruby 使用 phonelib 库完成,如前面回复的链接所述。

但简单的方法是使用 python 脚本并解析“Mobile_Number”字段并使用 phone number library 创建新字段。

它有 98% 的准确率,并且可以通过使用 Elasticsearch helpers 的批量更新 API 来提高富集速度

参考链接- es bulk helper examples

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

【讨论】:

以上是关于如何使用logstash使用Mobile_Number添加基于手机号码的国家/地区名称字段的主要内容,如果未能解决你的问题,请参考以下文章

Logstash:如何使用 Logstash 解析并摄入 JSON 数据到 Elasticsearch

Logstash 2.3.4如何使用logstash-jdbc插件在Elasticsearch中加载嵌套文档

如何使用 Logstash 和 rabbitmq 输出设置内容类型?

如何使用Logstash

如何使用 logstash 处理跨行日志 ?

如何使用logstash将Mysql数据迁移到elasticsearch