繁体   English   中英

聚合存储在ElasticSearch中的Jenkins构建日志

[英]Aggregate Jenkins build logs stored in ElasticSearch

我使用Jenkins Logstash插件将我的Jenkins构建日志存储在ElasticSearch中。

我的配置看起来像这样:

Logstash配置

该部分效果很好,但我想查看Kibana中的完整日志。

该插件将结果逐步发送到ES,并在每个换行符处中断。 这意味着长日志在Kibana中看起来可能像这样:

在Kibana中看到的日志

每行是一个巨大的JSON输出,其中包含我不关心的大量字段。 我真的只关心消息字段。

我正在阅读有关聚合器的信息,这些聚合器似乎是我所需要的,但是我的结果并没有达到我想要的。

curl -X GET "localhost:9200/_search" -H 'Content-Type: application/json' -d'
{
    "aggs" : {
        "buildLog" : {
            "terms" : {
                "field" : "data.url"
            }
        }
    }
}'

打印出一大堆没有我需要的json。

在理想的情况下,我想将每个data.url中的每个消息字段连接起来并获取它。

在SQL中,对此的单个查询可能类似于:

SELECT message FROM jenkins-logstash WHERE data.url='job/playground/36' ORDER BY ASC

其中“ job / playground / 36”是每个data.url的一个示例。

我该怎么做呢?

更新:比以前更好的答案。

我仍然最终使用FileBeat,但是使用ELK v6.5。+ Kibana有一个日志UI! https://www.elastic.co/guide/en/kibana/current/logs-ui.html

FileBeat的默认配置可以正常使用。

__

旧答案:

我最终通过使用FileBeat收集所有日志,然后使用Kibana日志查看器观看每个日志来解决此问题。 我根据source过滤,然后使用了日志的路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM