作为一个代码小白,网上教程的学习比一般人慢,有的时候出差了排查原因,都不知道问题出在哪里,只能靠笨鸟勤飞一样的反复折腾,比如serverstat的部署,我就安装、卸载、更换其他版本、再安装、调试,直到最后终于成功,这里把折腾之路后的总结写下来,希望能帮到大家。感谢 zdz 大佬提供的脚本。
本站配置完成后的访问地址:https://ss.5var.com
1 一键脚本安装
利用一键脚本安装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 = "警告<b>Server Status</b>"
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 %}
<pre>不好 {{host.name}} 主机内存使用率超50%, 当前{{ (100 * host.memory_used / host.memory_total) | round }}% </pre>
{% endif %}
{% if host.hdd_used / host.hdd_total > 0.5 %}
<pre>不好 {{host.name}} 主机硬盘使用率超50%, 当前{{ (100 * host.hdd_used / host.hdd_total) | round }}% </pre>
{% 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.com
4 测试配置文件是否正常
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
[...]接上篇 随时随地监控你的VPS状态——Serverstat部署折腾之路 后,很多站长碰到服务器重启导致统计数据丢失问题,本篇博文讲解如何使用vnstat统计VPS流量,避免重启带来的流量清零问题。1 vnstat简介vnstat 是Linux下一个流量统计工具,开启 vnstat 后,server 完全依赖客户机的 vnstat 数据来显示月流量和总流量,优点是重启不丢流量数据。2 更新软件包和安[...]