什么是监测助手?

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

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

这些工作大都是放在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 如果请求失败,则会最多重试多少次
-静默模式,隐藏进度及错误信息
-输出重定向

工作原理

上述例子使用了 && 即当脚本执行成功后会执行后边的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

好了,一切任务尽在掌控中~ 😎

监测助手链接: https://push.spug.cc/monitor

原文地址:http://www.cnblogs.com/spug/p/16798195.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性