網(wǎng)站外鏈可用性監(jiān)控系統(tǒng)

簡介

大部分的網(wǎng)站都會(huì)有一些相關(guān)行業(yè)的外部鏈,這些一般是由相關(guān)模塊的運(yùn)營部門提供的,但是這些第三方鏈接可用性我們很難去保證。如果用戶從我們這邊點(diǎn)擊了不可用的外鏈,也會(huì)對我們的服務(wù)產(chǎn)生質(zhì)疑。因此開發(fā)了這個(gè)外鏈可用性監(jiān)控系統(tǒng)。

框架

其實(shí)原理很簡單,利用python requests庫,加上一些超時(shí)、重試、切換代理的方式去多次檢查鏈接的可用性,以保證報(bào)告的準(zhǔn)確性。結(jié)合富文本郵件,并Email提供給相關(guān)人員報(bào)告展示。
數(shù)據(jù)我選擇放在Excel里是為了降低系統(tǒng)的復(fù)雜度,主要是對接的運(yùn)營人員都是Excel提供數(shù)據(jù) ,你也可以改裝下放數(shù)據(jù)庫。

整體的架構(gòu)

url_check.jpg

工程結(jié)構(gòu)

├── common
│   ├── emailCommon.py     # 郵件發(fā)送模塊
│   └── HTMLBuilder.py       # HTML報(bào)告生成模塊
├── data
│   └── url_data.xls              # 測試&配置數(shù)據(jù)
├── templete
│   └── templete.html           # HTML模板
├── venv                              # 虛擬環(huán)境
├── .gitignore                       # 提交過濾模板
├── checkScript.py              # 檢查核心腳本
├── requirements.txt            # 模塊依賴說明
└── run.py                            # 啟動(dòng)腳本

功能點(diǎn)

  • 定時(shí)執(zhí)行檢查任務(wù)
  • 郵件及部門通知人可配置
  • 支持2個(gè)以下的額外網(wǎng)絡(luò)代理檢查
  • 是否只在失敗時(shí)通知部門負(fù)責(zé)人可配置
  • 測試報(bào)告郵件相關(guān)人員

報(bào)告

總覽報(bào)告

TM20190612143713.png

出錯(cuò)收到的報(bào)告

TM20190612143822.png

配置

文件字段說明

系統(tǒng)中的配置信息都在url_data.xls的各個(gè)sheet中,其實(shí)就相當(dāng)于數(shù)據(jù)庫的各個(gè)表。


TM20190612141442.png

url_data.xls > mail_config # 郵件及定時(shí)任務(wù)配置

  • mail_server # 郵件服務(wù)器
  • user_name # 發(fā)件人賬號
  • user_password # 發(fā)件人密碼
  • mail_From_user # 郵件中顯示的發(fā)件人名
  • mail_From # 郵件中顯示的發(fā)件人郵箱
  • mail_subject # 郵件標(biāo)題
  • admin_user # 系統(tǒng)管理員郵箱(總覽報(bào)告通知人)
  • admin_cc_user # 系統(tǒng)報(bào)告抄送人郵箱(總覽報(bào)告通知人)
  • run_time # 定時(shí)任務(wù)啟動(dòng)時(shí)間
TM20190612141713.png

url_data.xls > proxy_config # 可用代理配置

  • id # 序號
  • name # 代理名
  • proxy # 代理配置(可配置賬號密碼)
TM20190612142002.png

url_data.xls > dep_config # 部門配置

  • id # 部門ID(URL的所屬用的)
  • name # 部門名稱
  • owner # 部門負(fù)責(zé)人
  • cc # 抄送人
  • report_type # 是否只有出錯(cuò)時(shí)才通知(1.只有出錯(cuò)時(shí)通知,0.都會(huì)通知)


    TM20190612142559.png

url_data.xls > data # 檢查鏈接數(shù)據(jù)

  • id # 序號
  • page_name # 檢查的鏈接所屬的頁面名稱
  • page_url # 檢查的鏈接所屬的頁面鏈接
  • check_name # 檢查的鏈接的名稱(暫時(shí)沒用,報(bào)告中直接顯示了檢查的URL)
  • check_url # 被檢查的鏈接
  • dep # 所屬的部門

安裝依賴

系統(tǒng)是基于py3寫的,使用的虛擬環(huán)境,具體用啥你隨意。

$ pip install -r requirements.txt

啟動(dòng)系統(tǒng)

$ python run.py

開源地址

https://github.com/t880216t/url_check

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容