您好,登錄后才能下訂單哦!
目前API僅針對監控任務,包括獲取所有監控任務和基于關鍵字進行的任務過濾,json格式返回。
在不同情況下調用任務監控URL的寫法
# system status check
20 * * * * cd /path/to/systemStatusCheck && ./systemStatusCheck.sh > systemStatusCheck.sh.cron.log 2>&1 && curl -kfsS --retry 3 --connect-timeout 10 --ipv4 https://cronmon.yoursite.io/api/monlink/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx >> systemStatusCheck.sh.cron.log 2>&1
curl -kfsS --retry 3 --connect-timeout 10 --ipv4 https://cronmon.yoursite.io/api/monlink/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
import requests
requests.get('https://cronmon.yoursite.io/api/monlink/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx')
本部分是針對生產環境一些額外的配置優化,包括日志表自動分區腳本、程序管理服務化(linux)、nginx配置和日志輪轉配置。
以CentOS為例,首先編輯相關變量
然后將啟動腳本(production/init.d/cronmon)放入/etc/init.d目錄
$ service cronmon help
Usage: cronmon {start|stop|restart|reload|status|help}
$ chkconfig --level 35 cronmon on # 加入開機啟動
針對日志表數據,為了方便管理和提高效率,使用mysql分區,首先導入存儲過程創建sql文件(production/cronmonPartition.sql),
腳本首先修改表結構,添加了復合主鍵(id+create_datetime),然后創建了所需的5個存儲過程,腳本基于zabbix分區創建腳本進行修改,執行腳本后結果如下:
對應的shell腳本
對應的crontab配置
# cronmon mysql partition
15 0 * * * cd /path/to/cronmonMysqlPartition && ./cronmonMysqlPartition.sh > cronmonMysqlPartition.sh.cron.log 2>&1 && curl -kfsS --retry 3 --connect-timeout 10 --ipv4 https://cronmon.yoursite.io/api/monlink/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx >> cronmonMysqlPartition.sh.cron.log 2>&1
以nginx為例
以logrotate為例
本系統主要的壓力是客戶端對監控URL的請求,而網站本身操作的壓力以及API請求的壓力相對較小,有鑒于此,針對此部分進行了壓力測試。
uwsgi相關配置
[uwsgi]
listen=10240
processes=8
gevent=100
系統相關配置
# echo 'net.core.somaxconn=4096' >> /etc/sysctl.conf
使用ab對監控鏈接進行壓力測試,10000并發無錯誤(目前只測試到10000并發,未測試更高并發),客戶端和服務端網絡延遲在11ms左右:
$ ab -n 50000 -c 10000 https://cronmon.yoursite.com/api/monlink/ba60afc4-f162-11e8-a56a-001b7872e686
如果想進一步了解安裝配置,數據庫變更和系統網站的功能可以點擊github
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。