项目地址:https://github.com/lidalao/ServerStatus
项目基于cppla版本ServerStatus,增加如下功能:
- 更方便的节点管理, 支持增删改查
- 上下线通知(telegram)
- Agent机器安装脚本改为systemd, 支持开机自启
创建机器人
我们选择Docker一键脚本搭建,在这之前我们需要去tg获取下Bot token 与 Chat id
Bot token 我们利用TG机器人@BotFather 获取
Chat id 我们利用TG机器人 @getuserID 获取;
但是有个缺点,不能实时获取到,等几个小时以后才会发给你,并且是入了魔的发, 一小时几千条
(别问我为什么知道)
我推荐第二种方法获取
https://api.telegram.org/bot{token}/getUpdates
将你刚刚获取到的token 输入到指定位置,在浏览器中打开,你应该得到一个没啥关键内容的页面
此时,你再打开你的TG,搜索你刚刚创建的TG机器人,随便发一个信息给他
然后刚刚的网页就更新看数据,你可以看到一个Chat id 那就是你所需要的.
创建Docker 镜像目录
mkdir -p ~/docker/sss
cd ~/docker/sss
将我们获取到的Bot token 和 Chat id 带入到脚本并执行
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
安装完成后使用Web地址访问: http://127.0.0.1:8081
启动失败
如果安装完成 ./sss.sh 报错,应该是缺少UTF8编码
- 解决办法1: 修改/docker/sss/_sss.py 文件编码为latin-1
- 解决办法2: 尝试安装UTF8编码
SSH 执行 locale 查看vps编码是否有 LANG=”en_US.UTF-8″
如果没有,修改并添加
vi /etc/default/locale
将 LANG=”en_US” 改为 LANG=”en_US.UTF-8″ 保存并重启服务器
挂载Web目录
如果你有修改web页面的需求,就跟着走,没有需求就跳过
来到镜像目录下
cd ~/docker/sss
vi docker-compose.yml
添加#web目录代码,挂载目录到”本地”
- ./config.json:/ServerStatus/server/config.json
- ./html:/usr/share/nginx/html/ #web目录
- ./json:/usr/share/nginx/html/json
然后按esc 输入:wq 回车
重新部署
确保在docker-compose.yml目录下执行停止指令
docker-compose down
再执行部署
docker-compose up -d
此时/docker/sss 目录下出现挂载文件夹 html
Wbe源码在cppla的项目里下载,上传进html文件夹,便可自由DIY
源码地址: https://github.com/cppla/ServerStatus/tree/master/web
由于github不允许下载单个文件夹,又不想打包整个项目,可以使用解析工具,下载指定文件夹
DownGit : https://downgit.github.io
节点排序
脚本添加节点,可能不能按自己的需求排序,如果有这方面需求可以这样操作
编辑镜像目录/docker/sss下的 config.json 文件
{“servers”: [ //起始
{“monthstart”: “1”, “location”: “JP”, “type”: “kvm”, “name”: “斯巴达-48”, “username”: “3481d052b70e47ffffd2072a68b71”, “host”: “斯巴达-48”, “password”: “M5gCcvfdFG8z”}, //段落
]} // 结尾
根据需求从上而下移动你的节点排序即可
然后在SSH重启docker镜像,首先查询镜像ID
docker ps -a
重启镜像
docker restart ID
重启完成之后,web页面的排序就按你的期望在排序
反向代理
在我们搭建完成之后不希望加端口号8081来访问,那么就需要做反向代理
如果你是裸机可以安装 Nginx Proxy Manager
官网地址: https://nginxproxymanager.com
同样我们建立一个镜像目录
mkdir -p ~/docker/npm
cd ~/docker/npm
新建一个Docker-compose.yml文件,粘贴以下内容
version: "3"
services:
app:
image: 'jc21/nginx-proxy-manager:latest'
restart: unless-stopped
ports:
# These ports are in format <host-port>:<container-port>
- '80:80' # Public HTTP Port
- '443:443' # Public HTTPS Port
- '81:81' # Admin Web Port
# Add any other Stream port you want to expose
# - '21:21' # FTP
environment:
DB_MYSQL_HOST: "db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm"
DB_MYSQL_NAME: "npm"
# Uncomment this if IPv6 is not enabled on your host
# DISABLE_IPV6: 'true'
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
db:
image: 'jc21/mariadb-aria:latest'
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: 'npm'
MYSQL_DATABASE: 'npm'
MYSQL_USER: 'npm'
MYSQL_PASSWORD: 'npm'
volumes:
- ./data/mysql:/var/lib/mysql
确保在 /docker/npm 目录下,执行
docker-compose up -d
初始用户名/密码
WebUI :http://127.0.0.1:81
Email: [email protected]
Password: changeme
宝塔环境
如果你已经有nginx环境,比如宝塔下设置
新建一个域名,并完成解析,申请SSL,强制HTTPS,然后在配置文件中,添加以下代码
location / {
proxy_pass http://127.0.0.1:8081/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
然后使用域名不加端口访问 server.xidcn.com
希望大家早日搭建自己的探针,以针会友