利用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地址获取源码,解压到网站根目录,然后执行:

php composer.phar install

来安装所需依赖。

安装完依赖后,访问http://youdomain.com/install.php根据提示填写数据库信息完成安装。如果安装过程中提示错误,错误为不能写入配置文件,可以手动将数据库信息添加到config.php文件中。
添加方法:

cp config.php.sample config.php
#修改配置文件
vi config.php

config.php添加如下内容:

define('PSM_DB_PREFIX', 'monitor_');#表前缀,保持默认
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 * * * * php /www/wwwroot/mao3.win/cron/status.cron.php

上面的意思我解释下,每15分钟执行cron文件夹下的status.cron.php监控文件,这个值可以按照要求自己修改,我使用的是每1分钟监控一次,也就是*/1 * * * * php /www/wwwroot/mao3.win/cron/status.cron.php

添加完定时任务后,我们回到系统后台就行默认语言修改为中文:

系统添加监控的话,没什么好介绍的,我们根据自己的需求添加即可,我介绍下字符串/正则匹配添加的方法。

这个字符串的意思,简单说就是获取到网页上的某一个文字或者字符串。

举个例子,我们使用宝塔开设站点后,会提示:恭喜,站点创建成功!

然后我们把恭喜这两个字添加进去作为监控字符串,这样如果网站挂了,肯定获取不到恭喜这两个文字,所以就会进行报警通知。

TG监控添加教程

整个程序介绍已经差不多了,但是对于TG通知,还需要详细介绍下TG报警通知方法。
官方推荐的方法如下:

Go to @botfather (<a class="reference external" href="https://t.me/BotFather">https://t.me/BotFather</a>) and type /start
Type /newbot and give your bot an unique name
Save the API token

简单解释下:
TG添加https://t.me/BotFather ,然后输入/start ,然后系统返回提示过后,输入/newbot来添加一个自己的监控机器人,例如我的mao3bot,记住需要带上bot这个字符。

输入监控机器人后,如果提示:

BotFather:
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.

表示名字有人占用,需要重新输入,输入成功后,会有以下提示:

BotFather:
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?

    1. Go to @cid_bot (https://t.me/cid_bot) and start.
    2. Save your chat id.
    3. Press the activation button.
    4. 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。

» 本文链接:利用PHP Server Monitor搭建私人网络监控
» 转载请注明来源:刺客博客
» 如果文章失效或者安装失败,请留言进行反馈。