当前位置: 代码网 > 服务器>服务器>Linux > 基于zabbix实现监控Jenkins过程详解

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

2024年05月18日 Linux 我要评论
一、监控架构图二、实现思路 在 jenkins 上安装 metrics 插件,使 jenkins 暴露 metrics api; 编写python代码从api抓取数据,并将数据解析为zabbix可

一、监控架构图

二、实现思路

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

监控脚本代码

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

(0)

相关文章:

  • 使用Apache Spark处理Excel文件的方法

    使用Apache Spark处理Excel文件的方法

    前言在日常的工作中,表格内的工具是非常方便的x,但是当表格变得非常多的时候,就需要一些特定的处理。excel作为功能强大的数据处理软件,广泛应用于各行各业,从企... [阅读全文]
  • Zabbix WEB监测实现过程图解

    以zabbix自身的web界面为例配置web监测环境:zabbix4.2.81、路径:配置——主机——选择‘web监测',点击右上角‘创建web场景'2、填写场景名称、应用集、更新…

    2024年05月18日 服务器
  • [<font color=red>原创</font>]Linux版本选择攻略:一步到位

    [原创]Linux版本选择攻略:一步到位

    在当今的信息化社会,操作系统已经成为我们日常生活和工作中不可或缺的一部分。其中,linux系统以其开源、高效和稳定的特性,深受广大用户和开发者的喜爱。但是,面对... [阅读全文]
  • Zabbix如何通过ssh监控获取网络设备数据

    场景模拟:某企业的运维人员想用zabbix监控以前购买的一批网络设备的光口的状态利用率,电压等信息,他们发现这台网络设备是支持snmp协议的,于是他们想通过snmp协议进行监控。但…

    2024年05月18日 服务器
  • 在Linux配置自启动jar包方式

    在Linux配置自启动jar包方式

    springboot 项目内嵌tomcat,一般打包成jar一、运行jar包直接使用 idea 执行打包操作,打包完成后在项目目录中就会生成 target 目录... [阅读全文]
  • Zabbix实现监控多个mysql过程解析

    一台服务器上开启了3个mysql实例进程,占用不同的端口 3306、3307、3308原理说明:通过自动发现规则来获取mysql实例的端口,自动发现规则上的{$mysqlport}…

    2024年05月18日 服务器

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com