簡介
大部分的網(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)
工程結(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)告
出錯(cuò)收到的報(bào)告
配置
文件字段說明
系統(tǒng)中的配置信息都在url_data.xls的各個(gè)sheet中赡模,其實(shí)就相當(dāng)于數(shù)據(jù)庫的各個(gè)表田炭。
url_data.xls > mail_config # 郵件及定時(shí)任務(wù)配置
- mail_server # 郵件服務(wù)器
- user_name # 發(fā)件人賬號(hào)
- 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í)間
url_data.xls > proxy_config # 可用代理配置
- id # 序號(hào)
- name # 代理名
- proxy # 代理配置(可配置賬號(hào)密碼)
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 # 序號(hào)
- 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