安装
卸载
先卸节点上的 agent,再卸 hub:agent 的一键卸载要从 hub 取脚本,hub 卸掉后只能手动卸载。
卸载 agent
机器上的 agent 和面板上的节点要一起删:只删节点,agent 会拿着作废的 token 一直重连;只卸 agent,节点会一直留在面板上显示离线。
一键卸载
以 root 在要卸载的机器上执行:
curl -fsSL https://hub.example.com/install.sh | sh -s -- --uninstallbash在节点页删除节点时,确认框里带着这条命令,复制下来再确认删除,两件事一起做完。和安装命令一样,只有从 HTTPS 域名进面板时才显示。命令里没有 token,所有节点通用,节点删掉之后照样能用。先在机器上卸载的,卸完再到面板上删节点。
脚本同时清理 systemd 和 OpenRC 两套文件,只删 agent 装下的东西,即下面手动卸载列出的那些。这台机器还装了 hub 时,/opt/monitor 和里面 hub 的文件原样保留。重复执行没有副作用。
手动卸载
同样以 root 执行。systemd:
# 停止服务,并取消开机自启
systemctl disable --now monitor-agent
# 删除服务文件
rm -f /etc/systemd/system/monitor-agent.service
# 让 systemd 重新读取服务列表,忘掉这个服务
systemctl daemon-reload
# 删除安装时建的系统用户,agent 以它的身份运行
userdel monitor-agent
# 删除二进制,以及升级中断时留下的旧版
rm -f /opt/monitor/monitor-agent /opt/monitor/monitor-agent.old
# 删除存放 hub 地址和 token 的 env 文件
rm -f /opt/monitor/agent.env
# 目录空了才会删掉;hub 也装在这里时原样保留
rmdir /opt/monitor 2>/dev/nullbashOpenRC(Alpine 等):
# 停止服务
rc-service monitor-agent stop
# 取消开机自启
rc-update del monitor-agent default
# 删除服务脚本
rm -f /etc/init.d/monitor-agent
# 删除日志,OpenRC 下 agent 的输出写在这里
rm -f /var/log/monitor-agent.log
# 删除安装时建的系统用户;Alpine 用 deluser,其它系统用 userdel
deluser monitor-agent 2>/dev/null || userdel monitor-agent 2>/dev/null
# 删除二进制,以及升级中断时留下的旧版
rm -f /opt/monitor/monitor-agent /opt/monitor/monitor-agent.old
# 删除存放 hub 地址和 token 的 env 文件
rm -f /opt/monitor/agent.env
# 目录空了才会删掉;hub 也装在这里时原样保留
rmdir /opt/monitor 2>/dev/nullbash较早版本在 OpenRC 下不建这个用户,那一步什么也不做。
卸载 hub
按当初的安装方式选一节。
一键脚本装的
# 卸载,数据保留在 /opt/monitor/data,重装后直接接着用
sudo ./install-hub.sh --uninstall
# 卸载并删除数据库,不可恢复
sudo ./install-hub.sh --purgebash脚本已经删了的话,按快速开始里的命令重新下载一份。--purge 不删 monitor
系统用户,要删干净再执行 sudo userdel monitor。
手动卸载,以 root 执行。前四步相当于 --uninstall:
# 停止服务,并取消开机自启
systemctl disable --now monitor-hub
# 删除服务文件
rm -f /etc/systemd/system/monitor-hub.service
# 让 systemd 重新读取服务列表,忘掉这个服务
systemctl daemon-reload
# 删除二进制;.old 是升级中断时留下的上一版
rm -f /opt/monitor/monitor-hub /opt/monitor/monitor-hub.oldbash再加下面三步,数据也一起删掉:
# 删除数据库和面板上安装的主题,不可恢复
rm -rf /opt/monitor/data
# 删除安装时建的系统用户,hub 以它的身份运行
userdel monitor
# 目录空了才会删掉;agent 也装在这里时原样保留
rmdir /opt/monitor 2>/dev/nullbash保留数据时不要删 monitor 用户。重装会新建同名用户,uid 可能变,而数据库仍属于旧 uid,hub 就写不进去了。
Docker 装的
docker run 装的:
# 停止并删除容器
docker rm -f monitor
# 删除数据卷,即数据库和主题,不可恢复;要保留数据就跳过
docker volume rm monitor-data
# 删除镜像
docker rmi stqfdyr/monitorbashcompose 装的,在 compose 文件所在的目录执行。只动 monitor 这一个服务,同一文件里的反代等其他服务不受影响:
# 停止并删除 monitor 容器
docker compose rm -sf monitor
# compose 会给卷名加上项目名前缀,按标签查出全名
V=$(docker volume ls -qf label=com.docker.compose.volume=monitor-data)
# 删除数据卷,即数据库和主题,不可恢复;要保留数据就跳过
docker volume rm $V
# 删除镜像
docker rmi stqfdyr/monitorbash最后把 compose 文件里的 monitor 服务和 monitor-data 卷删掉。
不要用 docker compose down -v:它删除整个 compose 文件里所有服务的容器和数据卷,反代放在同一个文件里时,存证书的数据卷也会被删掉。
数据挂在自己指定的目录上的,把删数据卷那一步换成删目录:
# 停止并删除容器
docker rm -f monitor
# 换成你挂载的目录;数据库和主题都在里面,不可恢复
rm -rf /opt/monitor-data
# 删除镜像
docker rmi stqfdyr/monitorbash挂载的是 /opt/monitor、这台机器上又装了 agent 时,agent 的二进制和 token 也在这个目录里。先按上面卸载 agent,再删目录。
反向代理
nginx、caddy 的站点配置和证书,以及 Cloudflare 隧道,上面哪种卸载都不会动。不再需要的,按各自的方式删掉。