vps-inventory-monitoring是一个VPS库存监控系统 — 实时把握库存信息,折腾起来稍微有点费劲,但使用起来体验还是不错的,支持微信/TG频道推送。
安装环境
- 宝塔面板7.0.1、nginx1.17.4、PHP7.3、MySQL5.5
- 如果要使用docker安装,请安装好docker管理器和docker-compose
- docker-compose安装命令:
pip install docker-compose
- 新建好网站、添加好域名
vps-inventory-monitoring
github:https://github.com/546669204/vps-inventory-monitoring
常规部署:
先用常规部署的方式来安装vps-inventory-monitoring。
1.1下载源码
下载:https://github.com/546669204/vps-inventory-monitoring/archive/master.zip
我们利用宝塔面板的远程下载,把源码下载到网站根目录,之后解压把所有的文件复制到网站根目录。
1.2创建数据库导入数据库文件mysql.sql
这个应该都会的不,这里简单说下。如图:
新建数据库,然后在源码里面找到mysql.sql导入到数据库即可。
1.3修改数据库配置文件
修改数据库配置文件 [网站根目录]/app/database.example.php [需要重命名为database.php]如图:
1.4修改服务器运行目录
在网站设置中把网站的运行目录修改为public
,如图:
1.5设置伪静态
网站设置中把伪静态设置为thinkphp,如图:
1.6修改系统配置
编辑app/index/config.php
文件修改定时时间、域名等。然后打开域名访问即可。如图:
这样已经可以打开域名访问了,但是需要自动检测vps服务商的产品更新是否有货等等,所以需要设置自动检测。
1.7自动检测
VPS-Inventory-Monitoring提供cron+http 、php think vpstest 、go 代码编译运行
三种运行监控的方式,推荐使用最简单的方法:php think vpstest
。但是本文介绍两种监控方法方法cron+http 、php think vpstestj
如下:
1、定时任务设置 点击宝塔左侧定时计划,任务类型选择URL访问,时间设置每30分钟,URL:https://xx.com/index/index/test 2、运行验证程序,间隔时间去app/index/config.php修改 screen -S vpstest //创建screen cd [网站根目录] php think VpsTest CTRL A D //退出screen 然后关闭ssh即可 重新进入查看可使用 screen -r vpstest
docker部署
1.8dock部署
新增docker安装方式,安装方式如下:
1.安装docker管理器,软件商店中安装 2.安装docker-compose pip install docker-compose 3.git clone https://github.com/546669204/vps-inventory-monitoring.git 4.cd vps-inventory-monitoring 5.docker-compose up -d 6.访问 :7780 如有问题 请尝试 docker-compose down docker-compose build docker-compose up -d
docker的方式部署非常简单,复制命令回车运行即可。
网站简单设置
1.8演示截图
1.9管理员设置
注册一个账号后,去数据库找到xm_user
表找到自己注册账户id
,并编辑app/index/config.php
文件,将adduid
改成自己id
。这样你新注册的账号就变为了管理员。
程序暂时没有删除操作,我们可以去数据库,通过操作xm_place
、xm_company
、xm_index
进行删除操作。
2.0添加vps信息
登录之后,添加vps信息如图:
2.1函数说明
- $curl[“Code”] 返回状态码
- $curl[“RequestHeader”] 请求头
- $curl[“ResponseHeader”] 返回头
- $str 返回源代码
- $value[“stock”] 原库存状态
演示检测函数:
if ($curl["Code"] != 200){ //首先判断状态码 return false; } if (strpos($str,"MineCloud")==false){ //检测是否正常打开有无公司名字之类关键词 return $value["stock"]; //返回原库存状态 } if (strpos($str,"缺货中")!==false){ //检测是否含有缺货关键词 return false; } return true;
大鸟用的示例如下,只列举一个:
最后总结
这是一个在实际应用场景下的软件。 通过Curl 抓取网页源代码 来监控 目标字段的变化 实时把握库存信息。需要注意的地方就是添加验证函数(PHP语言)时候,我们需要指定好关键字。
VPS-Inventory-Monitoring最大的有点是可以设置微信和TG消息提醒,本文就不做讨论了。如果需要会在以后单独写文,有点遗憾的是没有邮件订阅功能。