项目地址:https://github.com/cokemine/nodestatus

1.1 安装Docker Compose

没有安装过Docker

如果没有安装过docker 推荐使用如下命令

curl -fsSL https://get.docker.com | bash -s docker
docker --version
mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose # for x86_64
chmod +x ~/.docker/cli-plugins/docker-compose
已经安装过Docker

如果已经安装过docker 推荐使用如下命令

mkdir -p ~/.docker/cli-plugins/
curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose # for x86_64
chmod +x ~/.docker/cli-plugins/docker-compose

1.2 编辑docker-compose配置文件

命令如下

mkdir ~/nodestatus
cd ~/nodestatus
wget https://raw.githubusercontent.com/cokemine/nodestatus/master/docker-compose.yml
vim docker-compose.yml #修改环境变量相关配置
docker compose up -d #运行docker compose

通常需要修改的就是 WEB_USERNAME、WEB_PASSWORD、TGBOT_TOKEN 和 TGBOT_CHATID 这几项;运行完上面这些命令后,nodestatus服务端就已经安装完成了。

  • INTERVAL : 服务端推送间隔时间, 默认 1500 秒1.5秒
  • DATABASE : 数据库位置文件存放位置, 默认使用 SQLite Linux: file:/usr/local/NodeStatus/server/db.sqlite,支持的数据库有 SQLite、MySQL、PostgreSQL,请使用对应的正确数据源链接格式填写:SQLite 应以 file: 开头, MySQL 应以 mysql: 开头, PostgreSQL 应以 postgresql: 开头。
  • PORT : NodeStatus 所用端口, 默认 35601
  • VERBOSE : 是否启动 verbose 模式,启动后会输出更多信息,默认 false
  • THEME:NodeStatus 前端使用的主题,默认 hotaru-theme , 可选 hotaru-theme | classic-theme
  • PING_INTERVAL : 用于心跳检测是否与客户端异常断开连接, 默认 30 秒30秒
  • USE_PUSH : 是否使用 Telegram 推送, 默认 true
  • USE_IPC : 是否需要 IPC 修改服务端配置, 默认 true
  • USE_WEB : 是否需要开启一个小型 web 面板修改服务端配置, 默认 true
  • WEB_USERNAME : WEB 面板用户名,默认 admin
  • WEB_PASSWORD : WEB 面板密码
  • WEB_SECRET : 用于 jsonwebtoken, 建议设为一个随机的字符串, 默认不填即和密码相同
  • PUSH_TIMEOUT : 客户端报警推送超时时间 在这个时间内无论客户端发生了什么只要重新恢复与客户端的连接就不会推送在这个时间内无论客户端发生了什么只要重新恢复与客户端的连接就不会推送, 默认 120 秒120秒
  • PUSH_DELAY : 报警推送服务启动延迟 防止重启服务端后导致的集中推送防止重启服务端后导致的集中推送, 默认 15 秒15秒
  • TGBOT_TOKEN : Telegram Bot Token 从申请到从BotFather申请到
  • TGBOT_CHATID : Telegram Bot 需要推送的 chat_id, 如不清楚可以先启动 NodeStatus, 对 Bot 发送 /start 获取这个 id, 多个请用 , 隔开
  • TGBOT_PROXY : Telegram 代理服务器配置,例 http://127.0.0.1:10808,仅支持 http 代理
  • TGBOT_WEBHOOK : Telegram Webhook 配置,不填写默认 Polling,例: https://tz.mydomain.com,使用 Webhook 务必需要开启 https,若你使用了 https,则建议填写你的域名以开启 Webhook, 而非 Polling

如果需要更新nodestatus版本的话,可执行如下命令

cd ~/nodestatus
docker compose down
docker pull cokemine/nodestatus:latest
docker compose up -d

2.宝塔反代

在宝塔新建好站点后,打开网站设置,添加反向代理
添加反代添加反代
然后打开反向代理的配置文件,把里面的配置文件先都删掉,粘贴我下面的代码,如图所示
修改配置文件修改配置文件

location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_pass http://127.0.0.1:35601; # 反代地址
    proxy_http_version 1.1;
  }

3.添加需要监控的服务器

3.1 服务端设置

设置完宝塔反代后,输入域名打开网站应该就能直接看到面板了,nodestatus的后台管理网址为 https://你的域名/admin
进入nodestatus的后台管理页面即可添加需要管理的服务器,在后台页面点击 Management ,然后点击 New
添加监控服务器添加监控服务器
然后把script下面的代码复制下来存上,等会需要用。

3.2 客户端设置

ssh连接需要被监控的服务器,然后输入如下命令,wget -N那一行的命令替换为前面复制的命令。至此,探针就完全搭建完成了。

mkdir ~/NodeStatusClient
cd ~/NodeStatusClient
wget -N https://raw.githubusercontent.com/cokemine/nodestatus-client-go/master/install.sh && bash install.sh --dsn wss://YourServerUserName:YourStrongPassword@status.domain.com  ## 刚刚复制的安装脚本
 最后修改:2022 年 04 月 23 日 04 : 47 PM