问题描述
想要通过Jenkins来监控一个通过Jenkins构建和部署的网站,如果网站出现故障,希望能够发送邮件通知。用户想知道如何设置一个定时任务来每隔约10分钟进行一次检查,以及是否这样做是一个好主意。
解决方案
请注意以下操作注意版本差异及修改前做好备份。
方案1
使用Jenkins来监控网站并发送邮件通知是可行且相对简单的。以下是一个示例的Jenkins Pipeline脚本:
pipeline {
agent any
triggers {
cron('*/10 * * * *')
}
stages {
stage('Health checker') {
steps {
sh 'curl https://mywebsite.com'
}
post {
failure {
mail to: 'notify-list@example.com',
from: 'jenkins@example.com',
subject: "${env.JOB_NAME} - Failed",
body: "Job Failed"
}
}
}
}
}
在上面的示例中,我们定义了一个名为”Health checker”的阶段,该阶段会执行一个curl命令来检查网站的健康状态。如果curl命令失败,即网站出现故障,Jenkins会发送一封邮件通知到指定的邮箱地址。
请注意,我们使用了Jenkins的定时触发器cron('*/10 * * * *')
来设置定时任务,该任务会每隔约10分钟执行一次。
方案2
使用Jenkins的FreeStyle Job功能也可以实现类似的功能。以下是一种方法:
1. 在Jenkins的Job配置页面中,找到”Build Triggers”选项,选择”Build Periodically”。
2. 在Job配置页面的底部,找到”BUILD”菜单,点击”Add Build Step”,选择”Execute shell”。
3. 在Job配置页面的底部,找到”POST BUILD”菜单,可以在构建完成后发送通知。
4. 根据需求,可以将整个脚本放在”Execute shell”中,而不是分成两个步骤。
以下是一个示例配置页面的截图:
请注意,这只是一种使用Jenkins的FreeStyle Job来监控网站并发送邮件通知的方法,具体的配置可能会因Jenkins版本和个人需求而有所不同。
以上是两种使用Jenkins监控网站并发送邮件通知的方法,你可以根据自己的需求选择适合的方案。