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

How to add country name field based on mobile number using Mobile_Number using logstash

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

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

20是埃及的国家代码,971是埃及的国家代码bahrain.I想对所有国家代码都这样做。

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

log-

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 代码讨论 elastic 的主题,如果有任何解决方法是可能的,除非这将是非常值得赞赏的。

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

提前致谢。

使用 logstash 创建新字段,例如“Country_Code”和“Country_Name”,并基于“Mobile_Number”字段丰富它,可以使用 Ruby 完成如前所述使用 phonelib 库回复 link.

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

它具有 98% 的准确性,并且可以通过使用 Elasticsearch helpers

使用批量更新 API 来提高浓缩速度

参考 link- 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