随时随地监控你的VPS状态——Serverstat部署折腾之路
作为一个代码小白，网上教程的学习比一般人慢，有的时候出差了排查原因，都不知道问题出在哪里，只能靠笨鸟勤飞一样的反复折腾，比如serverstat的部署，我就安装、卸载、更换其他版本、再安装、调试，直到最后终于成功，这里把折腾之路后的总结写下来，希望能帮到大家。感谢 zdz 大佬提供的脚本。 本站配置完成后的访问地址：https://ss.5var.com1 一键脚本安装利用一键脚本安装server_stat的服务器端和客户端；mkdir -p /opt/ServerStatus && cd /opt/ServerStatus 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://IP地址:8080就可以访问了，说明配置成功，如果不行说明安装不成功，需要核实问题症结。2 修改配置文件修改/opt/ServerStatus/config.toml文件，下面几个位置注意：1）管理用户名，用于查看 /detail, /map，建议设置，保护你的服务器安全。# 管理员账号,不设置默认随机生成，用于查看 /detail, /map jwt_secret = "" # 修改这个, 使用 openssl rand -base64 16 生成 secret admin_user = "vvars" admin_pass = "vvars.com"2) 修改host参数下的name和password参数这里的值将来作为服务器端和客户端通信的密码，需要配置准确。hosts = [ {name = "Server-alice", password = "vvars.com", alias = "alice 1刀落地机", location = "hk", type = "kvm", labels = "os=debian;ndd=2025/1/28;spec=1C/1G/5G;"}, {name = "h2", password = "p2", alias = "n2", location = "de", type = "kvm", disabled = false}, {name = "h3", password = "p3", alias = "n3", location = "hk", type = "kvm", monthstart = 1}, {name = "h4", password = "p4", alias = "n4", location = "cn", type = "kvm", notify = true, labels = "ndd=2022/11/25;spec=2C/4G/60G;"}, ]3 修改提醒机器人,以TG为例tg-bot-token网上教程很多，建议自行搜索。获取频道ID的办法可以参考 获取Telegram私人电报频道的ID的两种办法[tgbot] # 开关 true 打开 enabled = true bot_token = "tg-bot-token" #这里的Token通过TG的botFather创建和获取 chat_id = "-100xxxxxxx" #新建群聊，获取群聊id # host 可用字段见 payload.rs 文件 HostStat 结构, {{host.xxx}} 为占位变量 # 例如 host.name 可替换为 host.alias，大家根据自己的喜好来编写通知消息 # {{ip_info.query}} 主机 ip, {{sys_info.host_name}} 主机 hostname，见 server_status.proto title = "警告Server Status" online_tpl = "{{config.title}} \n哈哈 {{host.location}} {{host.name}} 主机恢复上线啦" offline_tpl = "{{config.title}} \n不好 {{host.location}} {{host.name}} 主机已经掉线啦" # custom 模板置空则停用自定义告警，只保留上下线通知 custom_tpl = """ {% if host.memory_used / host.memory_total > 0.5 %} 不好 {{host.name}} 主机内存使用率超50%, 当前{{ (100 * host.memory_used / host.memory_total) | round }}% {% endif %} {% if host.hdd_used / host.hdd_total > 0.5 %} 不好 {{host.name}} 主机硬盘使用率超50%, 当前{{ (100 * host.hdd_used / host.hdd_total) | round }}% {% endif %} """ ###################### tgbot end ##########################3 修改 /etc/systemd/system/stat_client.service 文件将IP改为你服务器的IP或你的域名，注意这里的-u后的用户名、-p后面的密码，与上面config.toml中的name、password必须一致，否则会通讯不成功。ExecStart=/opt/ServerStatus/stat_client -a "http://ss.vvars.com:8080/report" -u Server-alice -p vvars.com4 测试配置文件是否正常systemctl daemon-reload #加载修改文件 ./stat_server -c config.toml -t #测试配置文件是否正常，没有问题的话会显示success字样 ./stat_server -c config.toml --notify-test #测试通知是否正常，正确的话会在相应的TG或者微信收到通知 ./stat_server -c config.toml #运行配置文件5 加载修改文件并重新启动服务器端和客户端systemctl daemon-reload #加载修改文件 systemctl restart stat_server #重启服务器端 systemctl restart stat_client #重启客户端没问题的话，再次访问http://IP:8080的话会更新配置信息。到这里单个VPS的监控就结束了。6 配置多个VPS，重复1-5步，确保每个都运行正常；7 配置总客户端，让所有VPS状态集中显示1) 修改集中显示VPS的config.toml确定要作为集中显示的VPS，修改该VPS的/opt/ServerStatus/config.toml，在host下面列出其他vps的对应配置信息hosts = [ {name = "alibaba-hk", password ="vvars.com", alias = "阿里云国际香港", location = "hk", type = "kvm", labels = "os=debian;ndd=2027/11/25;spec=1C/1G/30G;"}, {name = "Server-alice", password = "vvars.com", alias = "alice 1刀落地机", location = "hk", type = "kvm", labels = "os=debian;ndd=2025/1/28;spec=1C/1G/5G;"}, {name = "netcup", password = "vvars.com", alias = "Netcup德国主机VPS1000黑五款", location = "de", type = "kvm", labels = "os=debian;ndd=2025/1/28;spec=4C/8G/512G;"}, {name = "c1vhosting", password = "vvars.com", alias = "C1Vhosting灵车", location = "it", type = "kvm", labels = "os=debian;ndd=2025/11/28;spec=2C/4G/80G;"}, {name = "evhosting", password = "87887191", alias = "EVhostingh黑五大盘鸡", location = "nl", type = "kvm", labels = "os=debian;ndd=2025/1/26;spec=2C/4G/3000G;"}, ]修改完后加载修改文件并重新启动服务器端和客户端systemctl daemon-reload #加载修改文件 systemctl restart stat_server #重启服务器端 systemctl restart stat_client #重启客户端2）修改非集中显示的VPS的 /etc/systemd/system/stat_client.service 文件把其中的地址改为集中显示VPS的地址或域名，这一步很重要，用于把信息上报给集中显示客户端后显示ExecStart=/opt/ServerStatus/stat_client -a "http://ss.vvars.com:8080/report" -u Server-alice -p vvars.com修改完后加载修改文件并重新启动服务器端和客户端systemctl daemon-reload #加载修改文件 systemctl restart stat_server #重启服务器端 systemctl restart stat_client #重启客户端8 回到集中显示VPS的地址http://ss.vvars.com:8080，正常的话应该就能显示了9 最后整理了serverstat的常用命令#加载修改后的配置文件 systemctl daemon-reload # 启动 systemctl start stat_server systemctl start stat_client # 状态查看 systemctl status stat_server systemctl status stat_client # 使用以下命令开机自启 systemctl enable stat_server systemctl enable stat_client # 停止 systemctl stop stat_server systemctl stop stat_client