搭建两个专属自己的服务器监控——Ward && ServerStatus


前言
祝大家新年快乐!

上一期和大家介绍了如何搞一个自己的网站监控,这一期就给大家带来一个两个关于监控自己的服务器状态的项目。

如果你只有一个服务器,可以参考第一个项目,如果你有不止一台,可以搭建第二个项目。

单台服务器的演示地址: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 是一个使用 Java 开发的简单而简约的服务器监控工具。Ward 支持自适应设计系统,它还支持深色主题,它只显示服务器的主要信息。Ward 在所有流行的操作系统上运行良好,因为它使用 OSHI。

项目地址:https://github.com/B-Software/Ward

效果如下:

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/B-Software/Ward.git ## 在创建的文件夹下克隆项目并构建镜像
cd Ward
docker build . --tag 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配置反向代理
利用之前安装好NginxProxyManager,可以非常轻松完成反向代理的操作。(相关教程)

配置好之后,访问域名就可以啦。

ServerStatus(适合多台服务器)
简介
项目地址: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,可以非常轻松完成反向代理的操作。(相关教程)

配置好之后,访问域名就可以啦。

原文:https://blog.laoda.de/archives/ward-serverstatus-install

 

声明:雨果书斋|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 搭建两个专属自己的服务器监控——Ward && ServerStatus


Carpe Diem and Do what I like