一 前言
之前介绍了ServerStat在Linux VPS的安装配置、采用Vnstat来防止重启导致数据丢失的问题,以及如何在安装了openwrt的n1旁路由上安装Serverstat,需要的可以访问之前的博文:
1)随时随地监控你的VPS状态——Serverstat部署折腾之路
2)Serverstaus改用Vnstat统计VPS流量,避免服务器重启引起统计丢失
3)N1折腾之openwrt安装ServerStatus_Rust客户端
本文介绍下如何在LiNUX VPS上手动安装Server-Rust,包括client客户端和server服务器端的安装,client即发送流量信息的VPS,server即收集流量信息并汇总展示的VPS,一般1台服务器作为服务器端和客户端,其他VPS作为客户端。
二 stat_client客户端安装教程
1 /opt目录下创建ServerStat目录
mkdir -p /opt/ServerStatus && cd /opt/ServerStatus
2 下载stat_client客户端
到官方地址下载
根据自己的服务器内核选择合适的客户端版本,这里以x86 64位的Linux为例:
wget --no-check-certificate -qO client-x86_64-unknown-linux-musl.zip https://github.com/zdz/ServerStatus-Rust/releases/download/v1.8.1/client-x86_64-unknown-linux-musl.zip
3 解压缩
unzip -o client-1.8.1-unknown-linux-musl.zip
4 修改stat_client的权限
chmod +x stat_client
5 修改 /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
6 复制stat_client.service到/etc/systemd/system/
mv -v stat_client.service /etc/systemd/system/stat_client.service
7 使用命令开机自启
systemctl enable stat_client
8 重新保存加载
systemctl daemon-reload
9 启动服务
systemctl start stat_client
10 查看状态,显示running即为成功
systemctl status stat_client
11 其他命令
systemctl stop stat_client 停止客户端服务
systemctl restart stat_client 重启客户端服务
三 stat_server服务器端安装教程
部署stat_server的部分步骤与stat_client是一样的,具体如下
1 /opt目录下创建ServerStat目录
mkdir -p /opt/ServerStatus && cd /opt/ServerStatus
2 下载stat_server服务器端
到官方地址下载
根据自己的服务器内核选择合适的客户端版本,这里以x86 64位的Linux为例:
wget --no-check-certificate -qO server-x86_64-unknown-linux-musl.zip https://github.com/zdz/ServerStatus-Rust/releases/download/v1.8.1/server-x86_64-unknown-linux-musl.zip
3 解压缩
unzip -o server-1.8.1-unknown-linux-musl.zip
4 修改stat_server的权限
chmod +x stat_server
5 复制stat_server.service到/etc/systemd/system/
mv -v stat_server.service /etc/systemd/system/stat_server.service
5修改/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 ##########################
##6 测试配置文件是否正常
systemctl daemon-reload
#加载修改文件
./stat_server -c config.toml -t
#测试配置文件是否正常,没有问题的话会显示success字样
./stat_server -c config.toml --notify-test
#测试通知是否正常,正确的话会在相应的TG或者微信收到通知
./stat_server -c config.toml
#运行配置文件
7 使用命令开机自启
systemctl enable stat_server
8 重新保存加载
systemctl daemon-reload
9 启动服务
systemctl start stat_server
10 查看状态,显示running即为成功
systemctl status stat_server
11 其他命令
systemctl stop stat_server 停止服务器端服务
systemctl restart stat_server 重启服务器端服务
评论 (0)