前言 {#前言}
祝大家新年快乐!
上一期和大家介绍了如何搞一个自己的网站监控,这一期就给大家带来~~一个~~两个关于监控自己的服务器状态的项目。
如果你只有一个服务器,可以参考第一个项目,如果你有不止一台,可以搭建第二个项目。
单台服务器的演示地址 :https://ward.laoda.de/
效果如下:
多台服务器的演示地址 :https://status.laoda.de/
效果如下:
YouTube:https://youtu.be/Eq1HM84AKUs
环境准备 {#环境准备}
- 服务器:腾讯云轻量应用服务器(购买链接)
- 系统:Debian 10(DD脚本 非必需DD用原来的系统也OK)
- 域名一枚,并做好解析到服务器上(域名购买、域名解析 视频教程)
- 安装好Docker、Docker-compose(相关脚本)
- 安装好Nginx Proxy Manager(相关教程)
Ward(适合单台服务器) {#ward适合单台服务器}
简介 {#简介}
Ward 是一个使用 Java 开发的简单而简约的服务器监控工具。Ward 支持自适应设计系统,它还支持深色主题,它只显示服务器的主要信息。Ward 在所有流行的操作系统上运行良好,因为它使用 OSHI。
项目地址:https://github.com/B-Software/Ward
效果如下:
Docker搭建 {#docker搭建}
我们机器上已经安装好了Docker以及Docker-compose,搭建就非常容易啦。
首先通过SSH登陆服务器,在docker_data文件夹下创建Ward文件夹
apt update -y ## 更新软件源
mkdir -p \~/data/docker_data/Ward ## 在docker_data文件夹下创建Ward文件夹
cd \~/data/docker_data/Ward ## 进入文件夹
`git clone https://github.com/AntonyLeons/Ward.git ## 在创建的文件夹下克隆项目并构建镜像
cd Ward
docker build . --tag ward
`
评论区小伙伴反馈:ward官方的文件现在少了几个,不能构建了。报错的用这个地址 https://github.com/AntonyLeons/Ward,是有人克隆下载的。
等构建镜像完成之后,直接运行:
docker run -d --name ward -p 4000:4000 \
-p 自定义端口号:自定义端口号 \
--privileged=true \
--restart always \
ward:latest
注意:-p 自定义端口号:自定义端口号
这边一定要填,下面会用到。
然后我们用Chrome打开http://IP:4000/
地址,我们会看到如下图的界面,在此完成基本设置。
Server Name
随便填,这个就是搭建完后的浏览器地址栏信息;然后可以选择命令主题或者黑暗主题;Application Port
要填写成刚刚创建Docker容器时的自定义端口号
。然后点击LAUNCH
按钮即可完成基本设置。
暗色系效果如下:
注:如果这里填错了的话,可以进入容器内部,修改setup.ini
文件即可。
$ docker exec -it ward /bin/sh
$ nano setup.ini
或者直接停止容器,重建
docker stop ward
docker rm -f ward
`docker run -d --name ward -p 4000:4000 `
`
-p 自定义端口号:自定义端口号 `
`
--privileged=true `
`
--restart always `
`
ward:latest
`
这时候我们用Chrome打开http://IP:自定义端口号/
即可访问我们的监控面板了。
利用NPM配置反向代理 {#利用npm配置反向代理}
利用之前安装好NginxProxyManager,可以非常轻松完成反向代理的操作。(相关教程)
配置好之后,访问域名就可以啦。
ServerStatus(适合多台服务器) {#serverstatus适合多台服务器}
简介 {#简介-1}
项目地址:https://github.com/lidalao/ServerStatus
项目基于cppla版本ServerStatus, 增加如下功能:
- 更方便的节点管理, 支持增删改查
- 上下线通知(Telegram)
- Agent机器安装脚本改为systemd, 支持开机自启
搭建 {#搭建}
在服务端 复制以下命令,一键到底。请记得替换成你自己的YOUR_TG_CHAT_ID
和YOUR_G_BOT_TOKEN
。
其中,Bot token
可以通过@BotFather
创建机器人获取, Chat id
可以通过@getuserID
获取。
Bot token
就是5077*****
配置完成,后面的步骤都完成之后
,再点击:
进入自己创建的机器人页面,再点击开始就能有监控了。
效果如下:
Chat id
就是98*****
mkdir -p ~/data/docker_data/sss
cd \~/data/docker_data/sss
`wget --no-check-certificate https://raw.githubusercontent.com/lidalao/ServerStatus/master/sss.sh && chmod +x ./sss.sh && sudo ./sss.sh YOUR_TG_CHAT_ID YOUR_TG_BOT_TOKEN
`
注意替换YOUR_TG_CHAT_ID
和YOUR_TG_BOT_TOKEN
如果没有Telegram的话,不带这俩参数也可以。
安装成功后,web服务地址:http://ip:8081
通过sss.sh
脚本,可以很方便的进行节点的增删改查操作。特别的,添加新节点时,会有提示如何在新节点安装对应的agent服务。如果你想了解更多,可以看看进阶部分,不看也足够用。
进阶 {#进阶}
由于没改动ServerStatus代码,理论上,任何版本的ServerStatus都可以用sss.py
来做管理, 都可以用bot.py来进行上下监控。
节点管理时,把sss.py
放到和config.json
同一目录,运行python3 _sss.py
即可。唯一需要改动的就是restartSSS函数,此函数功能是重启ServerStatus服务,改成你对应的服务启动方式,例如用systemd
,则把["docker-compose", "restart"]
改成["systemctl", "restart", "ServerStatus"]
。
接下来是上下线监控服务,同样适用于任何版本的ServerStatus。 它只有一个文件bot.py
, 可以跑在任何机器上,不是必须在服务端,丢在家里nas上也成。
bot.py
里面有三个配置信息,bot_token
, cat_id
和NODE_STATUS_URL
, 改成你自己的对应信息,NODE_STATUS_URL
需要改成你自己的探针web服务地址,例如,域名探针https://tz.test.com
, 则改为https://tz.test.com/json/stats.json
。配置修改完后,运行python3 bot.py
即可开始监控
反向代理 {#反向代理}
利用之前安装好NginxProxyManager,可以非常轻松完成反向代理的操作。(相关教程)
配置好之后,访问域名就可以啦。