部署ServerStatus探针
Rust 版 ServerStatus 云探针,记录一下部署过程
安装
服务器系统为Debian12。
项目地址是https://github.com/zdz/ServerStatus-Rust/releases
server端
安装路径为/opt/ServerStatus
mkdir /opt/ServerStatus
cd /opt/ServerStatus
安装一些必要的软件
apt install -y wget unzip vnstat
先下载对用架构的软件并解压
wget https://github.com/zdz/ServerStatus-Rust/releases/download/v1.8.1/server-x86_64-unknown-linux-musl.zip
unzip server-x86_64-unknown-linux-musl.zip
解压出来的有3个文件,分别是服务端(stat_server)、配置文件(config.toml)、后台运行的配置文件(stat_server.service)
配置systemctl
后台运行的配置文件文件内容如下
[Unit]
Description=ServerStatus-Rust Server
After=network.target
[Service]
#User=nobody
#Group=nobody
Environment="RUST_BACKTRACE=1"
WorkingDirectory=/opt/ServerStatus
ExecStart=/opt/ServerStatus/stat_server -c /opt/ServerStatus/config.toml
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
# /etc/systemd/system/stat_server.service
此处只需注意ExecStart这一行,因为我也是安装在/opt/ServerStatus这个目录,就不用改。
把配置文件放到指定位置、启动
mv stat_server.service /etc/systemd/system/
systemctl enable stat_server
systemctl start stat_server
如果没错的话就已经启动了查看运行状态
systemctl status stat_server
上图中有账号和密码,这个可以进入url路径/detail和/map中看高级的信息,这个账号和密码也可以修改
访问公网IP的8080端口就能看到界面了,比如http://123.123.123.123:8080
查看详细信息http://123.123.123.123:8080/detail
查看地图http://123.123.123.123:8080/map
此时还没有挂上去东西,所以上面是空的
修改配置
配置文件就是config.toml这个文件,按需修改,下面是我的一些修改
- offline_threshold这个设置为180,就是3分钟
- 执行
openssl rand -base64 16
获得随机字符,复制下粘贴到jwt_secret,然后admin_user和admin_pass自定义设置一下账号密码 - hosts_group里面清空,配置一个动态探针组
{gid = "my-vps", password = "uNBMBDiN"}
- group_gc设置为259200,也就是动态注册的探针3天没上线就清理
- notify_interval设置3600,也就是掉线后一小时发一次通知,直到它被清理
后面通知渠道可以自己看着设置
改完配置后重启systemctl restart stat_server
client端
安装路径也为/opt/ServerStatus
mkdir /opt/ServerStatus
cd /opt/ServerStatus
安装一些必要的软件
apt install -y wget unzip vnstat
先下载对用架构的软件并解压
wget https://github.com/zdz/ServerStatus-Rust/releases/download/v1.8.1/client-x86_64-unknown-linux-musl.zip
unzip client-x86_64-unknown-linux-musl.zip
解压出来就有2文件,客户端(stat_client)、后台运行配置(stat_client.service)
客户端就不用配置文件了,是直接把配置放在启动的命令中的
stat_client.service里面长这样
[Unit]
Description=ServerStatus-Rust Client
After=network.target
[Service]
User=root
Group=root
Environment="RUST_BACKTRACE=1"
WorkingDirectory=/opt/ServerStatus
# EnvironmentFile=/opt/ServerStatus/.env
ExecStart=/opt/ServerStatus/stat_client -a "http://127.0.0.1:8080/report" -u h1 -p p1
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
[Install]
WantedBy=multi-user.target
# /etc/systemd/system/stat_client.service
# journalctl -u stat_client -f -n 100
和服务端一样,这里定义的也是/opt/ServerStatus为安装路径,如果你的不是,按照实际情况修改
主要是ExecStart这一行,如果按照我上面hosts_group的设置,启动命令这一行要改成ExecStart=/opt/ServerStatus/stat_client -a "http://123.123.123.123:8080/report" -g my-vps -p uNBMBDiN -n
我自己用的是ExecStart=/opt/ServerStatus/stat_client -a "grpc://123.123.123.123:9394" -g my-vps -p uNBMBDiN --alias VPS1 -n --interval 3
client 可用参数 OPTIONS: -6, --ipv6 ipv6 only, default:false -a, --addr <ADDR> [default: http://127.0.0.1:8080/report] --alias <ALIAS> alias for host [default: unknown] --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] --disable-extra disable extra info report, default:false --disable-notify disable notify, default:false --disable-ping disable ping, default:false --disable-tupd disable t/u/p/d, default:false -g, --gid <GID> group id [default: ] -h, --help Print help information --ip-info show ip info, default:false --ip-source <IP_SOURCE> ip info source [env: SSR_IP_SOURCE=] [default: ip-api.com] --sys-info show sys info, default:false --json use json protocol, default:false --location <LOCATION> location [default: ] -n, --vnstat enable vnstat, default:false --vnstat-mr <VNSTAT_MR> vnstat month rotate 1-28 [default: 1] -p, --pass <PASS> password [default: p1] -t, --type <HOST_TYPE> host type [default: ] -u, --user <USER> username [default: h1] -V, --version Print version information -w, --weight <WEIGHT> weight for rank [default: 0] # 一些参数说明 --ip-info # 显示本机ip信息后立即退出,目前使用 ip-api.com 数据 --ip-source # 指定 ip 信息源,ip-api.com / ip.sb / ipapi.co / myip.la --sys-info # 显示本机系统信息后立即退出 --disable-extra # 不上报系统信息和IP信息 --disable-ping # 停用三网延时和丢包率探测 --disable-tupd # 不上报 tcp/udp/进程数/线程数,减少CPU占用 -w, --weight # 排序加分,微调让主机靠前显示,无强迫症可忽略 -g, --gid # 动态注册的组id --alias # 动态注册模式下,指定主机的展示名字 # 总流量,网卡流量/网速统计 -i, --iface # 非空时,只统计指定网口 -e, --exclude-iface # 排除指定网口,默认排除 "lo,docker,vnet,veth,vmbr,kube,br-" --interval 上报秒/次 默认1.
然后配置启动
mv stat_client.service /etc/systemd/system/
systemctl enable stat_client
systemctl start stat_client
至此完成探针上线
后续要改配置文件就得改/etc/systemd/system/stat_client.service,然后执行systemctl daemon-reload
重新加载,然后在重启systemctl restart stat_client