天天看点

推荐一个运维任务计划好帮手,让你的任务计划运行更可靠

什么是监测助手?

我们先来看几个日常运维工作中常见的场景:

  • • 定时备份数据库或其他数据
  • • 写个脚本来监控进程确保进程存活
  • • 检测磁盘、内存等使用情况,异常时能及时告警通知
  • • 一些业务要执行的周期性任务

这些工作大都是放在crontab里让系统按指定规则自动执行,例如这样

​0 3 * * * /data/tools/job.sh​

但这样有个问题就是如果任务执行失败了,很难及时发现,并且可能很长一段时间都无人注意,直到引发了更大的问题。

那如何解决这个问题?这就是监测助手存在的意义,我们来略微改造下就可以实现,当任务执行异常时能够及时收到告警通知。

*/1 * * * * /data/tools/job.sh && curl --retry 3 -so /dev/null https://push.spug.cc/ping/EMxxxga

curl 参数解释
--retry 如果请求失败,则会最多重试多少次
-s 静默模式,隐藏进度及错误信息
-o 输出重定向      

工作原理

上述例子使用了 ​

​&&​

​ 即当脚本执行成功后会执行后边的curl命令向监测助手报告一下,证明自己还活着,这样执行的脚本就有了一个类似心跳检测的机制,如果监测助手在设置的时间内未收到心跳报告则认为出现了异常,就会触发告警通知。

推荐一个运维任务计划好帮手,让你的任务计划运行更可靠

快速入门

监测助手可以选择两种调度方式来接收心跳报告

  • •间隔:根据固定的间隔时间:例如每隔五分钟需要收到一次脚本上报,五分钟没收到就报警。
  • •Cron:通过输入的Cron表达式计算期望收到的心跳报告时间:例如每天凌晨五点需要收到一次脚本上报,未收到就报警
这里还有个比较重要的概念: 延迟时间 心跳报告有时候可能会因为网络原因延迟上报了,通过设置延迟时间可以允许中间有一定时间的误差,以避免可能频繁出现的误报。

适用场景:

  • • 间隔:适合在脚本或者代码中使用,例如在脚本或者代码逻辑中加入请求监测助手心跳URL,监测助手在指定时间内没收到上报就报警
  • • Cron: 则非常适合与系统的 Crontab 结合使用,只需要让两者的表达式一致即可。假设我们有个需要每5分钟执行一次的任务用于处理业务中无效的订单数据,我们使用系统的 crontab 添加了一个这样的任务计划
*/5 * * * * /handle.sh      

接下来,我们看看如何与监测助手结合使用。

1、推送助手官网 / 检测助手 / 创建监测项

推荐一个运维任务计划好帮手,让你的任务计划运行更可靠
推荐一个运维任务计划好帮手,让你的任务计划运行更可靠
注意!要保持与 Crontab 中表达式一致,这样才能确保监测助手计算出的心跳报告时间与系统任务计划执行的一致。

然后根据需要填写告警设置,保存后就生成了如下一条监测项。

2、复制生成的请求URL

3、最后,我们再改造下 crontab 中的内容

*/5 * * * * /handle.sh && curl --retry 3 -so /dev/null https://push.spug.cc/ping/1k3njZDv8M4D