简介
vps-inventory-monitoring是一个开源的VPS库存监控系统,通过他可以实时把握VPS库存信息。
基本原理就是通过Curl 抓取网页源代码来监控目标字段的变化!
项目地址:https://github.com/546669204/vps-inventory-monitoring
安装指南
监控系统支持手动安装和docker安装,不过博主还是喜欢手动安装,因为中间还想手动调整一下页面,需要改源码,手动安装的目录结构比较清晰,方便更改,所以这里主要说一下手动安装方式。其中坑还是比较多的。
一、手动安装
本教程使用的是宝塔面板,建议新手也使用这个,简单方便!
1、安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
更详细的宝塔使用教程百度linux宝塔面板,安装完成后,请进入面板安装PHP 5.4以上版本,以及Nginx,mysql环境,再添加域名。
2、上传源码到网站根目录
利用宝塔面板的远程下载,把源码下载到网站根目录,之后解压,再把所有的文件复制到网站根目录(即域名的那一层目录)。
3、伪静态设置
伪静态选择thinkphp,保存设置
4、运行目录设置
在网站目录设置中把网站的运行目录修改为public,并且去掉勾选‘防跨站攻击’,不然会报错no input file specified.
5、配置数据库
将根目录下的mysql.sql通过宝塔导入到你的数据库,并且编辑app/database.example.php文件,重命名为database.php,并填写数据库信息
6、修改系统配置
编辑app/index/config.php文件,修改定时时间、域名等,然后打开域名访问即可。
7、自动检测库存情况
最后网站还不能自己定时检测库存,我们需要设置定时检测库存,有2种方法(建议第一种)
7.1、定时任务设置
点击宝塔左侧定时计划,任务类型选择URL访问,时间设置每30分钟,URL:https:
7.2、运行验证程序,间隔时间去app/index/config.php修改
screen -S vpstest
cd [网站根目录]
php think VpsTest
CTRL A D
然后关闭ssh即可 重新进入查看可使用
screen -r vpstest
8、使用
8.1 由于原项目没有说明初始用户名和密码,并且我进入数据库xm_user查看并没有账户,所以首先自行注册一个账户(基本上这个账户的ID就是1了),相应添加监控的账户权限在app/index/config.php文件,修改adduid改成自己账户对应的ID即可
8.2 程序暂时没有删除以及编辑操作,不过我们可以去数据库,通过操作xm_place、xm_company、xm_index进行删除及编辑操作。
8.3如果添加后不会检测,修改数据库xm_index的status为1(1视为通过审核)
验证函数说明
函数主要用于添加VPS监控时,检测关键词判断VPS是否有库存
1、函数说明
$curl[“Code”] 返回状态码
$curl[“RequestHeader”] 请求头
$curl[“ResponseHeader”] 返回头
$str 返回源代码
$value[“stock”] 原库存状态
2、使用示例
if ($curl["Code"] != 200){
return false;
}
if (strpos($str,"MineCloud")==false){
return $value["stock"];
}
if (strpos($str,"Out of Stock")!==false){
return false;
}
return true;
if ($curl["Code"] != 200){
return false;
}
if (strpos($str,"微基")==false){
return $value["stock"];
}
if (strpos($str,"缺货")!==false){
return false;
}
return true;
if ($curl["Code"] != 200){
return false;
}
if (strpos($str,"Bandwagon")==false){
return $value["stock"];
}
if (strpos($str,"Out of Stock")!==false){
return false;
}
return true;
if ($curl["Code"] != 200){
return false;
}
if (strpos($str,"GigsGigsCloud")==false){
return $value["stock"];
}
if (strpos($str,"CLOUDLET LAX-V1")==false){
return false;
}
return true;
TG推送机器人安装
由于作者关闭了TG的bot,这里需要自建bot来推送消息
项目地址:https://github.com/546669204/Telegram-Push-Bot
1、在TG新建BOT
添加 botfather,输入/newbot ,然后输入BOT昵称,再输入BOT名字,然后就会得到带有token的一大段文字
2、下载推送源码
并修改bot.php文件里面的token为自己bot的token(注意格式,bot这个字要保留,详情参考下图)
3、在宝塔上新建网站,绑定域名,并且把bot.php上传到网站根目录(也可以将文件直接上传到刚才新建的VPS监控网站根目录里),并且用宝塔开启SSL(Let’s Encrypt就行)
4、设置web hook
访问链接:https://api.telegram.org/bot[Token]/setWebhook?url=https://[domain]/bot.php
其中[token]修改为自己bot的token,[domian]修改为bot.php所在网站的域名
5、VPS-Inventory-Monitoring默认代码用的作者的TG Bot,因此我们需要把源码的链接替换掉成自己的。请分别打开以下文件,把https://cloud.hcaiyue.top/tgbot.php
替换成自己的(没有自建的话,用这个:https://bot.cso.cx/bot.php
)
/gotest/config.json
/app/index/model/index.php
/app/index/command/VpsTest.php
6、使用
邀请自己的bot进入频道,设置为管理员,然后在频道发送 /start 获取sckey
填入/app/index/config.php
刀云网也可以手动通过POST http://[domain]/bot.php
method=send&sckey=[XXX]&content=[CONTENT]
来发送消息
文章出处:CNBoy 四海部落,刀云转载