最近把小鸡探针的托管程序从nezha改成了Komari,在挂Window平台时我发现并没有nezha这么方便:要跑PowerShell脚本,虽然能跑,但总感觉差了点意思。本人稍微有点安装洁癖,遂选择手动安装,后续管理以及更新啥的也方便。
开始本来选择用Nssm的方式去托管,想到它已经很久没有维护了。后面搜了下替代方案发现WinSw使用xml文件配置管理更优雅直观,遂记录一下,以便日后查阅。
项目地址
Komari Agent: https://github.com/komari-monitor/komari-agent/releases/latest
准备工作
- 创建目录:
在一个心仪的位置新建文件夹,用作程序的工作目录。例如我的位置是D:\Software\komari-agent
。 - 获取 Komari Agent 程序:
从 Komari 的 GitHub Releases 页面下载适用于 Windows 的 Agent 版本(通常是komari-agent-windows-amd64.exe
)。下载后,将其放入D:\Software\komari-agent
文件夹。 - 获取并重命名 WinSW 程序:
从 WinSW 的 GitHub Releases 页面下载最新版本的WinSW-x64.exe
将其重命名为komari-agent.exe
后一样放入D:\Software\komari-agent
文件夹。
创建配置
因为 WinSW 会默认加载与它自身文件名相同的 XML 配置文件,所以接下来创建一个 XML 文件,用来告诉komari-agent.exe
如何启动和管理 komari-agent-windows-amd64.exe
。
在 D:\Software\komari-agent
下新建一个文本并将其命名为 komari-agent.xml
(文件名必须与上一步 WinSw 重命名的 exe 文件一致),并键入:
<service>
<id>komari-agent</id>
<name>Komari Agent</name>
<description>This is the Komari Agent Manager created by WinSw</description>
<executable>%BASE%\komari-agent-windows-amd64.exe</executable>
<arguments> -e https://example.com -t your-secret-key --disable-web-ssh --disable-auto-update</arguments>
<startmode>Automatic</startmode>
<delayedAutoStart>true</delayedAutoStart>
<log mode="roll-by-size">
<sizeThreshold>10240</sizeThreshold>
<keepFiles>8</keepFiles>
</log>
<onfailure action="restart" delay="5 sec"/>
<onfailure action="restart" delay="10 sec"/>
</service>
<id>
,<name>
,<description>
:分别是服务的唯一ID、显示名称和描述,清晰明了。<executable>
:要运行的程序。这里我用了 %BASE% 这个变量,它代表 WinSW 程序所在的目录(即 D:\Software\komari-agent),这样做的好处是即使你把整个文件夹移动到其他位置,配置依然有效,非常灵活。<argument>
:- 将 example.com 替换为你的 Komari 服务端 域名或IP 地址和端口
- 将 your_secret_key 替换为你在服务端获取的密钥
- disable-web-ssh 参数为禁用 Web SSH 功能
- disable-auto-update 参数为禁用自动更新Agent
安装及管理
编辑完成XML文件之后以管理员身份打开命令提示符 (CMD) 或 PowerShell:
# 切换到程序工作目录
cd D:\Software\komari-agent
# 安装服务
.\komari-agent.exe install
当看到 Service 'Komari Agent (komari-agent)' was installed successfully.的提示时,就代表安装成功了。
# 启动服务
.\komari-agent.exe start
现在,服务已经在后台运行了。登录 Komari 服务端后台,应该能看到这台 Windows 主机已经成功上线。
后续的管理命令:
# 查看状态
.\komari-agent.exe status
# 停止服务
.\komari-agent.exe stop
# 重启服务
.\komari-agent.exe restart
# 卸载服务
.\komari-agent.exe uninstall
更新程序
后续更新版本也十分简单,先.\komari-agent.exe stop
然后直接更新替换目录下komari-agent-windows-amd64.exe
文件即可,再.\komari-agent.exe restart
就完事了。WinSW也是同理。