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中看高级的信息,这个账号和密码也可以修改

QQ20241021-085059.jpg

访问公网IP的8080端口就能看到界面了,比如http://123.123.123.123:8080

QQ20241020-223435.jpg

查看详细信息http://123.123.123.123:8080/detail

QQ20241020-223803.jpg

查看地图http://123.123.123.123:8080/map

QQ20241020-224234.jpg

此时还没有挂上去东西,所以上面是空的

修改配置

配置文件就是config.toml这个文件,按需修改,下面是我的一些修改

  1. offline_threshold这个设置为180,就是3分钟
  2. 执行openssl rand -base64 16获得随机字符,复制下粘贴到jwt_secret,然后admin_user和admin_pass自定义设置一下账号密码
  3. hosts_group里面清空,配置一个动态探针组{gid = "my-vps", password = "uNBMBDiN"}
  4. group_gc设置为259200,也就是动态注册的探针3天没上线就清理
  5. 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

标签: 探针, ServerStatus

添加新评论

Loading...
Fullscreen Image