4.0 KiB
WEB运行
配置文件 config_add.php
用户可访问config_add.php添加VPS配置项
初次访问该php页面时,用户需设置网页自定义访问密码:API_PASS(运行输入大小写字母以及数字,最低8位数)
存在API_PASS时,需跟参数?pass=API_PASS才允许访问
用户点击添加配置按钮,新列出一列,分别是: 旧数据也会读取并展示 序号(自动生成),网站类型(魔方、阿里云、腾讯云等),网站链接(若为魔方则设置为可填,腾讯云为https://cvm.tencentcloudapi.com/,阿里云后面再写),账户(魔方账户:邮箱或手机号,其他云后续添加),密钥(魔方输入API KEY),是否开启自动开机监控(魔方默认开启,其他云默认关闭)
-
用户点击添加数据后,在./app/db/文件夹内生成sqlite数据库 vps.db用于存储该类数据
-
首次添加后,自动调用所有API进行VPS列表查询,查询结果记录在./app/db中的vpslist.db中,之后此类查询每天仅需查询一次(是否开启自动开机监控标记为开启时,vps的最后一列section也标记为True)
-
进行ping访问测试后,将结果记录于./app/db/中的status.db中,保留最近三十天数据
记录项:目标(IP地址或域名),状态(正常或异常),延时(单位ms 毫秒) 每天0点时,总结前一天中各VPS的ping响应数据,记录在该数据库中的新表 vps_summary 中。该表需包含以下字段:VPS标识(vps_id)、统计日期(date)、平均延迟(avg_latency_ms)、最大延迟(max_latency_ms)、最小延迟(min_latency_ms)。同时分级记录延迟分布情况:延迟低于100ms的次数(count_under_100)、100ms~300ms的次数(count_100_to_300)、300ms~500ms的次数(count_300_to_500),以及延迟超过500ms或ping异常的丢包/超时次数(count_abnormal)。根据延迟表现计算高可用评分:100ms以内权重最高,300ms以内为良好,500ms以内为可用,超过500ms标记为低可用,异常则标记为不可用。记录为新字段:服务器可用性(优秀/良好/一般/不可用)
-
首次使用网页并添加数据后,调用./app/install.sh进行system服务注册
首页 index.php
-
查询是否存在API_PASS,若存在,则需跟参数?pass=API_PASS才能访问
-
若不存在,则跳转至config_add.php页
(获取到的认证token存储于./app/token.php中,记录为两小时,后续调用API时超时或提示失效再重新获取)
-
右上角放置“添加配置源”的按钮
-
查询vps.db,并依次获取vps列表并查询其状态信息(使用v1/hosts/:id接口获取VPS的CPU核数,操作系统,内存大小,系统盘大小以及带宽大小),提供开机、关机、硬重启按钮
-
左上角新建一个按钮,用于手动再次获取vps列表以及信息,不再自动获取信息。
魔方页 mofangidc.php
所有智简魔方的操作API以及相关函数存储在此网页下
Python运行
安装
通过install.sh自动安装
功能点:
-
探测当前系统是否存在idc_monitor的系统服务,若不存在则进入第二步,若存在则重启一下该服务
-
读取python版本并探测是否存在pip,自动下载python-pip
-
pip下载所需环境和依赖项
-
新建一个idc_system的系统服务,持续化运行当前路径下的monitor.py脚本
读取配置
-
读取vpslist中的数据,则对其进行ping测试
-
测试结果保存至status.db中
(获取到的认证token存储于./app/token.php中,记录为两小时)
- 若section为True,且ping测试失败,调用API对该机器进行状态查询,若返回状态为关机,则尝试开机,隔60秒后再进行状态查询并再次尝试开机,60秒后查询还是为异常的话,则记录异常,进入下一个循环(多台机器关机时,依次进行状态查询和开机,然后间隔60秒再进行操作,不同的机器不需要间隔)