首頁 資訊 healthchecks:監(jiān)控服務器Cron定時任務的神器

healthchecks:監(jiān)控服務器Cron定時任務的神器

來源:泰然健康網(wǎng) 時間:2025年06月04日 18:06

在運維服務器的時候經(jīng)常會用到一些Crontab任務。

當你的Crontab中的任務數(shù)超過10個的時候,你會發(fā)現(xiàn)這些任務管理起來非常困難。

尤其是當這些Cron任務執(zhí)行失敗的時候,比如 Python 實用寶典網(wǎng) 每個月初都會執(zhí)行一次https證書刷新,有一次協(xié)議更新之后,我的腳本失效了三個月,導致證書過期時網(wǎng)站宕機了一天,直到我發(fā)現(xiàn)并修復了這個問題。

這就是Crontab任務的一個劣勢:沒有方便的回調(diào)功能。

不過,現(xiàn)在有一個非常方便的開源Django項目能在這些Crontab失效的時候通知你,它就是healthchecks.

它通過一個回調(diào)接口判斷你的Crontab任務有沒有順利執(zhí)行。

比如說你有一個python腳本定時執(zhí)行,healthchecks給定的回調(diào)URL是:

http://localhost:8000/ping/880cb4d

在配置Crontab腳本的時候,就需要這么寫:

8 6 * * * python /home/user/test.py && curl -fsS -m 10 --retry 5 -o /dev/null http://localhost:8000/ping/880cb4d2

如果未按時調(diào)用回調(diào)接口,healthchecks將會通過郵件等通知方式告警。

那么這個“未按時”能否設定寬限呢?比如我有個任務要跑1個小時左右,那么這個任務應該是預計在一個半小時內(nèi)調(diào)用(Ping)回調(diào)接口,超過一個半小時如果沒有調(diào)用回調(diào)接口則告警。答案是肯定的。

上圖中Period指的是兩次Ping之間的時間間隔。下方Grace表示“寬限期”,自從上次Ping以來的時間已超過Period+Grace則會發(fā)送告警通知。

如果你用不習慣這種可視化的選擇器,它還提供了Crontab表達式給你定義Period和Grace:

圖片

真乃神器??!它支持的通知方式如下:

圖片

國內(nèi)用戶可能一般只會用到Email和Teams,高級點的用戶可能會用到IFTTT的Webhooks和普羅米修斯??傊茨愕膼酆脕砭托?。

下面教大家如何在本地搭建這個項目:

1. 下載項目

https://github.com/healthchecks/healthchecks

如果你訪問不了github,可在【Python 實用寶典】公眾號后臺回復healthchecks下載完整源代碼

2.創(chuàng)建虛擬環(huán)境

推薦使用Python 3.6+,如果你有conda,那就非常方便了,創(chuàng)建healthchecks虛擬環(huán)境:

conda create -n healthchecks python=3.6 activate healthchecks

如果你沒有conda,你需要先安裝Python3.6,然后使用pip安裝virtualenv,在終端輸入以下命令創(chuàng)建healthchecks虛擬環(huán)境:

python3 -m venv healthchecks source healthchecks/bin/activate

不同系統(tǒng)中命令可能不太一樣,遇到問題多利用搜索引擎查詢就好了。

3.安裝依賴

進入到上述創(chuàng)建好的虛擬環(huán)境后,cd進入項目根目錄,輸入以下命令安裝依賴:

pip install -r requirements.txt

4.數(shù)據(jù)庫配置(可選)

該項目默認使用SQLite,這意味著你不需要特殊配置也可照常運轉(zhuǎn)。

如果你需要配置MySQL或PostgreSQL,請閱讀hc/local_settings.py.example文件進行配置即可。

5.數(shù)據(jù)表遷移

Django項目當然少不了這個環(huán)節(jié),虛擬環(huán)境下,在根目錄里運行以下命令進行數(shù)據(jù)表的遷移:

python manage.py migrate

當然,還要創(chuàng)建超管用戶:

python manage.py createsuperuser

6.運行項目

大功告成,輸入以下命令即可運行項目:

python manage.py runserver

圖片

點擊右上角login in登錄到超管用戶就可以開始使用了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴

相關知識

Healthchecks — 監(jiān)控服務器Cron定時任務的神器
python如何自動執(zhí)行任務
服務器代維,運維外包、服務器運維
什么是服務器運維 – PingCode
健身房如何做服務器
魔域服務器如何選擇?sf服務器
健康云pro用的什么服務器
服務器入侵
如何架設魔域服務器
zTasker:功能豐富的自動化任務神器,支持定時、熱鍵及條件觸發(fā)

網(wǎng)址: healthchecks:監(jiān)控服務器Cron定時任務的神器 http://www.gysdgmq.cn/newsview1365994.html

推薦資訊