gpt4 book ai didi

elasticsearch - Logstash-Elesticsearch-Kibana:通过tcp-input存储日志并将其显示在Kibana中

转载 作者:行者123 更新时间:2023-12-02 22:51:19 29 4
gpt4 key购买 nike

我正在尝试设置logstash,elasicsearch和Kibana以可视化日志。
日志应通过TCP发送到logstash,进行过滤,然后输出到ES-index,然后在kibana中显示。

我发送到logstash的消息:

msg_to_tcp="id=1324 type=error name=system_name"

logstash.conf:


input{
tcp {
host => localhost
port => 55555
}
}
filter {
kv {}
mutate {
convert => ["id" , "integer"]
}
}
output {
elasticsearch {
host => localhost
port => 9200
}
}

usage: logstash 1.4.2 , elasticsearch 1.4.4 and kibana 4



不幸的是,无法将id转换为整数。
Kibana告诉我它仍然是字符串。

我还尝试在kibana中使用“脚本过滤器”,这只会导致错误。
Integer.parseInt(doc["id"].value)

有人可以帮我将“id”转换为整数吗?

最佳答案

  • 从elasticsearch删除现有索引并创建具有正确映射的新索引,即,如果您希望id为整数,则在创建索引时将id列数据类型创建为整数。
    PUT indexname
    {
    "mappings": {
    "mappingname": {
    "properties": {
    "id": {
    "type": "integer"
    },
    "name": {
    "type": "string"
    }

    }
    }
    }

    }
  • 然后为logstash创建grok过滤器,以识别字段值,如下所示
    input{
    tcp {
    host => localhost
    port => 55555
    }
    }
    filter {
    grok {
    match => {
    "message" => "id=%{NUMBER:id}\s*type=%{WORD:type}\s*name=%{WORD:name}"
    }

    }
    }
    output {
    elasticsearch {
    host => localhost
    port => 9200
    }
    }

  • 现在尝试上面的解决方案,我希望它能起作用!

    关于elasticsearch - Logstash-Elesticsearch-Kibana:通过tcp-input存储日志并将其显示在Kibana中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29011561/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com