gpt4 book ai didi

elasticsearch - 从ElasticSearch中的文本中提取数字

转载 作者:行者123 更新时间:2023-12-02 22:58:26 25 4
gpt4 key购买 nike

我正在使用logstash将日志发送到ElasticSearch 5.1实例,并使用Kibana 5.1显示所有结果。

如何仅从日志的已知模式字符串中提取数字,然后每分钟汇总所有数字?

例如,我的日志行包含以下文本:

“处理53条记录”

“处理45条记录”

“处理97条记录”

我想创建一个名为processing_records 的字段,该字段分别获取值53、45、97,然后我想创建另一个名为processing_records_sum 的字段,其中包含每分钟processed_records 的摘要。

我是ELK的新手,所以我不知道是否需要对logstash conf文件和/或Kibana进行更改

最佳答案

要提取记录数,需要将日志文件与Grok解析器进行匹配,例如:

%{WORD} %{NUMBER:processed_records} %{WORD}

由于您的日志文件可能比这更复杂,因此有在线工具可以帮助您:
  • 要获取Grok模式列表,请参见
    https://github.com/hpcugent/logstash-patterns/blob/master/files/grok-patterns
  • 要构造新的Grok语句,请参见
    http://grokconstructor.appspot.com/do/constructionstep
  • 测试Grok语句http://grokconstructor.appspot.com/do/match#result
    https://grokdebug.herokuapp.com/

  • 日志文件解析后,记录计数将存储在Elasticsearch的 processing_records 字段中。

    将数据求和( 已处理的记录数_sum )-在将日志记录插入Elasticsearch时无法计算总和。

    在查询时求和时,请使用Kibana UI,或者如果编写Elasticsearch DSL,则使用聚合。

    关于elasticsearch - 从ElasticSearch中的文本中提取数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43318628/

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