✨ Rust 版 ServerStatus 探针、威力加强版
ServerStatus 威力加强版,保持轻量和简单部署,增加以下主要特性:
rust 完全重写 server、client,单个执行文件部署Linux、MacOS、Windows、Android、Raspberry Pitelegram、wechat、email、webhook)http 协议上报,方便部署到各免费容器服务和配合 cf 等优化上报链路cloudflare tunnels 和 mTLS 部署vnstat 统计月流量,重启不丢流量数据railway 快速部署systemd 开机自启演示:ssr.rs | cn dns | 下载:Releases | Changelog | 反馈:Discussions
完整文档迁移至 doc.ssr.rs
如果你觉得你创造/修改的主题还不错,欢迎分享/PR,前端单独部署方法参考 #37
ServerStatus-theme 主题主题地址 作者 @orilights
Hotaru 主题Hotaru 主题由 @HinataKato 修改提供,主题地址
ServerStatus-web 主题ServerStatus-web 主题由 @mjjrock 修改提供,主题地址
ServerStatus-nezha 主题ServerStatus-nezha 主题由 @snowie2000 修改提供,类似于哪吒探针v1,主题地址
v1.5.7 版本主题# for CentOS/Debian/Ubuntu x86_64
mkdir -p /opt/ServerStatus && cd /opt/ServerStatus
# apt install -y unzip / yum install -y unzip
wget --no-check-certificate -qO one-touch.sh 'https://raw.githubusercontent.com/zdz/ServerStatus-Rust/master/scripts/one-touch.sh'
bash -ex one-touch.sh
# 部署完毕,打开 http://127.0.0.1:8080/ 或 http://<你的IP>:8080/
# 自定义部署可参照 scripts/one-touch.sh 脚本由 @Colsro & @Yooona-Lim 贡献
…懒得配置 Nginx,SSL 证书?试试
在 Railway 部署 Server
如何在 Heroku 上部署 Rust 版 ServerStatus 云探针
config.toml……| OS | Release |
|---|---|
| Linux x86_64 | x86_64-unknown-linux-musl |
| Linux arm64 | aarch64-unknown-linux-musl |
| MacOS x86_64 | x86_64-apple-darwin |
| MacOS arm64 | aarch64-apple-darwin |
| Windows x86_64 | x86_64-pc-windows-msvc |
| Raspberry Pi | armv7-unknown-linux-musleabihf |
| Android 64bit | aarch64-linux-android |
| Android 32bit | armv7-linux-androideabi |
……vnstat 支持vnstat 是Linux下一个流量统计工具,开启 vnstat 后,server 完全依赖客户机的 vnstat 数据来显示月流量和总流量,优点是重启不丢流量数据。
# 在client端安装 vnstat
## Centos
sudo yum install epel-release -y
sudo yum install -y vnstat
## Ubuntu/Debian
sudo apt install -y vnstat
# 修改 /etc/vnstat.conf
# BandwidthDetection 0
# MaxBandwidth 0
# 默认不是 eth0 网口的需要置空 Interface 来自动选择网口
# 没报错一般不需要改
# Interface ""
systemctl restart vnstat
# 确保 version >= 2.6
vnstat --version
# 测试查看月流量 (刚安装可能需等一小段时间来采集数据)
vnstat -m
vnstat --json m
# client 使用 -n 参数开启 vnstat 统计
./stat_client -a "grpc://127.0.0.1:9394" -u h1 -p p1 -n
# 或
python3 stat_client.py -a "http://127.0.0.1:8080/report" -u h1 -p p1 -n更简单的方式 #37
…#
cargo install stat_server
cargo install stat_client
# or
# 按提示安装 rust 编译器
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
yum install -y openssl-devel
git clone https://github.com/zdz/ServerStatus-Rust.git
cd ServerStatus-Rust
cargo build --release
# 编译好的文件目录 target/release# 例如自定义移动探测地址,用 --cm 指定地址
./stat_client -a "grpc://127.0.0.1:9394" -u h1 -p p1 --cm=cm.tz.cloudcpp.com:80
# 电信联通参数可以使用 -h 命令查看
./stat_client -h
OPTIONS:
--cm <CM_ADDR> China Mobile probe addr [default: cm.tz.cloudcpp.com:80]
--ct <CT_ADDR> China Telecom probe addr [default: ct.tz.cloudcpp.com:80]
--cu <CU_ADDR> China Unicom probe addr [default: cu.tz.cloudcpp.com:80] 之前一直在使用 Prometheus + Grafana + Alertmanager + node_exporter 做VPS监控,这也是业界比较成熟的监控方案,用过一段时间后,发现非生产环境,很多监控指标都用不上,运维成本有点大。
而 ServerStatus 很好,足够简单和轻量,一眼可以看尽所有小机机,只是 c++ 版本很久没迭代过,自己的一些需求在原版上不是很好修改,如自带 tcp 上报对跨区机器不是很友好,也不方便对上报的链路做优化 等等。这是学习 Rust 练手的小项目,所以不会增加复杂功能,保持小而美,简单部署,配合 Uptime Kuma 基本上可以满足个人大部分监控需求。
很高兴我的代码能跑在你的服务器上,如果对你有帮助的话,欢迎留下你的 star ⭐ 支持一下No open issues yet, or sync has not completed.