标签搜索
隐藏侧边栏

【好玩的Docker项目】搭建两个专属自己的服务器监控——Ward && ServerStatus

咕咕鸽
2022-01-01 / 6 评论 / 2 点赞 / 912 阅读 / 2,902 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-01-01,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

祝大家新年快乐!

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

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

单台服务器的演示地址https://ward.laoda.de/

效果如下:

image-20220101122452493

多台服务器的演示地址https://status.laoda.de/

效果如下:

image-20220101122538855

YouTube:https://youtu.be/Eq1HM84AKUs

环境准备

Ward(适合单台服务器)

简介

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

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

效果如下:

image-20220101122452493

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/地址,我们会看到如下图的界面,在此完成基本设置。

image-20210628155606181

Server Name随便填,这个就是搭建完后的浏览器地址栏信息;然后可以选择命令主题或者黑暗主题;Application Port要填写成刚刚创建Docker容器时的自定义端口号。然后点击LAUNCH按钮即可完成基本设置。

暗色系效果如下:

image-20220101133133660

注:如果这里填错了的话,可以进入容器内部,修改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,可以非常轻松完成反向代理的操作。(相关教程

image-20220101132620575 image-20220101132435879 image-20220101132456073

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

ServerStatus(适合多台服务器)

简介

项目地址:https://github.com/lidalao/ServerStatus
项目基于cppla版本ServerStatus, 增加如下功能:

  • 更方便的节点管理, 支持增删改查
  • 上下线通知(Telegram)
  • Agent机器安装脚本改为systemd, 支持开机自启

搭建

服务端复制以下命令,一键到底。请记得替换成你自己的YOUR_TG_CHAT_IDYOUR_G_BOT_TOKEN

其中,Bot token可以通过@BotFather创建机器人获取, Chat id可以通过@getuserID获取。

image-20220101134112788

Bot token就是5077*****

配置完成,后面的步骤都完成之后,再点击:

image-20220101134440158

进入自己创建的机器人页面,再点击开始就能有监控了。

效果如下:

image-20220101134630788 image-20220101134155479

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_IDYOUR_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_idNODE_STATUS_URL, 改成你自己的对应信息,NODE_STATUS_URL需要改成你自己的探针web服务地址,例如,域名探针https://tz.test.com, 则改为https://tz.test.com/json/stats.json。配置修改完后,运行python3 bot.py即可开始监控

反向代理

利用之前安装好NginxProxyManager,可以非常轻松完成反向代理的操作。(相关教程

image-20220101132620575 image-20220101132943763 image-20220101132842926

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

感谢

0
广告 广告

评论区