帮助手册

Cron 监控

通过简单的无代码设置,监控 Cron 作业、微服务、守护进程及几乎任何其他类型的任务。快速排查 Cron 故障,并在 Cron 失败影响系统之前接收告警。

为何监控 Cron 作业?

Cron 作业用于调度备份、发送邮件、状态检查等任务,因此对 Web 服务器和应用程序的性能可能产生重大影响。这使得持续监控这些作业并获取重要作业和后端系统的洞察变得至关重要。

借助我们的监控解决方案,您现在可以获得与 Cron 监控相关的三个最重要问题的答案:

  • 当前或任意给定时间段内,有多少个 Cron 作业正在运行?运行的是哪些作业?
  • 我的任务已运行多长时间了?
  • 是否有任何作业失败、卡住或运行时间超出预期?

添加 Cron 监视器

开始跟踪您的作业、工作线程、服务或任何可以发送 HTTP 请求的内容。 

  1. 登录 Site24x7,前往服务器 > Cron 监控 (+)
  2. 输入以下详情:
    • 显示名称:输入用于识别的名称。
    • Cron 表达式这些表达式帮助您调度 Cron 作业,需要按照特定格式添加。
    • 时区:从下拉菜单中选择合适的时区以调度 Cron 作业。
    • 宽限期:设置一段时间,定义在启动后多久可以触发告警,主要用于避免因网络延迟导致的误报。
    • 阈值和可用性:设置阈值配置文件,以确定特定资源何时应被声明为严重或宕机。
  3. 高级配置下,填写以下字段:
    • 用户告警组:决定告警时应通知哪些人。
    • 标签:通过应用唯一标签对账户中的相关资源进行分类和排序。 
  4. 第三方集成下,从可用集成中选择,将监视器告警推送到您首选的第三方服务。保存您的更改。
注意

提示:您可以使用 API 添加 Cron 监视器或下载脚本自动检测并添加 Cron 监视器。了解更多

使用 Cron 表达式

Cron 表达式提供更大的灵活性,帮助定义固定时间计划。它由五个字段组成,以空格分隔。

Cron 表达式语法:

m   h   dom  mon  dow
*    *      *        *       *        test.sh
|     |     |        |       |
|     |     |        |       #--------- Day of the Week (0 to 6) (Sunday = 0 or 7)
|     |     |        #----------- Month (1 to 12)
|     |     #-------------  Day of the Month (1 to 31)
|     #----------------  Hour (0 to 23)
#-------------------  Minute (0 to 59)                 

时间单位 范围 描述
分钟 0-59 * 表示每分钟的起始时刻
小时 0–23 * 表示每小时的起始时刻
月份中的日期 1–31 * 表示每天
月份 1–12 * 表示每个月,也可以使用月份名称
星期中的日期 0–7 0 和 7 均表示星期日,也可以使用名称

示例:

  • 每晚 11 点运行位于 /etc/script 的备份脚本 backup.sh
    00 23 * * * /etc/script/backup.sh
  • 每月第一天晚上 11:45 运行位于 /etc/script 的月度备份脚本 backup-monthly.sh
    45 11 1 * * /etc/script/monthly.sh
  • 使用 /N 间隔让指定范围内的所有值以 N 为间隔运行,例如每九分钟运行一次(0、9、18、27、36、45、54)
    */9 * * * * 
  • 每天凌晨 3 点和 5 点运行位于 /etc/script 的脚本 test.sh
    * 3,5 * * * /etc/script/test.sh
  • 每天早上 6 点到 9 点之间每小时运行一次位于 /etc/script 的脚本 server.sh
    * 6-9 * * * /etc/script/server.sh

设置

添加 Cron 监视器后,您将自动跳转至设置页面。在此页面,您将找到监视器的两个唯一 ping URL:

  • 作业开始前需要 ping 的 URL
    https://plus.site24x7.com/cron/{api key}/{monitor display name/device key}/start
  • 作业结束后需要 ping 的 URL
    https://plus.site24x7.com/cron/{api key}/{monitor display name/device key}/end

收集作业开始、完成或失败信息的完整 URL 格式

https://plus.site24x7.com/cron/{apikey}/{monitor display name/device key}/{ENDPOINT}
在收到第一个 ping 之前,监视器将处于发现状态。

如何从端点推送数据?

使用以下格式之一从端点推送数据并更新作业状态:

1) Crontab                    2) Bash                     3) Python                    4) PowerShell                     5) Ruby 

以下是使用 Crontab 的示例:

注意

仅复制带有 ping URL 的 curl 命令。请不要忘记将 path/script.sh 替换为您实际的 Cron 命令后方可开始使用。

Cron 作业告警

设置告警,了解作业、工作线程或服务是否运行时间超出预期。这些告警在以下情况下将非常有用:

  • 作业相互重叠(导致难以检查单个作业)。
  • 您需要检查增加的客户群或更大的数据库是否随时间推移导致了性能下降。  

您可以使用设置页面中提供的唯一 ping URL 发送特定时间段的告警。为此,在作业开始时 ping /start 端点,在成功完成时 ping /end 端点。如果作业的运行时间有所不同,可以使用 Cron 表达式指定固定的时间段。

报表

以下报表可用于 Cron 监控:

  • 摘要报表 - 查看 Cron 监视器的整体可用性、中断详情、可用性和暂停摘要。 
  • 可用性摘要报表 - 查看所选时间段内 Cron 监视器的整体可用性摘要、中断和宕机时间。
  • 健康趋势报表 - 从初始设置起查看 Cron 监视器的可用性趋势。

高效调度 Cron 作业的技巧

  • 如果作业未按预期启动,请使用宽限期选项并指定延长的时间段。 
  • 如果您收到监视器的意外告警,请检查是否在作业开始前 ping 了 /start 端点,在作业结束后 ping 了 /end 端点。缺失或放错位置的 /start 或 /end ping 是最常见的错误。
  • 如果 /start/end 的 ping 均正确,请尝试将命令中的 AND(&&)逻辑更改为 OR 逻辑(;)。
    Try switching from pinging /end only if your command finishes successfully:
    To always pinging your /end URL:
    这样,即使命令以非 0 退出码退出,您也会 ping 您的 URL。如果是这种情况,请找出命令以错误码退出的原因。
  • 使用 Linux 服务器的 date 命令或 Windows 的 tzutil /g确认服务器时间与添加监视器时设置的时区是否匹配。

许可

这是一个基础监视器。 

25 个 Cron 监视器 = 1 个基础监视器 = $1

本文档对您有帮助吗?

您愿意帮助我们改进文档吗?请告诉我们哪些方面可以做得更好。


很抱歉本文档未能让您满意。我们希望了解可以从哪些方面改进您的体验。


感谢您抽出时间分享反馈。我们将利用您的反馈来改进在线帮助资源。

短链接已复制!