美文网首页
mapper_parsing_exception of Gray

mapper_parsing_exception of Gray

作者: NotFoundW | 来源:发表于2020-03-17 11:21 被阅读0次

Graylog的dashboard上,发现Indexer failures相当猖狂。

image.png

12多万条!!

点进去一看,绝大多数都是这样子的:

{"type":"mapper_parsing_exception","reason":"failed to parse field [metricValue] of type [float] in document with id 'c80f3031-b5fe-11e9-9e16-0a58ac10310c'","caused_by":{"type":"illegal_argument_exception","reason":"[float] supports only finite values, but got [NaN]"}}

划重点mapper_parsing_exception

搜索一番之后,发现这个错误应该是日志里metricValue的类型跟Elasticsearch的日志索引里定义的不一致导致的。

网上没有找到完整的解决方法,参考官方文档得出以下步骤。

原理就是配置"ignore_malformed": true到索引上,用以忽略此种错误。因为这个错误其实并不影响日志的存储,所以只需要忽略掉就行了。

注: Graylog版本3.1.0,Graylog后端的Elasticsearch版本6.7.0

创建graylog-custom-mapping.json

{
    "settings": {
        "index": {
            "mapping": {
                "ignore_malformed": true
            }
        }
    },
    "template": "graylog_*"
}

graylog-custom-mapping.json加载到Elasticsearch

$ kubectl get svc | grep graylog | grep 9200
graylog-elasticsearch-client                ClusterIP   10.233.37.72    <none>        9200/TCP              

$ curl -X PUT -d @'graylog-custom-mapping.json' -H 'Content-Type: application/json' 'http://10.233.37.72:9200/_template/graylog-custom-mapping?pretty'

这个设置不会在当前active的index上立即生效,而是会等到下一个index产生的时候

$ curl -s -X GET "http://10.233.37.72:9200/graylog_deflector?pretty" | grep -A 3 setting
    "settings" : {
      "index" : {
        "mapping" : {
          "ignore_malformed" : "true"

相关文章

网友评论

      本文标题:mapper_parsing_exception of Gray

      本文链接:https://www.haomeiwen.com/subject/xfnzehtx.html