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