Kibana中的Coordinate Map地图报索引错误的问题

今天做地图定位展示,展示的是ApacheWeb服务器的访问日志文件中的来源IP。但是中间出现了报错环节,说是索引不能匹配到geo_point类型,实在是不懂这是在说什么,后来在网站找了方法就解决了。主要报错如下:

报错信息:

No Compatible Fields: The "logstash_apachelogs" index pattern does not contain any of the following field types: geo_point”

觉得很是奇怪,再来看看我的配置文件

input {redis {host => "172.16.0.54"port => 6379db => 1password => "123456"data_type => "list"key => "apache_filter_index"codec => json {charset => "UTF-8"}add_field => {"[@metadata][myfulltotal]" => "apacheaccess_log"}}
}filter {if [@metadata][myfulltotal] == "apacheaccess_log" {mutate {gsub => ["message","\\x","\\\x"]}if ( 'method":"HEAD' in [message] ) {drop{}}json {source => "message"add_field => {"[@metadata][direct_ip]" => "%{direct_ip}"}remove_field => "message"remove_field => "prospector"remove_field => "beat"remove_field => "host"remove_field => "input"remove_field => "source"remove_field => "offset"remove_field => "fields"remove_field => "@version"}date {match => ["timestamp","yyyy-MM-dd HH:mm:ss Z"]}mutate {split => ["client_ip",","]}mutate {replace => { "client_ip" => "%{client_ip[0]}"}}mutate {convert => ["body_bytes_sent","integer"]convert => ["total_bytes_sent","integer"]}if [client_ip] == "-" {if [@metadata][direct_ip] not in ["%{direct_ip}","-"]{mutate {replace => { "client_ip" => "%{direct_ip}" }}} else {drop {}}}geoip {source => "client_ip"target => ["geoip"]add_field => ["[geoip][coordinates]", "%{[geoip][longitude]}"]add_field => ["[geoip][coordinates]", "%{[geoip][latitude]}"]}mutate {convert => ["[geoip][coordinates]","float"]}mutate {remove_field => ["direct_ip"]remove_field => ["timestamp"]}}
}
output {if [@metadata][myfulltotal] == "apacheaccess_log" {elasticsearch {hosts => ["172.16.0.51:9200"]index => "logstash_apachelogs"}}
}

看上去都是没有问题的,只要是按照这个格式来写,都没有什么错误。只是在报错信息中看出geo的location类型不是geo_point类型的,那我们通过GET命令查看一下mapping

[root@ELK-chaofeng07 httpd]# curl -XGET http://172.16.0.51:9200/logstash_apachelogs/_mapping/
{"logstash-apachelogs":{"mappings":{"_default_":{"dynamic_templates":,{"string_fields":{"match":"*","m,"@version":{"type":"keyword"},"geoip":{"dynamic":"true","properties":{"ip":{"type":"ip"},"latitude":{"type":"half_float"},"location":{"type":"geo_point"},"longitude":{"type":"half_float"}}}}},"doc":{"dynamic_templates":[{"message_field":{"path_match":"message","match_mapping_type":"string","mapping":{"norms":false,"type":"text"}}},{"string_fields":{"match":"*","match_mapping_type":"string","mapping":{"fields":{"keyword":{"ignore_above":256,"type":"keyword"}},"norms":false,"type":"text"}}}],"properties":{"@timestamp":{"type":"date"},"@version":{"type":"keyword"},"body_bytes_sent":{"type":"long"},"client_ip":{"type":"text","norms":false,"fields":{"keyword":{"type":"keyword",},"continent_code":{"type":"text","norms":false,"fields":{"keyword":{"type":"keyword","ignore_above":256}}},"coordinates":{"type":"float"},"country_code2":{"type":"text","norms":false,"fields":{"keyword":{"type":"keyword","ignore_above":256}}},"country_code3":{"type":"text","norms":false,"fields":{"keyword":{"type":"keyword","ignore_above":256}}},"country_name":{"type":"text","norms":false,"fields":{"keyword":{"type":"keyword","ignore_above":256}}},"ip":{"type":"ip"},"latitude":{"type":"half_float"},"location":{"type":"float"},"longitude":{"type":"half_float"},"region_code":}}}}}}}

看的出来我们此时的location是float类型的。所以如何将它变成geo_point类型是我们的解决目标方法

我们分析一下原因:

  索引格式为logstash_apachelogs日志文件由logstash输出到Elasticsearch;在 elasticsearch 中,所有的数据都有一个类型,什么样的类型,就可以在其上做一些对应类型的特殊操作。geo信息中的location字段是经纬度,我们需要使用经纬度来定位地理位置;在 elasticsearch 中,对于经纬度来说,要想使用 elasticsearch 提供的地理位置查询相关的功能,就需要构造一个结构,并且将其类型属性设置为geo_point。
解决方法:

  Elasticsearch支持给索引预定义设置和mapping,其实ES中已经有一个默认预定义的模板,我们只要使用预定的模板即可。我们要想使用预定义的模板,那么索引名必须匹配 logstash-* 的索引才会应用这个模板,由于我们在logstash中使用的是logstash_*的索引方式,因此并没有匹配默认模板,所以只需要修改一下索引名即可。然后我们就可以看到map不再报这个错误了。

所以说这是个相当不起眼的错误,但是引发了这个大的问题,搞的让人很懵比,所以接下来我们得好好研究一下mapping是什么,

转载于:https://www.cnblogs.com/FengGeBlog/p/10508760.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/536832.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql数据库安装在unix_Linux下的数据库二:在Linux/Unix平台安装MySQL

推荐使用RPM工具来进行Linux下的MySQL数据库安装。目前的MySQLrpm安装文件包是在SuSE Linux7.3系统平台上打造而成的,但是在绝大多数支持RPM和glibc的其他Linux平台中也可以进行安装。如果选择通用的RPM安装包,那么RPM将静态链接到Linux的线程中。下面步…

mysql时区设置gmt_将MySQL数据库时区设置为GMT

不,不可能在MySQL实例中更改单个数据库的时区.您可以检索服务器和客户端time_zone设置:SELECT global.time_zone, session.time_zone;您还可以更改整个MySQL实例的客户端时区或时区.但要敏锐地了解现有客户端连接的含义,以及如何解释已存储在实例中的DATETIME和TIME…

javaSE知识点汇总

javaSE知识点汇总Java基础知识精华部分写代码:1,明确需求。我要做什么?2,分析思路。我要怎么做?1,2,3。3,确定步骤。每一个思路部分用到哪些语句,方法,和对象。4,代码实现…

java中412是什么错_HTTP 412 错误 – 先决条件失败 (Precondition failed)

HTTP 412 错误 – 先决条件失败 (Precondition failed)介绍您的 Web 服务器认为,该服务器检测到客户端发送的 HTTP 数据流包括一个没有满足的‘先决条件’规范。HTTP 循环中的 412 错误任何客户端 ( 例如您的浏览器或我们的 CheckUpDown 机器人 ) ,都需要…

细谈页面回流与重绘

你将了解到: 什么是回流 什么是重绘 回流何时发生 重绘何时发生 如何避免回流和重绘 复制代码带着上面的问题,我们一探究竟 什么是回流 回流:英文是reflow 当render tree中的一部分(或全部),因为元素的规模尺寸、布局、隐藏等改变…

安卓 java中改布局_android-选项卡布局中的地图视图throwing,java....

我创建了一个具有选项卡布局的应用程序,单击选项卡后,我将打开一个使用Web视图的新活动.另外另一个选项卡使用地图视图,列表视图,图像视图.现在,我在Samsung Galaxy Y上安装了我的应用程序-运行正常.当我在Samsung Galaxy Tab 2上安装相同的应用程序时,当我第一次打开地图视图,…

怎么样修改PuTTY的默认字体和字符集

1.在窗口标题上点击右键,选择 Change Settings...2.在打开的配置窗口左边选择 Appearance,在右边点 Font settings 里面的 Change 按钮,选择好中文字体,比如:宋体、新宋体之类的3.选择配置窗口左边的 Translation&…

python 元组比较大小_为什么元组比列表更快?

所报道的“build设速度”比率只适用于常量元组(项目用文字表示)。 仔细观察(并在机器上重复 – 只需在shell /命令窗口input命令!)…:$ python3.1 -mtimeit -sx,y,z1,2,3 [x,y,z] 1000000 loops, best of 3: 0.379 usec per loop $ python3.1 -mtimeit […

windows软链接的建立及删除

2019独角兽企业重金招聘Python工程师标准>>> 1.建立举例 # 建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录。 mklink /d d:\develop \\138.20.1.141\e$\develop# 建立d:develop链接目录,指向远程的目标服务器上的e盘的对应目录…

php原生类,反序列化之PHP原生类的利用

正文文章围绕着一个问题,如果在代码审计中有反序列化点,但是在原本的代码中找不到pop链该如何?N1CTF有一个无pop链的反序列化的题目,其中就是找到php内置类来进行反序列化。基础知识首先还是来回顾一下序列化中的魔术方法,下面也…

Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]

目录 概括Sparse PCA Formulation非常普遍的问题Optimality ConditionsEigenvalue Bounds算法代码概括 这篇论文,不像以往的那些论文,构造优化问题,然后再求解这个问题(一般都是凸化)。而是,直接选择某些特…

js php调用webservice,php调用web services两种方法soap和curl

以http://www.webxml.com.cn/zh_cn/index.aspx一、使用soap调用//服务器支持soap扩展:/*Example 1:$client new SoapClient("http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl");$parameters array("wordKey">"test");//中英…

JS基础-3

1.for in 对象中有多少组键值对,我们的FOR IN 循环就遍历多少次(不一定) 每一次循环KEY这个变量存储的都是当前循环这组键对值的属性名 1、KEY存储的值都是字符串格式的(不管属性名是否为数字) 2、在FOR IN 循环遍历的时候,大部分浏览器都是先把对象中的键值对进行排…

Python常用的几个函数

print()函数:用于打印输出信息到控制台。 input()函数:用于从控制台获取用户输入。 len()函数:用于获取字符串、列表、元组、字典等对象的长度。 range()函数:用于生成一个整数序列,常用于循环中。 type()函数&…

数据结构——常见的定义

问题答案Ο标记法(大Ο标记法)是一种用于衡量算法时间复杂度的表示方法。它描述了算法在最坏情况下的运行时间增长率。当我们使用Ο标记法时,我们关注的是算法的上界,即算法的运行时间不会超过Ο(f(n)),其中 f(n) 是输…

TikTok与环保:短视频如何引领可持续生活方式?

在数字时代,社交媒体平台扮演着塑造文化和价值观的关键角色。而TikTok,作为一款全球短视频平台,不仅塑造着用户的娱乐方式,还在悄然地引领着可持续生活方式的潮流。本文将深入探讨TikTok与环保之间的关系,分析短视频如…

Spring源码分析---Bean 的生命周期 03

来源:Spring 3. Bean 的生命周期 自定义一个 SpringBoot 的主启动类: SpringBootApplication public class A03Application {public static void main(String[] args) {ConfigurableApplicationContext context SpringApplication.run(A03Applicatio…

go-carbon v2.3.0 圣诞特别版发布,轻量级、语义化、对开发者友好的 Golang 时间处理库

go-carbon v2.3.0 圣诞节特别版发布,这应该是 2023 年的最后一个版本,祝大家圣诞节快乐! carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错…

pytorch 实现 Restormer 主要模块(多头通道自注意力机制和门控制结构)

前面的博文读论文:Restormer: Efficient Transformer for High-Resolution Image Restoration 介绍了 Restormer 网络结构的网络技术特点,本文用 pytorch 实现其中的主要网络结构模块。 1. MDTA(Multi-Dconv Head Transposed Attention:多头…

选择免费的SSL证书,还是付费的?

作为一个互联网文章作者,我会根据具体的使用场景和需求来选择SSL证书。通常情况下,如果是用于个人网站或者小型项目,我会倾向于选择免费的SSL证书,比如 JoySSL提供的免费证书。这样可以在不增加额外费用的情况下为网站提供安全的加…