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消息提醒,本文就不做讨论了。如果需要会在以后单独写文,有点遗憾的是没有邮件订阅功能。

2019年10月18日 下午9:42 1F
这个不错,等我明天也来搭一个
2019年10月19日 下午8:03 B1
@ 猫叔 不是太好用,不过,可以折腾下。
2019年10月22日 下午7:49 B2
@ 大鸟 机器人好像挂了,拉进去没反应
2019年10月22日 下午8:07 B3
@ 猫叔 这个订阅还没折腾呢,所以没反应。
2019年10月22日 下午8:47 B4
@ 大鸟 我搭完了注册咋一直提示验证码错误,一怒之下我给卸了。
2019年10月22日 下午8:50 B5
@ 猫叔 额,是不是没弄伪静态?
2019年10月22日 下午8:52 B6
@ 大鸟 弄了,试了好几下不能我给删了。哈哈哈
2019年10月22日 下午8:56 B7
@ 猫叔 淡定,淡定,小伙子不要这么急躁啊。肯定哪里有误,你应该在调试调试。
2019年10月22日 下午8:56 B8
@ 大鸟
暴脾气,忍不了
2019年10月22日 下午9:10 B9
@ 猫叔 一共盖了8层楼,评论惨不忍睹啊。
2022年1月7日 上午1:03 B7
@ 猫叔 没个登陆功能 缓存没了就要重新评论了
2022年1月5日 上午12:51 B5
@ 猫叔 MJJ真暴躁
2019年10月19日 下午9:15 2F
微信/TG频道推送有点感兴趣……
2019年10月19日 下午11:23 3F
真心不错,收藏了
2019年10月19日 下午11:28 4F
对了顺便问一下,宝塔的在线编辑器为什么跟我的不一样,是有什么插件吗
2019年10月20日 上午12:09 B1
@ Mark 你没升级宝塔面板的版本么,这就是面板自带的编辑器主题。
2019年10月20日 上午12:09 B2
@ 大鸟 还真没有,我很少升级哈哈 了解了
2019年10月20日 上午12:17 B1
@ Mark 现在的最新版本是7.0.2,可以去升级了。
2019年10月22日 下午9:48 5F
居然不能套了,差评!
2019年10月22日 下午9:52 B1
@ 猫叔 额,果然是小暴脾气啊。
2019年11月13日 下午2:53 6F
这个很实用呀, 感谢大鸟博主!
2019年11月13日 下午2:59 B1
@ 墨轩 确实不错,你可以试试。
2019年11月27日 上午10:25 7F
感谢分享
2020年2月25日 下午8:32 8F
谢谢大鸟
2020年2月25日 下午8:33 9F
为啥刷新也不显示。。。。
2020年2月25日 下午8:34 10F
为啥。。。。刷新不了
2020年4月3日 上午11:46 11F
感谢!写的十分清楚!!第一次搭建完出现了 页面错误,请稍后再试,然后开启thkphp的调试模式后解决。
2020年6月6日 上午11:12 12F
这个很实用呀, 感谢大鸟
2020年8月14日 下午5:20 13F
谢谢分享
2020年10月23日 下午8:48 14F
谢谢大鸟!试试~
2021年2月13日 下午2:17 15F
谢谢大鸟分享
2021年3月5日 下午11:43 16F
这个不错,学习安装~
2021年4月25日 下午8:58 17F
大大大大鸟
2021年7月20日 上午11:07 18F
这个不错,等我明天也来搭一个
2021年11月8日 下午3:17 19F
看看学习一下
2021年11月11日 上午10:07 20F
看看,应该不错的样子
2021年11月11日 上午10:07 21F
过来学习学习
2021年12月24日 下午2:08 22F
那个“有货”怎么搞不定啊
2022年1月4日 上午9:28 23F
搞一下试试会不
2022年1月5日 上午12:49 24F
我人太笨 折腾了整整一天才搞好………