【问题标题】:How to convert string field into integer field in ELK?如何将字符串字段转换为 ELK 中的整数字段?
【发布时间】:2019-09-16 22:23:03
【问题描述】:

我正在尝试将字符串中的一个字段转换为整数。我尝试了所有方法来转换,但所有方法都失败了。

我尝试在 Kibana 中使用 painless,Logstash 使用 mutate 过滤器和 Elasticsearch 使用 reindex API。

这是我们的日志:

9 月 13 日 10:37:01 SYSTROMEGGN APP_TRAFFIC: SerialNum=H000D-8D31U-2000P-H0H5Q-E028T GenTime="2019-09-13 10:37:01" 开始时间="2019-09-13 10:36:00" 结束时间="2019-09-13 10:37:00" Category="search-engine" AppName="truecaller" Traffic=31104

默认情况下,所有字段类型都是字符串,但我想要整数的“交通”字段。 这是我的 logstash 配置管道:

input {
     udp {
       port => 5044
       type => "syslog"
     }
}

filter{
      if [type] == "syslog" {
          grok {
            match => { "message" => "% . 
               {SYSLOGTIMESTAMP:syslog_timestamp} %{WORD:syslog_type}% 
               {DATA:syslog_program}:%{GREEDYDATA:syslog_message}" 
            }
          }
          date {
            match => [ "timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
          }
          kv {
            source => "syslog_message"
            value_split => "="
          }
      }
}

output {
  elasticsearch {
      hosts => ["http://192.168.0.62:9200"]
      index => "syslog"
      document_type => "system_logs"
      user=>"elastic"
      password=>"elastic"
  }
  stdout { codec => rubydebug }
}

我希望输出是我的“交通”字段转换为整数类型,但实际输出是字符串类型的“交通”字段。

【问题讨论】:

    标签: elk


    【解决方案1】:

    您可以在您的 logstash 配置中的过滤器内添加一个 mutate 部分。这应该可以工作,请与 mutate 部分分享您的配置,看看它为什么不工作。

      filter{
           -----
           mutate {
               convert => { "your_field_name" => "integer" }
           }
    
       }
    

    【讨论】:

    • 检查 Kibana 索引管理中字段的数据类型?还要检查你的数据是否总是一个数字,你可能会得到 null 或其他一些字符,那么这可能是一个问题。
    • 我在 kibana 索引管理中的字段数据类型是字符串,数据或值始终是数字。
    • 我假设 elasticsearch 将其存储为字符串,因为您的映射是字符串。为什么不能将 Elasticsearch 中的映射更改为数字并查看?此外,如果数据类型是数字,那么您不需要任何变异,Elasticsearch 会将其存储为数字
    • 我在elasticsearch中更改了映射,但出现错误。请告诉我如何将elasticsearch中的映射更改为数字。
    • 您可能应该分享您的属性映射以查看您面临的问题。您可以在此处找到属性映射示例,elastic.co/guide/en/elasticsearch/reference/current/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-09
    • 2016-02-06
    • 2021-06-28
    相关资源
    最近更新 更多