基于zabbix实现监控Jenkins过程详解

 更新时间:2020年11月27日 10:13:34   作者:大碗油泼  
这篇文章主要介绍了基于zabbix实现监控Jenkins过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、监控架构图

二、实现思路

  • 在 Jenkins 上安装 Metrics 插件,使 Jenkins 暴露 metrics api;
  • 编写python代码从api抓取数据,并将数据解析为zabbix可以识别的格式;
  • 配置 Zabbix server 及 agent 以实现监控及告警

三、具体配置

1、安装Jenkins Metrics插件

插件下载地址:http://updates.jenkins-ci.org/download/plugins/metrics/

安装 Metrics 插件,在系统配置中,会多出“Metrics”的配置,如下图:


配置项不复杂。我们需要点击“Generate...”生成一个 Access Key(生成后,记得要保存)。这个 Key 用于身份校验,后面我们会用到。

保存后,我们在浏览器中输入URL:http://jenkins.local,me/metrics/<刚生成的 Access Key> 验证 Jenkins 是否已经暴露 metrics。如果看到如下图,就说明可以进行下一步了:

1.1 Metrics 插件介绍

Metrics 插件是基于 dropwizard/metrics 实现。它通过4个接口暴露指标数据:/metrics,/ping,/threads,/healthcheck。

1.2 Metrics 插件:/metrics 接口介绍

点击上图中的metric链接(http://jenkins.local.me/metrics/<Access Key>/metrics),它暴露了以下指标数据:

{
 version: "4.0.0",
 gauges: {...},
 counters: {...},
 histograms: {...},
 meters: {...},
 timers: {...}
}

Gauges:某项指标的瞬时值,例如:当前 Jenkins executor 的总个数(jenkins.executor.count.value)
Counters:某项指标的总数值,例如:http 请求活动连接数(http.activeRequests)
Meters:一段时间内,某事件的发生概率,例如:Jenkins成功执行的任务每分钟的执行次数(jenkins.runs.success.m1_rate)
Histogram:统计指标的分布情况。例如:Jenkins executor 数量的分布(jenkins.executor.count.history)
Timer:某项指标的持续时间。例如:Jenkins 任务等待时间(jenkins.job.waiting.duration)

1.3 Metrics插件其他接口

/ping:接口返回pong代表 Jenkins 存活,如下图:

/threads:返回 Jenkins 的线程信息

/healthcheck:返回以下指标:

{
 "disk-space" : {
  "healthy" : true
 },
 "plugins" : {
  "healthy" : true,
  "message" : "No failed plugins"
 },
 "temporary-space" : {
  "healthy" : true
 },
 "thread-deadlock" : {
  "healthy" : true
 }
}

Zabbix server 通过与 Zabbix agent 进行通信实现数据的采集。而 Zabbix agent 又分为被动和主动两种模式。我们使用的是被动模式,也就是Zabbix server 向 agent 索要数据。
所以,我们需要在 Zabbix agent 所在机器放一个获取 Jenkins 指标数据的脚本。再配置 Zabbix server 定时从该 agent 获取数据,最后配置触发器(trigger)实现告警。

2.1 创建监控模板并链接至主机组


2.2 创建监控项

这里需要解释其中几个选项为什么要那样填:

  • 类型:是 Zabbix server 采集指标的类型,我们选择的是 Zabbix agent,如上文所说。
  • 键值:由于我们要监控的指标并不是 Zabbix 预定义的。所以,需要使用用户自定义参数来实现监控 Jenkins 指标。Key 填的值为:jenkins.metrics[gauges.jenkins.node.count.value.value]。jenkins.metrics是需要执行的真正的 Key 名称。而 [] 内是传给该 Key 对应的命令的参数。对于初学者,Zabbix 这部分概念非常不好理解。也许这样会更好理解:在使用用户自定义参数来实现监控的情况下,Zabbix server 会将这个 Key 发送给 agent,然后 agent 根据这个 Key 执行指定的 逻辑 以获取指标数据。这个 逻辑 通常是一段脚本(shell命令或Python脚本等)。而脚本也是可以传参的,[]中的值就是传给脚本的参数。
  • 信息类型:监控数据的数据类型,由于该监控项监控的是 Jenkins node 节点的个数,所以,使用数字整型。
  • 更新间隔:指 Zabbix server 多长时间向 agent 获取一次数据。

到此,Zabbix server 端已经配置完成。可以在监测->最新数据中查看是否有最新的数据,然后可以创建仪表盘将数据以图形的方式呈现出来。其他监控项也可以按此方法进行配置。

监控脚本代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Centos7 Zabbix3.4邮件告警配置(解决邮件内容为xx.bin附件问题)

    Centos7 Zabbix3.4邮件告警配置(解决邮件内容为xx.bin附件问题)

    这篇文章主要介绍了Centos7 Zabbix3.4邮件告警配置(解决邮件内容为xx.bin附件的问题)本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • zabbix如何添加监控主机和自定义监控项

    zabbix如何添加监控主机和自定义监控项

    这篇文章主要介绍了zabbix添加监控主机和自定义监控项的方法,添加自定义监控项此处以监控当前系统的用户个数为例子,通过脚本命令给大家详细讲解,需要的朋友可以参考下
    2022-08-08
  • zabbix通过percona插件监控mysql的方法

    zabbix通过percona插件监控mysql的方法

    这篇文章主要介绍了zabbix通过percona插件监控mysql的方法步骤详解,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-06-06
  • 详解Zabbix安装部署实践

    详解Zabbix安装部署实践

    Zabbix是目前最为主流的开源监控方案之一,本文给大家详细介绍了Zabbix安装部署实践,感兴趣的朋友参考下吧
    2019-11-11
  • Zabbix指定时间内变化值设置方法详解

    Zabbix指定时间内变化值设置方法详解

    这篇文章主要介绍了Zabbix指定时间内变化值设置方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • Zabbix 配置钉钉告警功能的实现代码

    Zabbix 配置钉钉告警功能的实现代码

    这篇文章主要介绍了Zabbix 配置钉钉告警功能的实现代码,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • 什么是zabbix(高度集成的监控集成方案)

    什么是zabbix(高度集成的监控集成方案)

    这篇文章主要介绍了zabbix(音同 z&aelig;bix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案
    2014-10-10
  • zabbix6.0LTS 配置proxy分布式监控的过程详解

    zabbix6.0LTS 配置proxy分布式监控的过程详解

    zabbix_proxy必须要安装一个数据库.zabbix官网推荐使用mariadb数据库,本人尝试过使用mysql8.0,这篇文章主要介绍了zabbix6.0LTS 配置proxy分布式监控,需要的朋友可以参考下
    2023-07-07
  • 史上最便捷搭建Zookeeper服务器的方法(推荐)

    史上最便捷搭建Zookeeper服务器的方法(推荐)

    由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。这篇文章主要介绍了史上最便捷搭建Zookeeper服务器的方法,需要的朋友可以参考下
    2020-06-06
  • Zabbix实现监控多个mysql过程解析

    Zabbix实现监控多个mysql过程解析

    这篇文章主要介绍了Zabbix实现监控多个mysql过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08

最新评论