站点图标 Linux-技术共享

VPS主机库存上货监控与微信\TG通知系统 VPS-Inventory-Monitoring安装与配置

简介

vps-inventory-monitoring是一个开源的VPS库存监控系统,通过他可以实时把握VPS库存信息。
基本原理就是通过Curl 抓取网页源代码来监控目标字段的变化!

项目地址:https://github.com/546669204/vps-inventory-monitoring

 

安装指南

监控系统支持手动安装和docker安装,不过博主还是喜欢手动安装,因为中间还想手动调整一下页面,需要改源码,手动安装的目录结构比较清晰,方便更改,所以这里主要说一下手动安装方式。其中坑还是比较多的。

一、手动安装
本教程使用的是宝塔面板,建议新手也使用这个,简单方便!

1、安装宝塔

#Centos安装脚本
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
#Ubuntu/Deepin安装脚本
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
#Debian安装脚本
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
#Fedora安装脚本
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://xx.com/index/index/test
 
7.2、运行验证程序,间隔时间去app/index/config.php修改
screen -S vpstest //创建screen
cd [网站根目录]
php think VpsTest
CTRL A D //退出screen
然后关闭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]
来发送消息

退出移动版