【问题标题】:Plot a Tile map with the ELK stack使用 ELK 堆栈绘制 Tile 地图
【发布时间】:2017-02-16 15:14:39
【问题描述】:

我正在尝试使用 Kibana 创建一个平铺地图。我的 conf 文件 logstash 可以正常工作并生成 Kibana 绘制瓦片地图所需的所有内容。这是我的配置日志:

input {
    file {
            path => "/home/ec2-user/part.csv"
            start_position => "beginning"
            sincedb_path => "/dev/null"
    }
}

filter {

    csv {
            separator => ","
            columns => ["kilo_bytes_total","ip","session_number","request_number_total","duration_minutes_total","referer_list","filter_match_count_avg","request_number_avg","duration_minutes_avg","kilo_bytes_avg","segment_duration_avg","req_by_minute_avg","segment_mix_rank_avg","offset_avg_avg","offset_std_avg","extrem_interval_count_avg","pf0_avg","pf1_avg","pf2_avg","pf3_avg","pf4_avg","code_0_avg","code_1_avg","code_2_avg","code_3_avg","code_4_avg","code_5_avg","volume_classification_filter_avg","code_classification_filter_avg","profiles_classification_filter_avg","strange_classification_filter_avg"]

    }



    geoip {

        source => "ip"
        database => "/home/ec2-user/logstash-5.2.0/GeoLite2-City.mmdb"
        target => "geoip"
        add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ]
        add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ]
        add_tag => "geoip"

    }


    mutate {

    convert => [ "[geoip][coordinates]", "float"]

    }
}

output {

    elasticsearch {

    index => "geotrafficip"
    }
}

这就是生成的:

看起来很酷。试图创建我的瓦片地图,我有这个消息:

怎么办?

看来我必须在某处添加使用动态模板的可能性。我应该创建一个模板并将其添加到我的文件 conf logstash 吗?

谁能给我一些反馈?谢谢!

【问题讨论】:

    标签: elasticsearch logstash kibana elastic-stack logstash-configuration


    【解决方案1】:

    如果您查看索引的 Kibana 设置,您至少需要一个字段类型为 geo_point 才能显示地图上的任何内容。

    如果您还没有geo_point 字段,则需要在为geoip.coordinates 字段设置适当的映射后重新索引您的数据。例如:https://stackoverflow.com/a/42004303/2785358

    如果您使用的是相对较新的 Elasticsearch 版本(2.3 或更高版本),重新索引数据相对容易。您需要使用正确的映射创建新索引,使用重新索引 API 将数据复制到新索引,删除原始索引,然后重新索引回原来的名称。

    【讨论】:

      【解决方案2】:

      您使用了错误的geoip 过滤器并试图将经度和纬度转换为浮点数。摆脱您的 mutate 过滤器并将 geoip 过滤器更改为此。

      geoip {
          source => "ip"
          fields => ["latitude","longitude"]
          add_tag => "geoip"
      }
      

      这将创建适当的字段。以及所需的 GeoJSON 对象。

      【讨论】:

        猜你喜欢
        • 2018-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多