ELK 提示Visualize: "field" is a required parameter和Saved "field" parameter is now invalid.的解决方法

0x01 产生原因


1546946468013.png

产生的原因是:因为在ES中有两个index定义的字段类型不一致导致的。

例如:

log_2019.1.1

GET /log_2019.1.1/_mapping
{
  "log_2019.1.1": {
    "mappings": {
      "type-1": {
        "properties": {
          "age": {
            "type": "long"        => 在log_2019.1.1type-1下的age映射为long
          }
        }
      }
    }
  }
}

log_2019.1.2

GET /log_2019.1.2/_mapping
{
  "log_2019.1.2": {
    "mappings": {
      "type-1": {
        "properties": {
          "age": {
            "type": "string"       => 在log_2019.1.2/type-1/age => 映射为string
          }
        }
      }
    }
  }
}

这样在使用kibana进行展示时,使用log_*就会存在两个索引,但是age的类型不同。

0x02 如果找到冲突的字段


现在知道了产生的原因,但是es记录了大量的日志,我们如何知道日志的那些字段冲突了呢?

其实kibana已经为我们提供了这样的功能

首先,进入kibana的mangement ==> Index Patterns,选择有冲突的index。这是我们可以看到页面会有提示conflict

1546947244011.png

其次,在fields中按type类型进行排序,可以找到存在conflict的字段类型。

1546947424873.png

最后,点击这两条后面的这个1546947463850.png这个按钮就可以进入详细信息的页面,这是就可以看到有哪些存在错误的index

1546947674462.png

0x03 怎么解决冲突


因为ES并不支持,mapping字段类型的修改,所以要修改类型的话,需要按如下步骤进行。

  1. 先新建一个新的index,保证是正确的字段类型。
  2. 将原来index的内容,复制到新的index中。
  3. 删除原来的index。
  4. 用旧的index名字替换新的index名字就行了。

有一点要说明一下,就是这个操作风险比较高,需要提前备份数据,并且小心操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值