我继承了一个用于日志的 ELK 堆栈,但我仍在学习诀窍 - 我的任务是在我们的 logstash 索引的特定类型上将两个字段设为数字。似乎无法弄清楚如何做到这一点。我尝试过的事情:
- 在 Kibana 设置页面中,转到我的 logstash 索引并找到该字段。在控件选项卡上进行编辑,看到类型列为字符串(并且它是不可变的)。格式下拉列表显示 URL 和字符串。
- 去了我的一个Elasticsearch主机,找到了文档类型的grok规则,发现他们确实是为了把字段解析为数字而写的。示例:
%{NUMBER:response_code}
- 没有想法,因为我不了解 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/