51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

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

前言 {#前言}

祝大家新年快乐!

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

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

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

效果如下: image-20220101122452493

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

效果如下: image-20220101122538855

YouTube:https://youtu.be/Eq1HM84AKUs


环境准备 {#环境准备}

Ward(适合单台服务器) {#ward适合单台服务器}

简介 {#简介}

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

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

效果如下: image-20220101122452493

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/地址,我们会看到如下图的界面,在此完成基本设置。 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配置反向代理 {#利用npm配置反向代理}

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

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

ServerStatus(适合多台服务器) {#serverstatus适合多台服务器}

简介 {#简介-1}

项目地址: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)
未经允许不得转载:工具盒子 » 【好玩的Docker项目】搭建两个专属自己的服务器监控——Ward && ServerStatus