steam auth timeout
前沿拓展:
由于業務需要,我司的產品越來越多,api接口**相對比較薄弱,對此要搭建HTTP(s)的**系統,之前一直使用第三方的**系統,比如阿里云的云**。
基本流程
1.了解需求。
2.通過各種途徑了解有沒有相關的免費解決方案
3.本地搭建實施,評估上線。
4.上線部署 使用。
本文記錄希望找到開源**系統走的彎路,apimonitor和apitestplatform都有這樣或者那樣的問題。最終找到對應的開源**uptime-kuma,并且有意外驚喜,如果有其他的需求也可以按照此流程進行。
業務需求
1.開源、免費
2.定時**生產環境的接口鏈接,如果出現訪問非200的、超時,則報警。
3.告**式: 郵件、短信、釘釘群通知、電話等
4.支持本地Linux服務器部署
5.類似阿里云的“云**”–站點**,如圖。第三方參考解決方案https://www.jiankongbao.com/
測試系統
服務器系統: Centos7
IP地址: 192.168.1.5
服務器已安裝: nginx和docker
開源產品
在網上搜索、問同事和相關從業經驗的人,是否有相關的**產品。
一、系統**產品apimonitor(項目已關閉)
apimonitor有api探測、api**、http請求模擬、系統接口**等功能,可以模擬http頁面**作過程,并根據請求耗時和響應結果**系統接口可用性和正確性。
開源地址: https://gitee.com/ecar_team/apimonitor
查看功能部分符合,但是需要二次開發,可以在此開源項目上開發
1.新增告警功能,通過郵件、短信、釘釘群通知等。
2.新增訪問時長記錄。
二、apitestplatform(親測有bug)
一個web界面的接口自動化測試平臺
git地址:https://github.com/342164796/apitestplatform
安裝步驟cd /data
git clone https://github.com/342164796/apitestplatform
cd apitestplatform/
首次部署需要在settings.py文件里修改mysql的地址和賬戶名密碼為自己的數據庫地址
vi apitestplatform/settings.py
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': "*.*.*.*",
'NAME': "apitestplatform",
'USER': "user",
'PASSWORD': "password",
'PORT': "3306",
# 'CHARSET': 'utf8',
# 'COLLATION': 'utf8_general_ci',
}
2.初始化數據庫,執行如下命令:
python3.6 manage.py makemigrations
python3.6 manage.py migrate
python3.6 manage.py runserver
安裝的踩坑記錄1.SyntaxError: invalid syntax# python manage.py runserver
File "manage.py", line 14
) from exc
^
SyntaxError: invalid syntax
python 版本太低,系統自帶為2.7
升級安裝 python3.6
# python -V
Python 2.7.5
# python3.6 -V
Python 3.6.82.Couldn't import Djang
沒有安裝django
# python3.6 manage.py runserver
Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
安裝 Django
虛擬環境里用python3安django和uwsgi
(如果用于生產的話,則需要指定安裝和你項目相同的版本)
pip3.6 install django
pip3.6 install uwsgi3.沒有安裝pymysql再次報錯:
# python3.6 manage.py runserver
ModuleNotFoundError: No module named 'pymysql'
解決:
# pip3.6 install pymysql
再次報錯:
# python3.6 manage.py runserver
ModuleNotFoundError: No module named 'django_crontab'4.沒有安裝django-crontab報錯
django.db.utils.OperationalError: (2003, "Can't connect to MySQL server on '*.*.*.*' ([Errno -2] Name or service not known)")
解決:
# pip3.6 install django-crontab
啟動成功
# python3.6 manage.py runserver
You have 29 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, base, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
March 02, 2022 – 10:31:01
Django version 3.2.12, using settings 'apitestplatform.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.啟動成功# python3.6 manage.py runserver
Django version 3.2.12, using settings 'apitestplatform.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.nginx反向**
server {
listen 80;
server_name apitest.test.me;
#root /data/wwwroot/web/apitest.test.me/;
access_log /data/wwwroot/log/apitest.test.me-access.log main_aliyun;
error_log off;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
綁定hosts訪問
192.168.1.5 apitest.test.me
添加項目報錯:
由于不太清楚報錯的原因。放棄此開源項目。
三、開源**uptime-kuma
繼續百度搜索查找,在知乎的頁面中找到一個@無為無謂 的回答,頁面https://www.zhihu.com/question/23755976
他推薦了一個開源產品,uptime-kuma。
uptime-kuma地址:https://github.com/louislam/uptime-kuma
反向**教程: https://github.com/louislam/uptime-kuma/wiki/Reverse-Proxy
演示網站:
https://demo.uptime.kuma.pet:27000/ 創建管理員賬號,有10分鐘的體驗時間。
查看演示基本能滿足需要,在本地搭建測試,功能都符合我的要求,居然還有驚喜,首先界面很精美,再次除了有基本的HTTP(S)的**的,還有TCP端口**、PING**、HTTP(s)關鍵字**、DNS**、Push**、Steam Game Server**,功能相當多,重點是都是免費的,只要有服務器,或者局域網的虛擬機(可訪問外網)就可以**你的各種服務。
docker部署uptime-kuma
本次使用docker安裝如果,需要非docker參考開源文檔。
# mkdir -p /data/docker/uptime-kuma/data
# docker run -d –restart=always -p 3001:3001 -v /data/docker/uptime-kuma/data:/app/data –name uptime-kuma louislam/uptime-kuma:1
# netstat -tunpl|grep 3001
tcp6 0 0 :::3001 :::* LISTEN 29542/docker-proxy-
訪問:
http://192.168.1.5:3001 訪問,創建管理員賬號。
nginx**訪問server {
listen 80;
server_name uptime.test.me;
location / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
綁定hosts訪問
192.168.1.5 uptime.test.me基本設置
設置里面功能還比較齊全,有外觀設置,消息通知重點是消息通知有,郵件、釘釘、短信、飛書等等的第三方通知,相當齊全。
外觀設置
通知設置
創建**項
HTTPS**圖
端口TCP檢測
關閉nginx,80端口:
systemctl stop nginx
報錯:
重置密碼
Docker環境
docker exec -it <container name> npm run reset-password
非Docker環境
# cd 項目目錄
# npm run reset-password
https://github.com/louislam/uptime-kuma/wiki/Reset-Password-via-CLI
配置消息通知
Uptime Kuma提供多種的消息推送,詳情請參考:https://github.com/louislam/uptime-kuma/issues/284
我這里需要Bark手機APP、配置郵件、釘釘群通知的演示,還有阿里云短信也是比較方便快捷的提醒。
配置Bark
Brak是蘋果系統的一款推送軟件。ios手機安裝app,APP內可以獲取推送地址: https://api.day.app/{密鑰}/這里改成你自己的推送內容
https://api.day.app/{密鑰}/這里改成你自己的推送內容
后面不能有中文,有測試測試會報錯
點擊“測試一下”收到消息
模擬測試
恢復測試:
釘釘群通知
了解更多:https://developers.dingtalk.com/document/robots/custom-robot-access
釘釘群獲取WebHookUrl:假設為https://oapi.dingtalk.com/robot/send?access_token=abc123456
WebHookUrl:填寫完整的地址、SecretKey則填寫abc123456的值,我開始填寫了錯了,測試很久沒有通過。
配置郵箱
如圖配置,主機名、端口號、密碼不是163的登錄密碼,需要在163郵箱后臺開通開啟IMAP/**TP服務。獲取授權密碼。
測試發送郵件:
禁用身份驗證
這是可選的,如果不禁用游客訪問需要用戶名和密碼,但是你關掉后,就可以自由訪問了。(后臺后上角的設置,然后拉到最下面即可看到!)
設置Status Page
這個功能還是很重要的,可以把新建的**服務放置到這個**頁面,這樣就可以隨時隨地的看到每個系統的狀態了。
點擊右上角的Status Page,開始編輯,具體看圖:
首頁默認就會是這樣的狀態頁。
拓展知識:
原創文章,作者:九賢互聯網實用分享網編輯,如若轉載,請注明出處:http://www.uuuxu.com/20221203517267.html