elasticsearch - 如何在 Kibana 数字中创建一个字段(来自字符串)

标签 elasticsearch kibana elastic-stack

我继承了一个用于日志的 ELK 堆栈,但我仍在学习诀窍 - 我的任务是在我们的 logstash 索引的特定类型上将两个字段设为数字。似乎无法弄清楚如何做到这一点。我尝试过的事情:

  1. 在 Kibana 设置页面中,转到我的 logstash 索引并找到该字段。在控件选项卡上进行编辑,看到类型列为字符串(并且它是不可变的)。格式下拉列表显示 URL 和字符串。
  2. 去了我的一个Elasticsearch主机,找到了文档类型的grok规则,发现他们确实是为了把字段解析为数字而写的。示例:%{NUMBER:response_code}
  3. 没有想法,因为我不了解 ELK 堆栈。

非常感谢任何帮助,尤其是相关文档的链接,以便我了解发生了什么。如果我知道要用谷歌搜索什么,我会更加努力地使用谷歌搜索。

最佳答案

另请注意,%{NUMBER:response_code} 不会从字符串中生成数字,它只是识别并解析字符串中存在的数字,但生成的 response_code 字段仍然是一个字符串,您需要使用 mutate/convert filter 将其转换为数字. grok 总是会将一个字符串解析为其他更小的字符串,您的工作是将结果字段转换为您期望的类型。

所以你需要在你的 grok 过滤器之后添加:

  mutate {
    convert => { "response_code" => "integer" }
  }

从那时起,您事件中的response_code 将是一个整数,logstash template用于创建您的日常 logstash 索引包含整数字段的特定动态模板。请注意,response_code 字段将是一个整数仅在创建新的 logstash 索引后,现有索引不会更改。

关于elasticsearch - 如何在 Kibana 数字中创建一个字段(来自字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38839850/

相关文章:

elasticsearch - 添加副本字段并将其设置为小写

elasticsearch - Elasticsearch重新索引API-无法重新索引大量文档

mongodb - ElasticSearch是否具有与mongodb相同的_id功能?

elasticsearch - Kibana在使用时间戳和Received_at选择时未显示正确的数据

elasticsearch - 检查 Elasticsearch 文档中是否存在某个字段的最佳方法

kibana - 带有求和的Elasticsearch日期范围聚合

elasticsearch - 可以将作为 Web 服务公开的日志数据输入到 Elasticsearch 吗?

ubuntu - 如何检查 Elasticsearch 是否正在使用 CURL 运行?

elasticsearch - Elasticsearch Index模板丢失了原始字符串映射

elasticsearch - Elasticsearch:无法使用过滤器查询 bool 嵌套查询并进行排序