email - 控制 cron 作业复杂性的方法或软件系统?

标签 email logging automation cron analytics

在我的工作中,我们大量使用 cron 来自动化许多系统管理任务,从备份到报告生成。问题是我们的 50 多个 cron 作业系统的复杂性开始在其自身的重量下崩溃。让我描述一下我们的设置:

  • ~15 名开发人员,其中一些负责通过个人 crontab 运行的 cron 作业
  • 30 多台机器,其中一些正在运行 cron 作业,有时由几个人共同运行
  • 许多 cron 作业没有被记录,它们的所有 stdout 和 stderr 都被管道传输到/dev/null(令我懊恼)
  • 一些 cron 作业太吵了,会吐出大量多余的文本,使来自 cron 的电子邮件难以筛选
  • 大多数 cron 作业,如果完全受到监控,都会转到群组电子邮件别名,因此许多人看到与他们无关的消息并习惯于忽略它们
  • cron 作业经常失败,而我们没有及时发现
  • 一些 cron 作业正在被我们的备份系统跟踪,而另一些则没有。没有源代码控制。
  • 当我们的一台服务器出现故障时,这意味着存储在该计算机上用户的 crontab 文件中的任何 cron 作业都不会运行,而且我们没有意识到 cron 作业未能运行

理想情况下,我们需要一个设置或软件系统:

  • 任何开发人员都可以轻松进入并调整/修复 cron-job,而不仅限于个人 crontab
  • 对于 cron 作业在哪台机器上运行具有灵 active ,即使 crontab 以某种方式集中在特定机器上也是如此
  • 所有成功的 cron 作业运行都被简洁地记录下来,因此我们知道发生了什么事
  • 根据错误消息和 cron 作业捕获所有错误并报告给相关开发人员的细粒度列表
  • 可以设置用户监控某些 cron 作业,无论它们是成功还是失败
  • 用户可以收到一份摘要(电子邮件或网页),详细说明在特定时间段内哪些作业失败了,哪些作业成功了
  • 使用类似 RRDtool 的方式记录 cron 作业统计信息(运行时间、退出状态、输出量)用于分析
    • 稳健性:一台服务器宕机不会破坏整个 cron 作业系统

网上搜索,看到一些关于"cron job best practices"的讨论,但它似乎只解决了我们的一些要求。在对其中一些功能的软件支持方面,似乎有 cronic、shush 和 cronwrap 等工具(抱歉,我是新用户,仅限于 2 个超链接)。我敢肯定还有更多我想念的东西。

似乎我可以编写出这样的代码,但看起来肯定已经创建了这样的东西。对于现有系统/方法的任何建议,或关于如何构建此类系统的指示,我们将不胜感激。

最佳答案

我不是这方面的专家,但我希望这能对你有所帮助, 我最近听说了这项新技术:

Job scheduler , Work load automation解决方案,这list of job scheduler software .

实际上我对此一无所知,但我想这个作业调度程序和工作负载自动化软件是用于 SOA 或企业集成架构的企业级作业调度程序,通常可以与 ERP 系统集成。

老实说,我必须承认,我不确定这项技术是否是满足您需求的正确工具,您必须对这个主题进行深入研究,我希望这个回应能扩展您的“解决方案全景图”。

关于email - 控制 cron 作业复杂性的方法或软件系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13713203/

相关文章:

ruby-on-rails - 为 Rails 中的邮件将外部 CSS 转换为内联 CSS

Ruby Mail gem:连接被拒绝 - connect(2) (Errno::ECONNREFUSED)

php - Mailgun API 仅适用于一封电子邮件

Django、Haystack、Solr、MongoDB 架构决策

python - 如何判断程序是否打开

php - 通过 PHP 在电子邮件中发送 HTML 页面

java - 用 JVM 参数覆盖日志级别 (java.util.logging)?

R:在记录堆栈跟踪后捕获错误并继续执行(tryCatch 没有可用的回溯)

api - 在 AzureDevOps API 的 Invoke-RestMethod 上传递凭据以检索用户

javascript - Cypress:页面未在单击操作的第二个 'it' block 内加载