利用PHP Server Monitor搭建私人网络监控
更新说明:修复telegram无法推送信息的问题,由于设置有个地址没注意,按照下面设置无法成功,因为没设置chat_id,真尴尬,,ԾㅂԾ,,更新文档注意看文章末尾红色字体。
PHP Server Monitor is a script that checks whether your websites and servers are up and running. It comes with a web based user interface where you can manage your services and websites, and you can manage users for each server with a mobile number and email address.
PHP Server Monitor是用于检查您的网站和服务器是否已启动并正在运行的一个脚本,它带有一个基于Web的用户界面,您可以在其中管理您的服务和网站,还可以使用手机号码和电子邮件地址管理每个服务器的用户。
界面截图:
安装要求
- Web server
- MySQL database
- For PHP5: 5.5.9+
- For PHP7: 7.0.8+
- PHP cURL package
- PHP PDO mysql driver
- PHP-XML
安装方法一
从github地址获取源码,解压到网站根目录,然后执行:
来安装所需依赖。
安装完依赖后,访问http://youdomain.com/install.php根据提示填写数据库信息完成安装。如果安装过程中提示错误,错误为不能写入配置文件,可以手动将数据库信息添加到config.php文件中。
添加方法:
#修改配置文件
vi config.php
config.php添加如下内容:
define('PSM_DB_USER', 'status');#数据库用户
define('PSM_DB_PASS', 'xxxxxxx');#数据库密码
define('PSM_DB_NAME', 'status');#数据库用户名
define('PSM_DB_HOST', 'localhost');#数据库连接地址
define('PSM_DB_PORT', '3306');#数据库连接端口,一般默认3306
define('PSM_BASE_URL', 'http://mao3.win');#网站地址,根据自己要求进行修改
手动配置信息后,回到页面进行下一步安装即可。
Github地址:https://github.com/phpservermon/phpservermon.git
安装方法二
直接下载安装完依赖的程序包,解压到网站根目录,然后运行http://youdomain.com/install.php根据提示填写数据库信息完成安装。遇到错误参考上面的解决办法。
官方下载地址:http://www.phpservermonitor.org/download/
phpservermon-3.2下载地址提取:3.2版本下载地址
英文不错的,看看这份官方的安装文档:http://docs.phpservermonitor.org/en/latest/install.html
添加定时任务
我们安装完成后,可以进后台更换语言为中文,并且整个监控是依赖crontab来进行监控,所以,我们安装后第一件事需要对定时任务进行添加,官方推荐的监控内容为下:
上面的意思我解释下,每15分钟执行cron文件夹下的status.cron.php监控文件,这个值可以按照要求自己修改,我使用的是每1分钟监控一次,也就是*/1 * * * * php /www/wwwroot/mao3.win/cron/status.cron.php
添加完定时任务后,我们回到系统后台就行默认语言修改为中文:
系统添加监控的话,没什么好介绍的,我们根据自己的需求添加即可,我介绍下字符串/正则匹配添加的方法。
这个字符串的意思,简单说就是获取到网页上的某一个文字或者字符串。
举个例子,我们使用宝塔开设站点后,会提示:恭喜,站点创建成功!
然后我们把恭喜这两个字添加进去作为监控字符串,这样如果网站挂了,肯定获取不到恭喜这两个文字,所以就会进行报警通知。
TG监控添加教程
整个程序介绍已经差不多了,但是对于TG通知,还需要详细介绍下TG报警通知方法。
官方推荐的方法如下:
Type /newbot and give your bot an unique name
Save the API token
简单解释下:
TG添加https://t.me/BotFather ,然后输入/start ,然后系统返回提示过后,输入/newbot来添加一个自己的监控机器人,例如我的mao3bot,记住需要带上bot这个字符。
输入监控机器人后,如果提示:
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.
表示名字有人占用,需要重新输入,输入成功后,会有以下提示:
Done! Congratulations on your new bot. You will find it at t.me/mao3bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
666875247:AAH0lB1111111111111111111111111gqQ
For a description of the Bot API, see this page: https://core.telegram.org/bots/api
首先,我们需要将创建的机器人添加到频道,You will find it at t.me/mao3bot,点击连接加入进去。
然后,需要复制666875247:AAH0lB1111111111111111111111111gqQ这串API到后台进行保存,如图所示:
我们保存后,可以进行测试,会推送一个测试TG消息给您。
我们通过上面的设置后,始终不回收到TG的测试消息,这问题如果是看过官方文档:http://docs.phpservermonitor.org/en/latest/faq.html#notifications 的同学肯定是解决了,但是我写教程的时候忘记了最重要的一步,没设置自己的chat_id,导致机器人不认识你,推送不到你这边,简单说就这么个道理。
设置方法:
任意界面点击右上角,个人资料里面,注意看里面有个chat_id值,这个需要填写自己的tg的id:
这个ID怎么获取呢?
How do I sent Telegram notifications to a person?
-
- Go to @cid_bot (https://t.me/cid_bot) and start.
- Save your chat id.
- Press the activation button.
- Go to your chat with the bot and press start of type /start.
简单解释下:添加好友:https://t.me/cid_bot ,输入消息: /start 然后他会把你的chat_id发给你,这个chat_id是唯一的,请务必保密。然后去个人信息里面填上这个chat_id,然后保存。
之后去设置里面的telegram里面测试推送吧,不出意外,就正常可以推送啦。
好了,挖的坑终于填完了,之前是因为我测试一次,测试过后就没管了,今天重装了一下,发现无法推送,才发现这个被我遗漏的地方.....
后记:PHP Server Monitor非常适合个人使用,当然,配置方法比较麻烦,如果想简单监控的话, 不妨试试利用Uptime Robot监控网站&服务器状态 ,这个比较简单,当然,折腾也算一种乐趣,不妨试试上面的工具来搭建适合自己的监控程序,主要我看中1分钟监测一次,这样出问题可以及时反馈到TG。