Jenkins

使用 Prometheus 和 Grafana 监控 Linux 进程

…衆ロ難τιáo~ 提交于 2020-08-05 12:04:06
本文首发于: Jenkins 中文社区 原文链接 作者:Antoine Solnichkin 译者:s1mple_zj 使用 Prometheus 和 Grafana 监控 Linux 进程 从安装到配置使用讲解了如何使用 Prometheus 与 Grafana 监控 Linux 进程 无论你是否是一名 Linux 系统管理员或是一名 DevOps 工程师,你都会在 监控服务器性能指标 的时候花费很长时间。 有时候 实例运行非常慢 但是哪里出的问题却没有任何线索。 有一些 不响应的实例 会阻止你在这些实例上执行类似 top 或者 htop 的远程命令。 服务器有一个 瓶颈 存在,但是你并不能简单快速的找到问题所在。 如果我们有一个完整的仪表盘可以帮助我们跟踪整体性能以及独立的进程该怎么操作? 可以在该链接中实时查看: http://grafana.devconnected.com/d/nZMDMoiZk/grafana-top?orgId=1&refresh=5s 这篇入门文章旨在如何 为 Linux 系统管理员 创建一个 完整的监控仪表盘 该仪表盘会展示完全可定制并且可扩展到分布式架构的多个实例的不同面板。 你将会学到什么 在即将踏入技术旅途之前,让我们快速看下通过阅读这篇文章你将学到哪些东西: 了解在 Unix 系统性能监控方面的最新技术; 怎样安装最新版本的

jenkins添加脚本待程序启动成功才退出构建

烂漫一生 提交于 2020-08-05 08:34:13
需求 jenkins在构建完后,会将去执行远程服务器上面的脚本,希望jenkins中能够打印脚本执行和程序启动的日志。同时当发现日志中包含启动成功标记的时候,标记jenkins构建成功,否则超过一定时间还没有出现成功标记,则构建失败。 示例 代码启动成功时候会在日志文件中输出: [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [39][main] - ============== Start plugins now ============== [] 2020-06-24 03:24:41 INFO com.gongstring.config.AfterStartRunner [55][main] - ========== gongstring-user.service Running Now ========== 其中 Running Now 关键字出现的时候,说明启动成功。 在jenkins对应的shell脚本中添加如下脚本 keywords="Running Now" logfile="/logs/gongstring.user/out.log" { sed /"$keywords"/q; kill $!; } < <(exec timeout 2m tail -Fn 0 $logfile)

DevOps is Hard、DevSecOps is Even Harder --- Enterprise Holdings

若如初见. 提交于 2020-08-05 08:31:11
Enterprise Holdings. 的IT团队超过2000人,在2018年的演讲中介绍了Enterprise Holdings的DevOps是如何转型的。我们通过打造一个不只包涵了pipeline的CI/CD平台,将其称之为SDLC。在最开始的200+个应用中,我们挑选出5个来作为试点。当时的情况证明这次DevOps转型计划是成功的,我们的团队有4+位工程师和两位架构师,从2年半前就开始了整个平台的开发工作,根据业务需求确保平台可以适配各种云服务、也要适配已有的中间件,我们也在不断对CI/CD平台进行改进,以适应所有业务场景。其的目标是让开发人员更专注于具体的项目开发,让工具去解决一些通用性的问题。为了达到目前的效果,我们做了很多关于平台的需求收集及问题反馈相关的运营工作,所以在过去的一年里,我们已经将此套平台服务于70%的应用中,并且这个数字还在持续的增加。 在DevOps转型过程中,我们的角色并不是软件的开发者,但我们支撑了应用开发团队和他们所开发的应用,我们的服务工作介于应用程序与基础设施之间。在我们的角度来看,应用程序的开发应该是这样的: ·开发人员在本地开发 ·在仓库中检查源码 ·在构建服务器上构建应用 ·运行安全扫描 ·打包发布到JFrog的Artifactory ·发布应用到不同的环境测试 ·所有测试结束后,发布到生产环境 这个模式很简单,但是也很高效

Jenkins Build Queue Limit

萝らか妹 提交于 2020-08-05 07:54:34
问题 I've noticed that there seems to be a build queue limit of one in Jenkins. When I trigger a lot of builds it seems to only place a max of one build in the build queue. Is there a way to remove this limit so there can be more then one build in the build queue? 回答1: This is intended behaviour : Normally, your jobs will depend on some input (from SCM, or from some upstream jobs) If your slave capacity is too low to catch up with each and every build, then you'd normally want to test/build/...

我们是如何做DevOps的?

拥有回忆 提交于 2020-08-05 02:47:36
一、DevOps的理解 DevOps的概念理解 DevOps 的概念在软件开发行业中逐渐流行起来。越来越多的团队希望实现产品的敏捷开发,DevOps 使一切成为可能。有了 DevOps ,团队可以定期发布代码、自动化部署、并将持续集成 / 持续交付作为发布过程的一部分。 一句话概括就是提高生产力,快速交付! 二、引入DevOps的背景 2.1 福禄技术栈介绍 后端开发框架:基于C#的.netCore和Java的SpringCloud,少部分项目采用python和go开发 前端开发框架:vue、react 服务部署:前端站点基于ECS的nginx部署 ,后端服务统一部署在kubernetes上 代码仓库:gitlab 项目环境:目前有6套,开发、测试、压测、集成、PRE和生产 2.2 后端服务的CICD现状 福禄后端CICD流程 CICD 流程说明 每一次的代码push,根据创建的分支,根据在gitlab的CICD文件gitlab.yml定义构建步骤,触发runner,从单元测试、通过dockerfile进行编译和生成镜像版本、将新镜像部署到K8S生成pod,然后触发接口自动化测试任务的执行 !!#00ffff 好像缺了点什么 !! 初次部署应用到kubernetes怎么做的? 服务的configmap在哪里维护的? 每个服务的gitlab.yml文件都不一样,如何维护的?

如何使用Jenkins Pipeline 获取git commit id

假如想象 提交于 2020-08-05 02:37:51
如何使用Jenkins Pipeline 获取git commit id? 需求:jenkins pipeline获取git commit id 作为docker中imagesTag标识 解决方法: 使用git方法获取commit id git rev-parse HEAD (完整) 或者 git rev-parse --short HEAD (简短) 出处: https://www.cnblogs.com/liucx/ Pipeline中 script { env.imageTag = sh (script: 'git rev-parse --short HEAD ${GIT_COMMIT}', returnStdout: true).trim() } 在管道脚本中就可以直接使用:${imageTag} 即可获取到commit id, 如能解决您的问题,请帮忙点个小心心 // https://www.cnblogs.com/liucx 你也可以获取的提交ID的提交消息,并将其设置为环境变量 stage('get_commit_msg') { steps { script { env.GIT_COMMIT_MSG = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim() } }

Jenkins的权限管理,不同人员不同的发布权限

孤人 提交于 2020-08-05 01:04:05
1.安装插件Role-base Authorization Strategy 2.Jenkins > Manage Jenkin > Configure Global Security > Authorization > 选中Role-Based Strategy 3.Jenkins > Manage Jenkin > Manage and Assign Roles 4.Manage Role 5.Assign Roles note: 1.如果要匹配 pipeline项目,正则是pipeline. .pre 而不是 pipeline pre,记住前后俩个点 2.Item roles就是project roles,新版本找不到project role属于正常现象 3.config.xml(如遇下面的问题,类似卸载插件失败的可以注释xml文件去掉插件信息) 从文件内容可以看出,这里面有权限插件模块的部分定义,你会发现报错的类就在xml定义了。 因为插件被卸载,这部分定义内容还在,所以启动也就出大问题。 只需要删除<authorizationStrategy>...</authorizationStrategy>这部分内容 4.重启Jenkins服务 来源: oschina 链接: https://my.oschina.net/u/4310671/blog/4423493

Jenkins集成GitLab

别来无恙 提交于 2020-08-04 17:53:31
Jenkins免密拉取GitLab项目 1.在Jenkins上为GitLab创建一个专有的拉取代码的账号 Jenkins需要构建哪些项目就在GitLab给予账号相应权限 我这里已经创建过Jenkins用户,下面用它登录后添加SSH-KEY 2.在Jenkins服务器上生成ssh-key [ root@jenkins ~ ] # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key ( /root/.ssh/id_rsa ) : Enter passphrase ( empty for no passphrase ) : Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:IUQIuu0SAdSbZvENbIjFYTrUrnuqKGBmZtwPj6lvz60 root@jenkins The key ' s randomart image is: +--- [