基于zabbix实现监控Jenkins过程---超详细

embedded/2024/9/24 0:10:19/

 💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。

推荐:Linux运维老纪的首页,持续学习,不断总结,共同进步,活到老学到老
导航剑指大厂系列:全面总结 运维核心技术:系统基础、数据库、网路技术、系统安全、自动化运维、容器技术、监控工具、脚本编程、云服务等。
常用运维工具系列:常用的运维开发工具, zabbix、nagios、docker、k8s、puppet、ansible等
数据库系列:详细总结了常用数据库 mysql、Redis、MongoDB、oracle 技术点,以及工作中遇到的 mysql 问题等
懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂
非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

基于zabbix实现监控Jenkins过程---超详细

zabbix监控简介

Zabbix是一个企业级的分布式开源监控方案,由Alexei Vladishev创建,目前由Zabbix SIA在持续开发和支持。‌ 它能够监控各种网络参数以及服务器健康性和完整性,使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警,从而快速反馈服务器的问题。Zabbix基于已存储的数据提供了出色的报告和数据可视化功能,这些功能使其成为容量规划的理想方案。它支持主动轮询和被动捕获,所有的报告、统计信息和配置参数都可以通过基于Web的前端页面进行访问,确保用户可以从任何方面评估网络状态和服务器的健康性。Zabbix是免费的,根据GPL通用公共许可证第2版编写和发行,这意味着它的源代码是免费发行的,可供公众任意使用。商业支持由Zabbix公司提供。

Zabbix的功能包括但不限于:

  • 数据收集‌:支持SNMP(包括主动轮询和被动获取)、IPMI、JMX、VMware监控等。
  • 可用性和性能检查‌:通过server/proxy+agents执行,提供灵活的阀值定义,高度可配置化的告警,使用宏变量使告警通知更高效有用。
  • Web监控功能‌:可以追踪模拟鼠标在Web网站上的点击操作,检查Web的功能和响应时间。
  • 丰富的可视化选项‌:支持创建自定义的图表,以仪表盘的样式自定义大屏展现和幻灯片轮询播放。
  • 网络拓扑图‌:以图形化方式展示网络结构和设备间的依赖关系。
  • 报表‌:提供监控内容的高级(业务)视图和历史数据存储。

Zabbix由几个主要的软件组件构成,包括Server(数据的中心组件)、Proxy代理服务器(可选部分,用于分担负载)、Agent监控代理(部署在监控目标上,主动监控本地资源和应用程序)等。这些组件协同工作,使得Zabbix能够有效地监控和管理复杂的IT基础设施。

本篇主要介绍基于zabbix实现监控Jenkins过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

一、监控架构图

二、实现思路

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

三、具体配置

1、安装Jenkins Metrics插件

插件下载地址: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),它暴露了以下指标数据:

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:返回以下指标:

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


http://www.ppmy.cn/embedded/112542.html

相关文章

注意!Facebook已移除细分定位排除受众的功能

上月&#xff0c;Meta发布更新将移除细分定位排除受众的功能&#xff0c;1月31前现有的使用细分定位排除条件的广告仍可继续投放&#xff0c;但新建广告无法使用细分定位排除功能&#xff0c;1月31后所有使用细分定位排除条件的广告都将无法投放&#xff0c;这就意味着广告主们…

VoNR 主要场景的信令与媒体路由总结 VoNR 主要场景总结

目录 1. VoNR主要场景的信令与媒体路由总结 场景 1 主叫都是 VoNR 1.1 VoNR 打 VoNR 的路由 1.2 VoNR 打 VoNR@4G 的路由 1.3 VoNR 打 VoNR@2/3G 的路由 主叫都是 VoNR@4G 1.4 VoNR@4G 打 VoNR 的路由 1.5 VoNR@4G 打 VoNR@4G 的路由 1.6 VoNR@4G 打 VoNR@2/3G 的路由…

【我的Android进阶之旅】解决CardView四个圆角有白边的问题

文章目录 一、问题描述二、分析CardView出现白边的原因三、如何解决这个问题?3.1 如何修复?3.2 为什么这样可以修复?3.3 示例代码3.4 总结一、问题描述 在实现一个RecycleView的Item时候,样式需要用到卡片式效果,于是想到用CardView来实现,但是最终发现运行出来的效果,…

什么是上拉,下拉?

上拉就是将引脚通过一个电阻连接到电源&#xff0c;作用&#xff1a;1.使IO口的不确定电平稳定在高点平&#xff0c;2、为了增加IO口拉电流的能力。 下拉就是将引脚通过一个电阻与GND相连&#xff0c;作用&#xff1a;1.从器件输出电流 2.当IO口为输入状态时&#xff0c;引脚的…

Redis模拟消息队列实现异步秒杀

目录 一、消息队列含义 二、Redis实现消息队列 1、基于List的结构模拟实现消息队列 2、基于PubSub的消息队列 3、基于Stream的消息队列 4、基于Stream的消息队列- 消费者组 一、消息队列含义 消息队列&#xff08;Message Queue&#xff09;&#xff0c;字面意思就是存放…

《卷积神经网络 CNN 原理探秘》

CNN基本原理详解 卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;简称CNN&#xff09;&#xff0c;是一种前馈神经网络&#xff0c;人工神经元可以响应周围单元&#xff0c;可以进行大型图像处理。卷积神经网络包括卷积层和池化层。 卷积神经网络是受…

基于YOLO深度学习和百度AI接口的手势识别与控制项目

基于YOLO深度学习和百度AI接口的手势识别与控制项目 项目描述 本项目旨在开发一个手势识别与控制系统&#xff0c;该系统能够通过摄像头捕捉用户的手势&#xff0c;并通过YOLO深度学习模型或调用百度AI接口进行手势识别。识别到的手势可以用来控制计算机界面的操作&#xff0…

数据中台过时了?是否需要升级到数据飞轮?

近年来&#xff0c;随着企业数字化转型的加速&#xff0c;数据中台曾是风头正劲的技术解决方案&#xff0c;被誉为企业打破数据孤岛、提高数据利用率的关键工具。可最近你会发现越来越多的企业和技术大咖不再提数据中台&#xff0c;反而开始频繁地聊起“数据飞轮”这个新词。那…