Logstash

ID:logstash

这个插件将日志和构建数据推送到Logstash索引器,如Redis, RabbitMQ ElasticSearch, Logstash或Valo。

从v1.x迁移

在2.0版本中,全局配置已经从全局工具配置移到常规Jenkins配置页面(必威国际有限公司必威国际有限公司Jenkins→Jenkins管理→系统配置).插件的工作方式也发生了重大变化。它不再是一个BuildWrapper,而是一个ConsoleLogFilter,你可以通过JobProperty启用它。在安装了MaskPasswords插件并允许全局启用日志转发时,这对于可靠地确保密码被屏蔽是必要的。

现有的全局配置将被迁移,使用BuildWrapper的FreeStyleJobs将在更新插件并重新启动Jenkins后被转换为使用JobProperty。必威国际有限公司

没有测试从v0.8.0到2.0的迁移。您肯定需要在全局配置中配置索引器。

从v0.8.0迁移到v1.x

从版本1.0.0开始,Logstash索引器的连接信息存储在全局配置中(版本0.8.0及更早版本将此信息存储在项目设置中)。升级之后,你需要去必威国际有限公司Jenkins→Manage Jenkins→Global Tool Configuration重新输入连接信息。

您还应该刷新使用此插件的每个作业的配置,以消除过时的字段,并防止在Jenkins服务器日志中出现警告。必威国际有限公司要做到这一点,可以在UI中单独编辑作业并单击“保存”按钮,或者转到必威国际有限公司Jenkins→管理Jenkins→管理旧数据,单击“丢弃不可读数据”。

图1:全局配置设置


图2:使用v0.8.0或更老版本的作业中发现的过时配置数据。

特性

索引器目前支持

以下数据存储目前支持推送日志和构建数据:

  • 复述,
  • 支持RabbitMQ、vhost
  • Syslog
  • Elastissearch(你必须配置url,包括索引和类型,例如。http://elasticseach: 9200 / logsta必威国际有限公司sh / jenkins。.)仅指定索引是不够的)
  • Logstash
    1. 当配置了tcp输入时,选择logstash模式
    2. 当配置一个http输入时,选择elasticsearch模式。在这种情况下,不需要索引和类型。

使全球

现在可以全局启用日志转发。

注意:全局启用目前对管道作业不起作用,因为工作流api还不支持这个(参见必威国际有限公司詹金斯- 45693

JobProperty

该组件将单独的日志行发送到索引器进行后处理,以及在开始时可用的任何构建数据(一些信息,如构建状态不可用或不完整)。

Post-Build出版商

该组件将作业日志的尾部推到索引器中进行后期处理,以及在后期构建操作开始时的所有构建数据(如果任何后期构建操作在这个插件之后被安排,它们将不会被记录)。

管道

出版商

Logstash插件可以用作管道作业中的发布者,以将日志的尾部作为单个文档发送。

例如,在管道中的发行商

node('master') {sh " ' echo 'Hello, world!' ''' logstashSend failBuild: true, maxLines: 1000}

注意:由于当前管道中日志记录的工作方式,logstashSend步骤可能不会在调用该步骤之前直接传输记录的行。增加1秒的睡眠时间可能会有所帮助。

注意:为了在管道中获得结果集,它必须是在logstashSend步骤之前设置

注意:logstashSend步骤需要一个节点运行。

与块

它可以用作包装器步骤,分别发送每个日志行。

一旦设置了结果,它将出现在发送给索引器的数据中。

注意:当您结合时间戳步骤时,您应该使时间戳最外层的块。否则,您将获得作为日志行的一部分的时间戳,基本上复制了时间戳信息。

管道步长示例

timestamp {logstash {node('somelabel') {sh " ' echo 'Hello, World!' ''' try{//做某事失败sh "exit 1" currentBuild。result = 'SUCCESS'} catch (Exception err) {currentBuild. result = '成功'}result = '失败'}}}}

注意:关于执行步骤的代理的信息目前还不可用。

JSON负载格式

JSON负载的例子

{"数据":{" id ": " 2014 - 10 - 13 - _19 - 51 - 29日”,“结果”:“成功”,“projectName”:“my_example_job”、“fullProjectName”:“文件夹/ my_example_job”、“displayName”:“1”,“fullDisplayName”:“我的例子的工作# 1”、“url”:“工作/ my_example_job / 1 /”、“buildHost”:“詹金斯”、“build必威国际有限公司Label”:“”,“buildNum”:1、“buildDuration”:0,“rootProjectName”:“my_example_job”,"rootFullProjectName":"folder/my_example_job", "rootProjectDisplayName":"#1", "rootBuildNum":1, "buildVariables":{"PARAM1":"VALUE1", "PARAM2":"VALUE2"}, "testResults":{"totalCount":45, "skipCount":0, "failCount":0, "failedTests":[]}}, "message":["Started by user anonymous", "testResults":{"totalCount":45, "skipCount":0, "failCount":0, "failedTests":[]}},“Building in workspace /var/lib/必威国际有限公司jenkins/jobs/my_example_job/workspace”,“Hello, World!”》,“源”:“詹金斯”、“必威国际有限公司source_host”:“http://localhost: 8080 / jenkins /”,“@timestamp”:“2014 - 10 - 13 - t19:51:29 - 0700”,“@version”:1}

示例负载发送到indexer(例如RabbitMQ)使用后构建动作组件。注意,当使用构建包装器时,一些信息(如构建结果)将丢失或不完整,并且“message”数组将包含单个日志行。

请注意,数据。只有当发布者在构建中记录了您的测试结果时,才会显示testResults,例如使用JUnit插件

更新日志

看到更新日志github上

问题

要报告一个bug或请求对这个插件的增强,请在JIRA中创建一个票据

类型

优先级

关键

总结

状态

由于意外错误,无法检索数据。

在Jira中查看这些问题