一.Monitoring插件
Monitoring插件(monitoring)使用JavaMelody,对Jenkins进行监控。插件提供的监控维度非常多:有内存、CPU、HTTP相应时间,当前请求数。可惜没告警功能。
图片
安装好插件后,可以在Manage Jenkins菜单下找到Monitoring of Jenkins master菜单项
图片
单击菜单项进入后,显示Monitoring仪表盘,但是没有告警,不适合在大型项目中使用
图片
二.Prometheus监控
Prometheus是一款开源的监控、告警系统,是继k8s之后第二从Cloud Native Computing Foundation(云原生计算基金会,简称CNCF)毕业的项目。 Prometheus实现了与Zabbix或者Open-Falcon类似的功能,但更强大。
不像Zabbix和Open-Falcon采用的是push模式收集指标数据的,Prometheus采用的是pull模式,即Prometheus的服务器端主动从客户端拉取指标数据。这个客户端被称为exporter。我们会在Jenkins上安装Prometheus插件,目的就是为了暴露一个借口(exporter),这样Prometheus就可以拉取到指标数据了。
Prometheus本身是提供界面的,只不过过于简陋。所以,一般都会使用Grafana对指标进行展示。
图片
整合步骤: 1.Jenkins:安装Prometheus插件(prometheus),Jenkins将暴露一个 “/prometheus” 接口。Prometheus插件本身是可以配置的。进入Manage Jenkins-》Configure System页面。
图片
图片
通过此配置,我们可以选择暴露接口的URL,以及暴露哪些指标数据。
图片
2.配置Prometheus向Jenkins拉取监控指标数据,加入配置
# 具体的metrics_path自己测试路径
scrape_configs:
- job_name: 'jenkins'
metrics_path: "jenkins/prometheus"
static_configs:
- targets: ['1.1.1.1:11']
# vim prometheus-configmap.yaml
- job_name: "jenkins"
metrics_path: "/prometheus/"
scheme: http
scrape_interval: 10s
scrape_timeout: 10s
bearer_token: bearer_token
static_configs:
- targets: ['172.16.1.110:30009']
metrics path是Jenkins暴露给Prometheus的路径。static configs数组的值是Jenkins的 ip地址:端口。
3.grafana:增加Prometheus数据源。
4.grafana:增加Jenkins:performanace and health overview面板,用以呈现Jenkins的数据。导入模板,这里导入的模板id是9964
图片